La versión Spring 2.0 introdujo la configuración basada en XML Schema. Hace que los archivos de configuración XML de Spring sean mucho más claros de leer y, además, permite al desarrollador expresar la intención de una definición de bean. Estas nuevas etiquetas personalizadas funcionan mejor para infraestructura o beans de integración: por ejemplo, AOP, colecciones, transacciones, integración con marcos de terceros como Mule, etc., mientras que las etiquetas de beans existentes se adaptan mejor a beans específicos de aplicaciones, como DAOs, objetos de capa de servicio, validadores, etc. Principalmente reemplaza el antiguo estilo DTD por el nuevo estilo XML Schema. A continuación se muestra el antiguo estilo DTD y su nuevo estilo XML Schema equivalente.
DTD – estilo:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <beans> <!-- bean definitions here --> </beans>
Esquema XML – estilo:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <!-- bean definitions here --> </beans>
Este fragmento de configuración XML de Spring es un código repetitivo que podemos copiar y pegar en nuestro XML y luego insertar definiciones de <bean/> como siempre.
El esquema ‘util’
Como el nombre lo especifica, las etiquetas util se ocupan de problemas comunes de configuración de utilidades, como configurar colecciones, hacer referencia a constantes, etc. Para usar las etiquetas en el esquema util, debemos incluir el siguiente preámbulo en la parte superior de la configuración Spring XML expediente; para que las etiquetas en el espacio de nombres util estén disponibles para usar en el archivo XML.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> <!-- bean definitions here --> </beans>
<util:constante/>
La etiqueta ‘<util:constant/>’ está disponible en el esquema ‘util’. Se puede usar para declarar un bean que hace referencia al campo estático final de una clase. Construiremos una aplicación Spring simple usando la etiqueta ‘util:constant’.
Estructura del proyecto:
- Cree un nuevo proyecto Java: Spring_Application.
- Agregue todos los archivos Spring Jar necesarios al proyecto.
- Cree una clase de bean: InfoBean.java, para definir todas las propiedades y valores constantes y métodos getter/setter de esas propiedades.
- Cree una clase contenedora: InfoWrapper.java, para envolver las constantes InfoBean.java.
- Cree un archivo de configuración XML: applicationContext.xml, para las configuraciones de bean.
- Cree la clase principal: InfoMain.java, para definir el contenedor de contexto de la aplicación, obtener los objetos de bean y ejecutar el proyecto.
- Ejecute la aplicación para obtener el resultado.
Después de crear el proyecto, las clases de bean y el archivo de configuración XML, a continuación se muestra la estructura del proyecto.
Los archivos spring jar se pueden descargar desde Maven Repository .
Archivos a crear:
InfoBean.java:
Java
package com.geeks.beans; public class InfoBean { public static final InfoBean JAVA = new InfoBean("Java","Eclipse"); public static final InfoBean PYTHON = new InfoBean("Python","PyCharm"); private String language; private String ide; public InfoBean(String language, String ide) { this.language = language; this.ide = ide; } public String getLanguage() { return language; } public void setLanguage(String language) { this.language = language; } public String getIde() { return ide; } public void setIde(String ide) { this.ide = ide; } public static InfoBean getJava() { return JAVA; } public static InfoBean getPython() { return PYTHON; } @Override public String toString() { return "Coding Language = " + language + ", IDE = " + ide ; } }
- En la clase de bean, definimos las propiedades ‘idioma’ e ‘ide’ como tipos de string.
- declaramos dos constantes finales estáticas ‘JAVA’ y ‘PYTHON’.
- Genere los métodos getter/setter de todas las propiedades.
- Anula el método ‘toString()’.
InfoWrapper.java:
Java
package com.geeks.beans; public class InfoWrapper { private InfoBean java; private InfoBean python; public InfoBean getJava() { return java; } public void setJava(InfoBean java) { this.java = java; } public InfoBean getPython() { return python; } public void setPython(InfoBean python) { this.python = python; } }
Clase contenedora para envolver las propiedades ‘InfoBean’ y sus métodos getter/setter.
ApplicationContext.xml:
XML
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd"> <!-- Use the static final bean constants here --> <util:constant id="JAVA" static-field="com.geeks.beans.InfoBean.JAVA" /> <util:constant id="PYTHON" static-field="com.geeks.beans.InfoBean.PYTHON" /> <bean name="infoWrapper" class="com.geeks.beans.InfoWrapper"> <property name="java" ref="JAVA" /> <property name="python" ref="PYTHON" /> </bean> </beans>
- Estamos usando la etiqueta util:constant para los campos constantes.
- Creando la definición de bean para la clase InfoWrapper.
- La referencia de las propiedades en la clase contenedora apunta a los campos constantes.
InfoPrincipal.java:
Java
package com.geeks.beans; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class InfoMain { @SuppressWarnings("resource") public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("com/geeks/resources/applicationContext.xml"); InfoWrapper info = (InfoWrapper) context.getBean("infoWrapper"); System.out.println(info.getJava()); System.out.println(info.getPython()); } }
Clase principal para obtener el bean ‘infoWrapper’ creado por el contenedor usando el método ‘getBean()’ y mostrar los valores.
Producción:
Ejecute la clase ‘InfoMain’ como un proyecto Java para obtener el siguiente resultado.
Publicación traducida automáticamente
Artículo escrito por yaminitalisetty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA