2010-12-28 2 views
1

특정 Java bean을 사용하여 외부 목록에서 테스트 케이스를 작성하려고합니다. 자바 도구 (스프링 프레임 워크 또는 유사)를 찾아이 빈을 인스턴스화하고 외부 목록의 값으로 채 웁니다 (루프를 수행 할 예정). (어떤 종류의 콩 주입) 이 직업을 구하는 도구를 알고 있습니까?java bean injection

덕분에, 호세 크루즈

답변

3

나는 큰 봄 팬이에요,하지만 난 봄이 경우에 당신은 많은 좋은 일을 할 것이라고 생각하지 않습니다. 나는 테스트 빈을 만든 후 반복하여 테스트 빈을 만든다.

2

나는 봄의 팬이 아니다. Guice 또는 Dependency Injection을위한 용접으로 이동하십시오.

귀하의 경우 Commons BeanUtils를 사용하는 것이 훨씬 쉬워 진 것 같습니다. 그들은 메소드를 다음 서명으로 채우고 List 대신 Map을 사용합니다.

public static void populate(Object bean, 
          Map properties) 
        throws IllegalAccessException, 
          InvocationTargetException 

은 참조 : BeanUtils.populate(Object bean, Map properties)

+0

물론 첫 번째 단락 (Spring rülez)에는 -1을 주어야합니다 .-)하지만 여기 BeanUtils 솔루션에 +1이 있습니다. –

+0

@Sean SpingSource의 라이선스 모델 [수익 모델 읽기]가 변경된 방식은 매우 성가신 일입니다. 두 번째 컨벤션 이상의 컨벤션은 항상 수상했습니다. 대부분의 기능은 Java EE 6에서 쉽게 사용할 수 있으며 쉽게 구현할 수 있습니다. 그런 다음 다른 이유는 무엇입니까? 마지막으로,하지만 최소한으로, 왜 그렇게 간단한 프레임 워크를 사용해야합니까? :) –

+0

나는 마지막 부분에 동의한다. BeanWrapper는 BeanUtils와 같은 독립형 기술이어야한다. 그러나 Spring의 핵심은 Java EE가 필요 없다는 것입니다. 서블릿 컨테이너 또는 독립 실행 형 응용 프로그램에서도 모든 기능을 사용할 수 있습니다. –

0

는 기본적으로, 어떤이 모든 프레임 워크가 내부적으로 사용하는 것은 BeanInfo/Introspector 메커니즘입니다. 따라서 스스로 할 필요가 없다면이 메커니즘을 직접 사용할 수 있습니다.

유사한 솔루션을 내이 이전 답변을 참조하십시오 :
How to set the fields of an object given a map of key/values?

그러나 봄과 물론 이런 종류의 당신이 the BeanWrapper technology를 사용하는 경우 특히, 훨씬 더 편안 (물론 거의 동일한 않는 내부적으로 더 멋지고 확장 가능한 방식으로).