OpenSource/Spring
spring bean 등록 방법
태하팍
2013. 1. 4. 15:54
spring을 거의 대부분이 mvc 요즘은 @mvc를 사용 한다. @mvc는 어노테이션을 사용하는 mvc를 말한다.
그래서 인지 자바 stand alone 형태에서는 빈을 가지고 노는걸 잘 모르는 경우가 많다.
우선 방법은 spring mvc와 spring bean을 자바단에서 빈을 등록 시키고 DI 해주는게 있다는 것을 전제 하에
알아 보도록 하겠다.
spring @mvc는 간단히 설명을 하면 was가 기동 되어질 때 bean이 등록 되어진다. 등록 되어진 bean을 와이어링(@Autowired)을 하여 연결 해준다. 아마도..C로 말하면 주소값을 가져오는 것 같다. 그래서 그 객체를 가지고 쓸 수 있도록 한다.
이제 이 페이지에서 알아 볼 것은 자바단에서 빈을 등록 시키고(context 호출) 사용하는 방법을 2가지로 알아 보겠다.
spring의 모든 것을 외우기는 힘드니깐 찾아 볼 수 있도록 토비책을 옆에 두면 더 좋을 것이다^^;
자바에서 configuration을 가져와서 bean을 등록 시켜주는 것을 전혀 안쓸 줄 알았는데..쓰인다!! ㅋㅋ
1) 첫번째 방법
public class OssMain {
public OssMain(){}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("##########start################");
ApplicationContext context = new GenericXmlApplicationContext("classpath:spring/context2/context-*.xml");
KtOssService ktOssService = context.getBean("ktOssService",KtOssService.class);
List<UpSoworkOdrSelectVo> aa = ktOssService.callOssProc();
System.out.println("##########end################");
System.out.println("##SCN##=>"+aa.toString());
}
} |
2) 그 외 소스는 생략 하도록 하겠다 사실 main에서 잡아주는 부분이 핵심이기 때문이다.
그래서 더 보자면 위의
GenericXmlApplicationContext을 사용하여 context-*.xml을 다 읽어드린다.
여러개의 xml 중 <
context:component-scan base-package="kr.pe.acet"/>
component-scan이라는 녀석이 있다. 명명에서도 보다 시피 스캔!!을 한다.
그래서 빈으로 전부 등록 시켜줘버린다.
tip. <context:annotation-config"/> : XML로 등록된 빈의 의존관계 정보 애노테이션을 이용해서 의존관계 메타정보를 추가해주는 빈 후처리기가 등록 된다.
<context:component-scan base-package="kr.pe.acet"/>
2) 두번째 방법 : @RunWith, @ContextConfiguration 을 사용하는 테스트 컨텍스트 프레임워크를 사용!!
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:spring/context2/context-osscommon.xml",
"classpath:spring/context2/context-datasource.xml",
"classpath:spring/context2/context-mybatis.xml",
})
public class OssMain {
@Autowired
KtOssService ktOssService;
public OssMain(){}
@Test
public void startProcedure() { <--- (public static void main(String[] args)였는걸 메소드 형태로!!)
// TODO Auto-generated method stub
System.out.println("##########start################");
//ApplicationContext context = new GenericXmlApplicationContext("classpath:spring/context2/context-*.xml");
//KtOssService ktOssService = context.getBean("ktOssService",KtOssService.class);
List<UpSoworkOdrSelectVo> aa = ktOssService.callOssProc();
System.out.println("##########end################");
//UpSoworkOdrSelectVo aa = om.callService();
System.out.println("##SCN##=>"+aa.toString());
}
}
|
스프링의 최고의 장점으로 테스트를 말하고 있다.
아직 테스트 코드에 능숙하지는 않지만 하나하나씩 습득해야 할 것 같다.
- 끝 -