que mvc configurar configuración conceptos bean basico anotaciones java spring spring-mvc annotations xml-configuration

java - mvc - Ejemplo de configuración xml tomando precedencia sobre configuración de anotación en Spring



spring mvc conceptos (2)

Aquí hay un ejemplo simple que muestra una combinación de configuración Spring basada en XML y configuración Spring basada en Java. Hay 5 archivos en el ejemplo:

Main.java AppConfig.java applicationContext.xml HelloWorld.java HelloUniverse.java

Intente ejecutarlo primero con el bean helloBean comentado en el archivo applicationContext y verá que el bean helloBean se helloBean una instancia de la clase de configuración de AppConfig. A continuación, ejecútelo con el bean helloBean comentarios en el archivo applicationContext.xml y verá que el bean xml definido tiene prioridad sobre el bean definido en la clase AppConfig.


Main.java

package my.test; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Main { public static void main(String[] args) { ApplicationContext ctx = new AnnotationConfigApplicationContext( AppConfig.class ); ctx.getBean("helloBean"); } }


AppConfig.java

package my.test; import org.springframework.context.annotation.*; @ImportResource({"my/test/applicationContext.xml"}) public class AppConfig { @Bean(name="helloBean") public Object hello() { return new HelloWorld(); } }


ApplicationContext.xml

<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.xsd"> <bean id="helloBean" class="my.test.HelloUniverse"/> </beans>


HelloUniverse.java

package my.test; public class HelloUniverse { public HelloUniverse() { System.out.println("Hello Universe!!!"); } }


HelloWorld.java

package my.test; public class HelloWorld { public HelloWorld() { System.out.println("Hello World!!!"); } }

En un libro que he leído, la configuración XML tiene mayor prioridad que la configuración de anotación.

Pero no hay ningún ejemplo de eso.

¿Podrías mostrar un ejemplo de eso?


Las configuraciones basadas en XML se usan cuando preferimos configuraciones declarativas centralizadas de archivos XML. Y cuando cambian muchas de las configuraciones. Le da una idea clara de cómo estas configuraciones están cableadas. XML está más desacoplado que la anotación.