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