1. Inversión de control
    1. "No nos llames, nosotros te llamamos"
    2. ¿Qué aspecto se invierte?
    3. Diferencia entre framework y librería
    4. Martin Fowler: "Inyección de dependencias"
  2. Inyección de dependencias
    1. Definición más específica de Inversión de Control
    2. Los objetos son configurados por una entidad externa
    3. Formas de inyección
      1. Setter injection
      2. Constructor injection
        1. Constructor Argument Type Matching
        2. Constructor Argument Index
      3. Method injection
    4. Configuración
      1. Straight values (primitives, Strings, etc.)
      2. References to other beans (collaborators)
      3. Inner beans
        1. Siempre son prototypes
      4. Collections
        1. list
        2. set
        3. map
        4. props
  3. Spring IoC Container
    1. Spring IoC Container
    2. Bean Factory
      1. Responsable de instanciar, configurar e inyectar las dependencias
      2. Varias implementaciones: XMLBeanFactory
    3. ApplicationContext
      1. Hereda de BeanFactory
      2. Funcionalidades
        1. Integración con AOP
        2. Internacionalización
          1. ResourceBundleMessageSource
          2. ReloadableResourceBundleMessageSource
        3. Event propagation
          1. ApplicationEvent
          2. ContextRefreshedEvent
          3. ContextStartedEvent
          4. ContextStoppedEvent
          5. ContextClosedEvent
          6. RequestHandledEvent
          7. ApplicationListener
        4. WebApplicationContext
      3. Aplicaciones web
        1. ContextLoaderListener
  4. Beans
    1. Attributes
      1. class
      2. name
      3. constructor-args
      4. properties
      5. lazy initialization
      6. inicialization method
      7. destruction method
      8. autowiring
        1. Las configuraciones explícitas sobrescriben el autowiring
        2. Modos
          1. no
          2. byName
          3. byType
          4. constructor
          5. autodetect
      9. dependency checking
        1. Modos
          1. none
          2. simple
          3. object
          4. all
        2. @Required
      10. scope
        1. Tipos
          1. singleton
          2. prototype
          3. request
          4. session
          5. global session
          6. Solo en Contexto Web
        2. Scoped beans como dependencias
          1. <aop:scoped-proxy/>
        3. Custom scopes
      11. Lifecycle
  5. Características avanzadas
    1. Component autoscan
      1. context:component-scan
      2. @Component
        1. @Controller
        2. @Service
        3. @Repository
      3. Custom stereotypes
    2. Autowiring
      1. @Autowired
        1. Autowiring por tipo
      2. @Qualifier
        1. Custom qualifier annotations
    3. Anotaciones JSR-250
      1. @Resource
        1. Autowiring por nombre
      2. Initialization and destruction callbacks
        1. @PreDestroy
        2. @PostConstruct
  6. Acerca de
    1. Topic
    2. Topic