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();
    }

}

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM