– DI: the most famous wiring concept
– AOP: x-cutting concerns, annotation materialized via dynamic proxy
– proxy: dynamic wrapping object with added capabilities
– factory: bean factory, ApplicationContext
– observer: ApplicationContextAware, ApplicationListener thru callback
– template: boiler plate code, jdbc, jms, hibernate(obselete)
– singleton: bean default to be singleton, vs prototype
– MVC: separation of concerns
– program to the interface
– composition over inheritance
– test driven development