개발자 공부/♡ Spring XML
Spring Bean 가져오는 두 가지 방법 [ 형변환 vs 제네릭 ]
유정♡
2025. 2. 3. 15:50
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