✅ 빈에 리턴값이 있는 메서드 작성
✅ 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 |