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.