第一种:直接注入
@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(); } }