第一种方法:
使用@Autowired方法来获取
举个栗子
public class User { @Autowired //@Resource //@Inject private ApplicationContext applicationContext; public void show() { System.out.println("applicationContext = " + applicationContext.getClass()); } }
这三个注解都可以,注意第三个注解要引入jar包.
第二种方式:
实现ApplicationContextAware接口
@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 = " + applicationContext.getClass()); } }
第三种方式
使用构造器,在构造器里传入
/**
* spring4.3新特性
* 1.构造函数只能有一个.
* 2.构造器参数必须在spring容器中.
*/
@Component public class Bank { private ApplicationContext applicationContext; public Bank(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } public void show() { System.out.println("applicationContext = " + applicationContext.getClass()); } }
有一定局限性
构造函数不能为空,