Este artículo describe la gestión básica de Spring Bean con ejemplos. Compártelo con todos para tu referencia, los detalles son los siguientes:
1. Utilice el método setter para completar la inyección de dependencia
A continuación se muestran los archivos Bean y beans-config.xml.
clase pública HelloBean { cadena privada helloWord; //...omitir los métodos getter y setter}
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans. dtd"> <beans> <bean id="holaBean" > <property name="helloWord"> <value>¡Hola! Justin!</value> </property> </bean> </bean>
clase pública SpringDemo { public static void main(String[] args) { Recurso rs = new FileSystemResource("beans-config.xml"); fábrica BeanFactory = new XmlBeanFactory(rs); HelloBean hola = (HelloBean) factory.getBean(" holaBean"); System.out.println(hola.getHelloWord()); } }
2. Utilice el método constructor para completar la inyección.
clase pública HelloBean { nombre de cadena privada; cadena privada helloWord; // Se recomienda tener un método de construcción sin parámetros public HelloBean() { } public HelloBean(String name, String helloWord) { this.name = name; ; } //...Omitir los métodos getter y setter}
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans. dtd"> <beans> <bean id="holaBean" > <constructor-arg index="0"> <valor>Justin</value> </constructor-arg> <constructor-arg index="1"> <value>Hola</value> </constructor-arg> </bean> </beans>
clase pública SpringDemo { public static void main(String[] args) { contexto ApplicationContext = new FileSystemXmlApplicationContext("beans-config.xml"); HolaBean hola = (HelloBean) context.getBean("helloBean"); ("Nombre: "); System.out.println(hola.getName()); System.out.print("Palabra: "); System.out.println(hola.getHelloWord());
3. Referencia de atributos
clase pública HelloBean { cadena privada holaPalabra; fecha privada fecha; //...omitir métodos getter y setter}
<beans> <bean id="dateBean"/> <bean id="helloBean"> <property name="helloWord"> <value>¡Hola!</value> </property> <property name="fecha"> < ref bean="dateBean"/> </property> </bean> </beans>
clase pública SpringDemo { public static void main(String[] args) { contexto ApplicationContext = new FileSystemXmlApplicationContext("beans-config.xml"); HolaBean hola = (HelloBean) context.getBean("helloBean"); (hola.getHelloWord()); System.out.print("Es"); System.out.print(hola.getDate()); System.out.println(".");
4. Encuadernación automática "byType"
Cambie el archivo de configuración en "Tres" al siguiente para completar la vinculación automática de los atributos del bean por tipo.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="byType"> <property name="helloWord"> <value>¡Hola!</value> </property> </bean> </frijoles>
5. Enlace automático "byName"
Cambie el archivo de configuración en "Tres" al siguiente para completar el enlace automático de los atributos del bean por nombre.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="byName"> <property name="helloWord"> <value>¡Hola!</value> </property> </bean> </frijoles>
6. Encuadernación automática "constructor"
Cambie el archivo de configuración en "Tres" al siguiente para completar el enlace automático de los atributos del bean de acuerdo con el método de construcción. Al establecer una relación de dependencia, el contenedor Spring intentará comparar el tipo de instancia de Bean en el contenedor y el tipo de parámetro en el constructor relacionado para ver si el tipo es consistente. Si es así, el constructor se utilizará para crear el ejemplo. . Si no se puede vincular, se lanza una excepción org.springframework.beans.factory.UnsatisfiedDependencyException.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="constructor"> <property name="helloWord"> <value>¡Hola!</value> </property> </bean> </frijoles>
6. enlace automático "autodetección"
Cambie el archivo de configuración en "Tres" al siguiente para completar el enlace automático de los atributos del bean. Este enlace automático significa que Spring intentará usar el constructor para manejar el establecimiento de dependencias. Si no funciona, intente usar byType. clase para establecerlo.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="autodetect"> <property name="helloWord"> <value>¡Hola!</value> </property> </bean> </frijoles>
7. Método de verificación de dependencia
En el enlace automático, dado que no hay forma de ver claramente si cada atributo se ha configurado desde el archivo de definición, para garantizar que ciertas dependencias estén realmente establecidas, puede configurar la verificación de dependencia al usar la etiqueta <bean> Definir ". dependency-check", hay cuatro métodos de verificación de dependencia: simple, objetos, todos y ninguno.
simple: solo comprueba si las propiedades de tipos simples (como tipos de datos primitivos u objetos de cadena) completan las dependencias.
objetos: compruebe si las propiedades del tipo de objeto completan la dependencia.
all: comprueba si todos los atributos completan las dependencias.
none: la configuración es el valor predeterminado, lo que indica que las dependencias no están marcadas.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="autodetect" dependey-check="all"> <property name="helloWord"> <value>¡Hola!</value> < /propiedad> </bean> </beans>
8. Inyección de objetos de colección.
Para objetos de colección como matrices, listas, conjuntos y mapas, algunos objetos deben completarse en la colección antes de la inyección. Luego, cuando los objetos de la colección se inyectan en los beans requeridos, el contenedor IoC de Spring también los puede mantener o generar automáticamente. Objetos de colección e inyección de dependencia completa.
clase pública SomeBean { cadena privada [] someStrArray; privado Some[] someObjArray; lista privada someList; mapa privado someMap; getSomeStrArray() { return someStrArray } public void setSomeStrArray(String[] someStrArray) { this.someStrArray = someStrArray; } público Algunos[] getSomeObjArray() { return someObjArray } público vacío; setSomeObjArray(Some[] someObjArray) { this.someObjArray = someObjArray; } lista pública getSomeList() { return someList } public void setSomeList(List someList) { this.someList = someList } mapa público getSomeMap() { return someMap; public void setSomeMap(Mapa algúnMapa) { this.someMap = someMap } }clase pública; Algunos { nombre de cadena privada; getName de cadena pública () { nombre de retorno } nombre de conjunto vacío (nombre de cadena) { this.name = nombre } cadena pública toString () { nombre de retorno } }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans. dtd"> <beans> <bean id="some1"> <propiedad nombre="nombre"> <valor>Justin</value> </property> </bean> <bean id="some2"> <property name="name"> <value>momor</value> </property> </bean> <bean id="someBean"> <property name="someStrArray"> <lista> < value>Hola</value> <value>Bienvenido</value> </list> </property> <property name="someObjArray"> <list> <ref bean="some1"/> <ref bean="some2"/> </list> </property> <property name="someList"> <list> <value>ListTest</value> <ref bean="some1"/> <ref bean="some2" /> </list> </property> <property name="someMap"> <map> <entry key="MapTest"> <value>¡Hola! Justin!</value> </entry> <entry key="someKey1 "> <ref bean="some1"/> </entry> </map> </property> </bean> </beans>
clase pública SpringDemo { public static void main(String[] args) { Contexto ApplicationContext = new FileSystemXmlApplicationContext( "beans-config.xml"); SomeBean someBean = (SomeBean) context.getBean("someBean"); Objeto de inyección de dependencia con estado String[] strs = (String[]) someBean.getSomeStrArray() Some[] somes =; (Algunos[]) someBean.getSomeObjArray(); for(int i = 0; i < strs.length; i++) { System.out.println(strs[i] + "," + somes[i].getName() } // Obtener el objeto de inyección de dependencia de tipo Lista System.out.println(); Listar algunaLista = (Lista) someBean.getSomeList(); someList.size(); i++) { System.out.println(someList.get(i) } // Obtener el objeto de inyección de dependencia del tipo de mapa System.out.println(); (); System.out.println(someMap.get("MapTest")); System.out.println(someMap.get("someKey1")); }
Espero que este artículo sea útil para todos los que están en la programación Java.