✅ 빈에 리턴값이 있는 메서드 작성

 

✅ xml에 빈등록

 

 

✅ 스프링 컨테이너에서 객체를 얻어와야하는데 먼저 컨테이너에 접근 해야하므로
       GenericXmlApplicationContext 객체를 통해 user.xml에 있는 설정을 읽어온다.

 

 

1️⃣  .getBean("id값");   
        =>   xml에 등록된 bean태그의 id 값을 이용해서 빈을 참조한다. 
        =>   id값만 던지면 Object 타입으로 리턴하므로 형변환을 해주어야 한다.
       👉  권장하지 않는다.

UserDAO userDAO = (UserDAO)ctx.getBean("yyy");           // .getBean("id값");   권장안함

 

 

 

2️⃣ .getBean("id값"클래스명.class);    ⭐⭐⭐

       =>  매개변수로 BeanName+Class 를 던지므로 보다 명확하게 객체를 얻어올 수 있다.
       =>  형변환 안해도 된다.

      👉  권장 방법

// 클래스명 변수명 =  ctx.getBean("xml의 id값", 클래스명.class);
   UserDAO userDAO = ctx.getBean("yyy", UserDAO.class);

 

 

✅ 최종적으로 호출하여 출력.

 

 

 

 


 

 

 

순서 정리

1️⃣ 빈 생성 후, 메서드 작성

2️⃣ xml에 빈등록

3️⃣ ApplicationContext에 xml을 알려주기
      (=> 인자로 받은 xml 파일을 로딩해 컨테이너를 구동시킨다.)

4️⃣ .getBean("id값"클래스명.class);  메서드를 호출해서 객체 얻어오기
      (=>  클래스명.class의 id값 이라는 id를 가진 빈을 받아온다)

5️⃣ 컨테이너가 bean으로 등록한 객체를 반환한다.

 

'Framework > SPRING FRAMEWORK' 카테고리의 다른 글

DI (Dependency injection)  (0) 2023.08.28
ApplicationContext 계층구조  (0) 2023.08.28
01. 빈 생성_prefix  (0) 2023.08.26
01. 빈 생성_multi  (0) 2023.08.26
01. 빈 생성  (0) 2023.08.25
xoo | 수진