代碼已上傳,GitHub地址
目標:已知InitSpring1和InitSpring2兩個類,spring1中有spring2的引用,用spring框架實現spring2的注入。
- 創建InitSpring1
public class InitSpring1 {
private InitSpring2 initSpring2;
// a setter method to inject the dependency.
public void setInitSpring2(InitSpring2 initSpring2) {
System.out.println("init Spring1."+"\n");
this.initSpring2 = initSpring2;
}
// a getter method to return spellChecker
public InitSpring2 getInitSpring2() {
return initSpring2;
}
public void logOut() {
initSpring2.logOut();
}
}
- 創建InitSpring2
public class InitSpring2 {
public InitSpring2(){
System.out.println("init Spring2."+"\n");
}
public void logOut() {
System.out.println("log out Spring2."+"\n");
}
}
- 創建testSpring.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
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="spring1" class="yang.shuai.ysservice.entity.InitSpring1">
<property name="initSpring2" ref="spring2"/>
</bean>
<bean id="spring2" class="yang.shuai.ysservice.entity.InitSpring2">
</bean>
</beans>
- 創建SpringController
注意xml文件的引用路徑
@RestController//controller標識
@RequestMapping("/spring")//請求路徑
public class SpringController {
@GetMapping("/getSpring")//請求路徑
public void getSpring(){
//放在src目錄下
ApplicationContext context =
new FileSystemXmlApplicationContext("classpath:inject/testSpring.xml");
InitSpring1 te = (InitSpring1) context.getBean("spring1");
te.logOut();
}
}
- 輸出結果