spring注入ApplicationContext对象的三种方式
第一种:直接注入
@Component
public class User {
@Autowired
private ApplicationContext applicationContext;
public void show(){
System.out.println(applicationContext.getClass().getName());
}
}
第二种方式:构造器注入
@Component
public class Bank {
private ApplicationContext applicationContext;
public Bank(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
public void show(){
System.out.println(applicationContext.getClass().getName()+"===========");
}
}
第三种:实现接口方式
@Component public class Book implements ApplicationContextAware{ private ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext=applicationContext; } public void show(){ System.out.println(applicationContext.getClass().getName()); } }
测试
public class App {
public static void main(String[] args) {
AnnotationConfigApplicationContext con = new AnnotationConfigApplicationContext("com.edu.spring");
User user = (User) con.getBean("user");
user.show();
con.getBean(Book.class).show();
con.getBean(Bank.class).show();
con.close();
}
}
浙公网安备 33010602011771号