개발자 공부/♡ 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