Spring4注入ApplicationContext的方法
第一种:使用@Autowired注解
@Component
public class User{
@Autowired
private ApplicationContext applicationContext;
public void show(){
System.out.println("user:"+applicationContext.getClass());
}
}
AnnocationConfigApplicationContext context = new AnnocationConfigApplicationContext("com.edu.spring");
context.getBean("user",User.class).show();
第二种:
@Component
public class Book implements ApplicationContextAware{
private ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext applicationContext)throws Exception{
this.applicationContext = applicationContext;
}
public void show(){
System.out.println("book:"+applicationContext.getClass());
}
}
第三种:
@Component
public class Bank{
private ApplicationContext applicationContext;
public Bank(ApplicationContext applicationContext){
this.applicationContext = applicationContext;
}
public void show(){
System.out.println("bank:"+applicationContext.getClass());
}
}
注意:构造函数只能有一个,如果有多个的话,就必须有一个无参的构造函数,此时spring会调用无参的构造函数;构造函数的参数必须都要在spring容器中存在。