나는 병렬 작업을 수행하기 위해 런타임에 몇 가지 작업 (java.util.concurrent.Callable
의 것)을 생성하는 싱글 톤 스프링 빈을 얻었다. 지금은 Callable
을 싱글 톤 빈의 내부 클래스로 정의하고 싱글 톤 빈은 new Task(in)
으로 인스턴스화하여 간단히 만듭니다. 여기서 in
은 런타임에만 알려진 매개 변수입니다.Spring : 런타임 매개 변수를 사용하는 Spring 빈을 인스턴스화하는 방법은 무엇입니까?
이제 Task의 call()
메서드를 트랜잭션으로 만들고 싶기 때문에 내부 Task 클래스를 일반 최상위 클래스로 추출하려고합니다. 그래서 Spring 빈이어야합니다.
내 싱글 톤에 Task
의 팩토리를 주어야 겠지만, 작업은 생성자 매개 변수로 런타임 값을 사용하는 프로토 타입 스프링 빈이어야합니다. 이것을 어떻게 할 수 있습니까?
@BorisTreukhov : 이것은 멀티 스레드 응용 프로그램 테스트에 대한 질문이 아닙니다. 이것은 Spring에 관한 질문입니다. 실제로, 나는 진짜 문제에서 산만하기 때문에 나의 질문에서 이유 # 2를 제거 할 것이다. –
참조 : http://stackoverflow.com/questions/8772585/spring-bean-with-dynamic-constructor-value – quaylar
@Bossie 내 코멘트를 제거 확인, BTW 나는 간단한 방법은 별도의 서비스를 만드는 것입니다 생각 beans를 사용하여 메소드를 트랜잭션으로 꾸며서 싱글 톤에 삽입하고 "in"매개 변수를 서비스 메소드에 전달합니다. –