SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Beans

Relator: Alejandro González (info@janogonzalez.com)
Bean
Temario General

➔   Beans
➔   BeanFactory
➔   ApplicationContext
➔   Configurando Beans con XML
Bean

➔   Es un POJO
➔   Es un componente de la aplicación, al que se le
    pueden inyectar valores y otros componentes



                     Dependencia        Otro
     Componente
                                     Componente
        POJO
                                        POJO
Bean

➔   Los beans y sus dependencias deben ser
    declarados para que Spring los reconozca
➔   Al iniciar su contenedor, Spring crea los beans
    e inyecta sus dependencias


                     Dependencia
        Bean                            Bean
BeanFactory
BeanFactory

➔   Contenedor de los beans de la aplicación
➔   Cada bean tiene un identificador para poder
    obtenerlo desde la BeanFactory

                     BeanFactory


                    Dependencia
        Bean                           Bean
ApplicationContext

➔   Agrega funcionalidad a la BeanFactory como
    facilidad de integración con AOP y manejo de
    archivos de recursos

                  ApplicationContext


                    Dependencia
        Bean                           Bean
Interesante...
¿Pero cómo lo hago en mi
      aplicación?
Configurando Beans con XML

➔   La declaración más básica es un identificador y
    la clase del objeto

    ●   <bean id=”idDelBean” class=”LaClase”/>
    ●

        <bean id=”otroBean” class=”OtraClase”/>
Configurando Beans con XML

➔   Se pueden inyectar valores de distintos tipos

    ●

    ●<bean id=”idDelBean” class=”LaClase”>
      ● <property name=”nombre” value=”valor” />

      ● <property name=”unEntero” value=”5” />

      ● <property name=”lista”>

        ● <list>

          ● <value>valor 1</value>

        ● </list>

      ● </property>

    ●</bean>
Configurando Beans con XML

➔   Se pueden inyectar otros beans

    ●

    ●<bean id=”bean1” class=”LaClase”>
      ● <property name=”dependencia” ref=”bean2” />

    ●</bean>

    ●


        <bean id=”otroBean” class=”OtraClase”/>
Configurando Beans con XML

➔   Se pueden inyectar valores de distintos tipos

    ●

    ●<bean id=”idDelBean” class=”LaClase”>
      ● <property name=”mapa”>

        ● <map>

          ● <entry key=”llave1” value=”valor1” />

          ● <entry key=”llave2” value=”valor2” />

        ● </map>

      ● </property>

    ●</bean>
Configurando Beans con XML

➔   Inyección en el constructor

    ●

    ●<bean id=”idDelBean” class=”LaClase”>
      ● <constructor-arg type=”java.lang.String”


        value=”valor” />
      ● <constructor-arg type=”int” value=”5” />

    ●</bean>
Manejando situaciones un
poco más complicadas
Configurando Beans con XML

➔   Se puede manejar el ciclo de vida del objeto

    ●

    ●<bean id=”idDelBean” class=”LaClase” init-
    method=”metodoDeInicializacion” destroy-
    method=”llamarAlFinal” />
Configurando Beans con XML

➔   Inicialización de tipo lazy

    ●

    ●<bean id=”idDelBean” class=”LaClase” lazy-
    init=”true” />
Configurando Beans con XML

➔   Obteniendo un bean desde una fábrica estática

    ●

    ●public static Procesador crearProcesador(String id) {
      ● if (“tef”.equals(id) {

        ● return new ProcesadorTef();

      ● }

      ● …

    ●}
Configurando Beans con XML

➔   Obteniendo un bean desde una fábrica estática

    ●

    ●<bean id=”miBean” class=”FabricaProcesadores”
    factory-method=”crearProcesador”>
       ● <constructor-args value=”tef” />

    ●</bean>
Configurando Beans con XML

➔   Obteniendo un bean desde un método de
    instancia tipo fábrica

    public class FabricaProcesador {
       private Map<String, Procesador> procesadores;
       ...
       public Procesador crearProcesador(String id) {
          return rocesadores.get(id);
       }
       ...
    }
Configurando Beans con XML

Obteniendo un bean desde un método de
instancia tipo fábrica
     ●

 ●<bean id=”fabrica” class=”FabricaProcesador”>
 ●…

 ●</bean>

 ●

 ●<bean id=”miBean” factory-bean=”fabrica”
 factory-method=”crearProcesador”>
    ● <constructor-args value=”tef” />

 ●</bean>
Imágenes de
Wikimedia Commons

Más contenido relacionado

Similar a Curso de Spring: Beans

Spring BlazeDS Integration - Rumbo a Spring I/O
Spring BlazeDS Integration - Rumbo a Spring I/OSpring BlazeDS Integration - Rumbo a Spring I/O
Spring BlazeDS Integration - Rumbo a Spring I/OSergi Almar i Graupera
 
Introducccion springframework
Introducccion springframeworkIntroducccion springframework
Introducccion springframeworkVortexbird
 
Componentes en angularjs 1.5
Componentes en angularjs 1.5Componentes en angularjs 1.5
Componentes en angularjs 1.5Hugo Biarge
 
Taller de Backbone.js en Betabeers Malaga 06/09/2012
Taller de Backbone.js en Betabeers Malaga 06/09/2012Taller de Backbone.js en Betabeers Malaga 06/09/2012
Taller de Backbone.js en Betabeers Malaga 06/09/2012Damian Serrano Thode
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCParadigma Digital
 
Webutil de oracle
Webutil de oracleWebutil de oracle
Webutil de oracleguestc91f49
 
Oracle Forms
Oracle FormsOracle Forms
Oracle Formshenryjzbl
 
Curso Java Avanzado 3 4 Js Ps Con Java Beans
Curso Java Avanzado   3 4 Js Ps Con Java BeansCurso Java Avanzado   3 4 Js Ps Con Java Beans
Curso Java Avanzado 3 4 Js Ps Con Java BeansEmilio Aviles Avila
 
Zend Framework 2 y MongoDB
Zend Framework 2 y  MongoDBZend Framework 2 y  MongoDB
Zend Framework 2 y MongoDBEl Taller Web
 
13. Configuracion De Aplicaciones Web Asp.Net
13.  Configuracion De Aplicaciones Web Asp.Net13.  Configuracion De Aplicaciones Web Asp.Net
13. Configuracion De Aplicaciones Web Asp.Netguest3cf6ff
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaJorge Pacheco Mengual
 

Similar a Curso de Spring: Beans (18)

Java beans en jsp
Java beans en jspJava beans en jsp
Java beans en jsp
 
Spring BlazeDS Integration - Rumbo a Spring I/O
Spring BlazeDS Integration - Rumbo a Spring I/OSpring BlazeDS Integration - Rumbo a Spring I/O
Spring BlazeDS Integration - Rumbo a Spring I/O
 
Introducccion springframework
Introducccion springframeworkIntroducccion springframework
Introducccion springframework
 
Primefaces
PrimefacesPrimefaces
Primefaces
 
Componentes en angularjs 1.5
Componentes en angularjs 1.5Componentes en angularjs 1.5
Componentes en angularjs 1.5
 
Taller de Backbone.js en Betabeers Malaga 06/09/2012
Taller de Backbone.js en Betabeers Malaga 06/09/2012Taller de Backbone.js en Betabeers Malaga 06/09/2012
Taller de Backbone.js en Betabeers Malaga 06/09/2012
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
Webutil de oracle
Webutil de oracleWebutil de oracle
Webutil de oracle
 
Webutil
WebutilWebutil
Webutil
 
Maven Overview
Maven OverviewMaven Overview
Maven Overview
 
Springboot Overview
Springboot  OverviewSpringboot  Overview
Springboot Overview
 
Oracle Forms
Oracle FormsOracle Forms
Oracle Forms
 
Curso Java Avanzado 3 4 Js Ps Con Java Beans
Curso Java Avanzado   3 4 Js Ps Con Java BeansCurso Java Avanzado   3 4 Js Ps Con Java Beans
Curso Java Avanzado 3 4 Js Ps Con Java Beans
 
SpringBlazeDS
SpringBlazeDSSpringBlazeDS
SpringBlazeDS
 
Zend Framework 2 y MongoDB
Zend Framework 2 y  MongoDBZend Framework 2 y  MongoDB
Zend Framework 2 y MongoDB
 
jsf
jsfjsf
jsf
 
13. Configuracion De Aplicaciones Web Asp.Net
13.  Configuracion De Aplicaciones Web Asp.Net13.  Configuracion De Aplicaciones Web Asp.Net
13. Configuracion De Aplicaciones Web Asp.Net
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en Autentia
 

Más de Jano González

JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011Jano González
 
JRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJano González
 
Programación Políglota en la JVM
Programación Políglota en la JVMProgramación Políglota en la JVM
Programación Políglota en la JVMJano González
 
JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?Jano González
 
Un emulador de Game Boy escrito en Ruby (parte 1)
Un emulador de Game Boy escrito en Ruby (parte 1)Un emulador de Game Boy escrito en Ruby (parte 1)
Un emulador de Game Boy escrito en Ruby (parte 1)Jano González
 
Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1Jano González
 
Análisis y Diseño OO 2
Análisis y Diseño OO 2Análisis y Diseño OO 2
Análisis y Diseño OO 2Jano González
 
Análisis y Diseño OO 1
Análisis y Diseño OO 1Análisis y Diseño OO 1
Análisis y Diseño OO 1Jano González
 
Un newbie conoce a Sinatra
Un newbie conoce a SinatraUn newbie conoce a Sinatra
Un newbie conoce a SinatraJano González
 

Más de Jano González (14)

Spring jdbc
Spring jdbcSpring jdbc
Spring jdbc
 
Vim FTW!
Vim FTW!Vim FTW!
Vim FTW!
 
Ruby
RubyRuby
Ruby
 
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
 
JRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterprise
 
Programación Políglota en la JVM
Programación Políglota en la JVMProgramación Políglota en la JVM
Programación Políglota en la JVM
 
A Little RSpec
A Little RSpecA Little RSpec
A Little RSpec
 
JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?
 
Un emulador de Game Boy escrito en Ruby (parte 1)
Un emulador de Game Boy escrito en Ruby (parte 1)Un emulador de Game Boy escrito en Ruby (parte 1)
Un emulador de Game Boy escrito en Ruby (parte 1)
 
Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1
 
Análisis y Diseño OO 2
Análisis y Diseño OO 2Análisis y Diseño OO 2
Análisis y Diseño OO 2
 
Análisis y Diseño OO 1
Análisis y Diseño OO 1Análisis y Diseño OO 1
Análisis y Diseño OO 1
 
Programación Java
Programación JavaProgramación Java
Programación Java
 
Un newbie conoce a Sinatra
Un newbie conoce a SinatraUn newbie conoce a Sinatra
Un newbie conoce a Sinatra
 

Último

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 

Último (11)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 

Curso de Spring: Beans

  • 1. Beans Relator: Alejandro González (info@janogonzalez.com)
  • 3. Temario General ➔ Beans ➔ BeanFactory ➔ ApplicationContext ➔ Configurando Beans con XML
  • 4. Bean ➔ Es un POJO ➔ Es un componente de la aplicación, al que se le pueden inyectar valores y otros componentes Dependencia Otro Componente Componente POJO POJO
  • 5. Bean ➔ Los beans y sus dependencias deben ser declarados para que Spring los reconozca ➔ Al iniciar su contenedor, Spring crea los beans e inyecta sus dependencias Dependencia Bean Bean
  • 7. BeanFactory ➔ Contenedor de los beans de la aplicación ➔ Cada bean tiene un identificador para poder obtenerlo desde la BeanFactory BeanFactory Dependencia Bean Bean
  • 8. ApplicationContext ➔ Agrega funcionalidad a la BeanFactory como facilidad de integración con AOP y manejo de archivos de recursos ApplicationContext Dependencia Bean Bean
  • 9. Interesante... ¿Pero cómo lo hago en mi aplicación?
  • 10. Configurando Beans con XML ➔ La declaración más básica es un identificador y la clase del objeto ● <bean id=”idDelBean” class=”LaClase”/> ● <bean id=”otroBean” class=”OtraClase”/>
  • 11. Configurando Beans con XML ➔ Se pueden inyectar valores de distintos tipos ● ●<bean id=”idDelBean” class=”LaClase”> ● <property name=”nombre” value=”valor” /> ● <property name=”unEntero” value=”5” /> ● <property name=”lista”> ● <list> ● <value>valor 1</value> ● </list> ● </property> ●</bean>
  • 12. Configurando Beans con XML ➔ Se pueden inyectar otros beans ● ●<bean id=”bean1” class=”LaClase”> ● <property name=”dependencia” ref=”bean2” /> ●</bean> ● <bean id=”otroBean” class=”OtraClase”/>
  • 13. Configurando Beans con XML ➔ Se pueden inyectar valores de distintos tipos ● ●<bean id=”idDelBean” class=”LaClase”> ● <property name=”mapa”> ● <map> ● <entry key=”llave1” value=”valor1” /> ● <entry key=”llave2” value=”valor2” /> ● </map> ● </property> ●</bean>
  • 14. Configurando Beans con XML ➔ Inyección en el constructor ● ●<bean id=”idDelBean” class=”LaClase”> ● <constructor-arg type=”java.lang.String” value=”valor” /> ● <constructor-arg type=”int” value=”5” /> ●</bean>
  • 15. Manejando situaciones un poco más complicadas
  • 16. Configurando Beans con XML ➔ Se puede manejar el ciclo de vida del objeto ● ●<bean id=”idDelBean” class=”LaClase” init- method=”metodoDeInicializacion” destroy- method=”llamarAlFinal” />
  • 17. Configurando Beans con XML ➔ Inicialización de tipo lazy ● ●<bean id=”idDelBean” class=”LaClase” lazy- init=”true” />
  • 18. Configurando Beans con XML ➔ Obteniendo un bean desde una fábrica estática ● ●public static Procesador crearProcesador(String id) { ● if (“tef”.equals(id) { ● return new ProcesadorTef(); ● } ● … ●}
  • 19. Configurando Beans con XML ➔ Obteniendo un bean desde una fábrica estática ● ●<bean id=”miBean” class=”FabricaProcesadores” factory-method=”crearProcesador”> ● <constructor-args value=”tef” /> ●</bean>
  • 20. Configurando Beans con XML ➔ Obteniendo un bean desde un método de instancia tipo fábrica public class FabricaProcesador { private Map<String, Procesador> procesadores; ... public Procesador crearProcesador(String id) { return rocesadores.get(id); } ... }
  • 21. Configurando Beans con XML Obteniendo un bean desde un método de instancia tipo fábrica ● ●<bean id=”fabrica” class=”FabricaProcesador”> ●… ●</bean> ● ●<bean id=”miBean” factory-bean=”fabrica” factory-method=”crearProcesador”> ● <constructor-args value=”tef” /> ●</bean>