Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 조건문
- Eclipse
- mysql
- React
- Thymeleaf
- Oracle
- Scanner
- Array
- html
- API
- Java
- Controller
- 배열
- View
- jquery
- 자료구조
- JDBC
- MVC
- Board
- string
- SpringBoot
- Uipath
- 이클립스
- 문자열
- db
- jsp
- Database
- rpa
- spring
- 상속
Archives
- Today
- Total
유정잉
Spring Bean 가져오는 두 가지 방법 [ 형변환 vs 제네릭 ] 본문
1️⃣ 기존 방식 ((Test) ctx.getBean("test1"))
Test t1 = (Test) ctx.getBean("test1");
- getBean("test1")은 Object 타입을 반환 → 직접 형변환 (Test)이 필요
- 형변환을 잘못하면 ClassCastException이 발생할 가능성이 있음
- Spring 3.0 이전의 일반적인 방식
2️⃣ 새로운 방식 (ctx.getBean("test1", Test.class))
Test t1 = ctx.getBean("test1", Test.class);
- 제네릭 타입을 지정하여 Test 객체로 반환 → 형변환 (Test) 필요 없음
- 컴파일 시점에 타입 체크 가능 → 안전한 코드
- Spring 3.0 이후 권장되는 방식
📌 차이점 정리
방식설명장점단점(Test) ctx.getBean("test1") | Object로 반환 후 강제 형변환 | 이전(Spring 3.0 이전) 코드와 호환 | 직접 형변환 필요, 형변환 오류 위험 |
ctx.getBean("test1", Test.class) | 지정한 타입(Test)으로 반환 | 코드 안전성 증가, 형변환 필요 없음 | 없음 (Spring 3.0 이상에서 권장) |
📌 어떤 방식을 사용해야 할까?
✅ Spring 3.0 이상을 사용한다면 ctx.getBean("test1", Test.class) 방식을 사용하는 것이 더 안전하고 좋음!
✅ 하지만, Spring 3.0 이전 버전에서는 (Test) ctx.getBean("test1") 방식을 사용할 수밖에 없음.
🔥 결론
👉 ctx.getBean("test1", Test.class) 방식이 더 안전하고 권장되는 방법!
👉 형변환 없이 바로 Test 타입으로 가져올 수 있어서 컴파일 타임에서 오류를 줄일 수 있음.
728x90
'개발자 공부 > ♡ Spring XML' 카테고리의 다른 글
Spring의 의존성 주입(DI) 4가지 방식 [ @Autowired, 생성자, 컬렉션, Setter ] (1) | 2025.02.03 |
---|---|
Spring XML 설정으로 [ Constructor DI(생성자 주입) ] (0) | 2025.02.03 |
Spring Bean의 라이프사이클 [ init-method와 destroy-method ] (0) | 2025.02.03 |
Spring Bean의 Scope [ singleton vs prototype ] 차이점 (0) | 2025.02.03 |
Spring Bean의 생성 시점 [ lazy-init ]의 true vs false 차이점 (0) | 2025.02.03 |