Spring Framework/Configuración a través de anotaciones

, Author

Spring ofrece la posibilidad de enlazar beans a través de anotaciones en el código y no a través del fichero de configuración xml. Podemos tomar el ejemplo de una clase MessageDisplayer llamando a otra clase MessageDisplayer2. Esta relación, entonces, no necesita ser declarada específicamente en el archivo Beans:

<?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:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"><context:annotation-config /><bean class="mainPackage.MessageDisplayer"></bean></beans>

Clase principal:

package mainPackage;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.support.ClassPathXmlApplicationContext;@ComponentScan(basePackages = "mainPackage")public class MainClass{public static void main(String args){ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("Beans.xml");MessageDisplayer messageDisplayer = classPathXmlApplicationContext.getBean(MessageDisplayer.class);messageDisplayer.setMessage("test");messageDisplayer.displayMessage();classPathXmlApplicationContext.close();}}

Primera clase de visualización:

package mainPackage;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.ComponentScan;import org.springframework.stereotype.Component;@[email protected]("mainPackage")public class MessageDisplayer{@AutowiredMessageDisplayer2 messageDisplayer2;private String message;public String getMessage(){return message;}public void setMessage(String message){this.message = message;}public void displayMessage(){System.out.println("message from MessageDisplayer : " + message);messageDisplayer2.setMessage("test2");messageDisplayer2.displayMessage();}}

Segunda clase de visualización, llamada por la primera:

package mainPackage;import org.springframework.stereotype.Component;@Componentpublic class MessageDisplayer2{private String message;public String getMessage(){return message;}public void setMessage(String message){this.message = message;}public void displayMessage(){System.out.println("message from MessageDisplayer2 : " + message);}}

Visualización de resultados:

mai 09, 2018 5:57:39 PM org.springframework.context.support.AbstractApplicationContext prepareRefreshINFOS: Refreshing org[email protected]2328c243: startup date ; root of context hierarchymai 09, 2018 5:57:39 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitionsINFOS: Loading XML bean definitions from class path resource message from MessageDisplayer : testmessage from MessageDisplayer2 : test2mai 09, 2018 5:57:40 PM org.springframework.context.support.AbstractApplicationContext doCloseINFOS: Closing org[email protected]2328c243: startup date ; root of context hierarchy

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *