spring은 ApplicationContext 대상을 주입하는 세 가지 방식

2090 단어
첫 번째: 직접 주입
@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();
    }

}

  
전재 대상:https://www.cnblogs.com/ldwnana/p/8536838.html

좋은 웹페이지 즐겨찾기