[英]Stuck converting Spring xml config to java config
我堅持將 Spring 中的當前測試應用程序從使用 XML 配置轉換為使用 Java 配置...
我有以下文件
App.java
package com.spring.ioc.DependencyInjection;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("app-config.xml");
Phone p = ctx.getBean("phone", Phone.class);
p.calling();
p.data();
}
}
Galaxy.java
package com.spring.ioc.DependencyInjection;
public class Galaxy implements Phone {
public void calling() {
System.out.println("Calling using Galaxy");
}
public void data() {
System.out.println("Browsing internet using Galaxy");
}
}
iPhone.java
package com.spring.ioc.DependencyInjection;
public class IPhone implements Phone {
public void calling() {
System.out.println("Calling using iPhone");
}
public void data() {
System.out.println("Browsing internet using iPhone");
}
}
電話.java
package com.spring.ioc.DependencyInjection;
public interface Phone {
void calling();
void data();
}
應用程序配置.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="phone" class="com.spring.ioc.DependencyInjection.IPhone"></bean>
</beans>
上面的代碼允許我演示如何使用 XML 並通過更改完全限定名稱末尾的 bean 名稱來編輯“iPhone”或“Galaxy”之間的文本
<bean id="phone" class="com.spring.ioc.DependencyInjection.IPhone"></bean>
或<bean id="phone" class="com.spring.ioc.DependencyInjection.Galaxy"></bean>
如何在使用 JavaConfig 而不是 XML 配置時做同樣的事情?
我知道如何使用 Java 配置來只拉一個 bean,但我不知道如何設置它以在兩個對象之間交替。
你能通過修改我提供的代碼或添加任何其他需要的代碼來告訴我嗎?
我相信你可以使用
@Component("iphone")
public class IPhone {}
@Component("galaxy ")
public class Galaxy {}
以及你注射它的地方,
@Autowired
@Qualifier(value = "iphone")
private Phone iPhone;
@Autowired
@Qualifier(value = "galaxy")
private Phone galaxy;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.