gpt4 book ai didi

java - Spring中xml配置优先于注解配置的例子

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:17:23 25 4
gpt4 key购买 nike

在我看过的一本书中,XML配置比注解配置具有更高的优先级。

但是没有任何例子。

你能举个例子吗?

最佳答案

这是一个简单的示例,显示了基于 xml 的 Spring 配置和基于 Java 的 Spring 配置的混合。例子中有5个文件:

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

首先尝试在 applicationContext 文件中注释掉 helloBean bean 的情况下运行它,您会注意到 helloBean bean 是从 AppConfig 配置类实例化的。然后使用 applicationContext.xml 文件中未注释的 helloBean bean 运行它,您会注意到 xml 定义的 bean 优先于 AppConfig 类中定义的 bean。


主.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");
}
}


应用配置.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>


你好宇宙.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!!!");
}
}

关于java - Spring中xml配置优先于注解配置的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21826445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com