2014-11-04 2 views
0

JDBC 연결을 저장하는 데 사용되는 개체가 있습니다. 간단하게이 객체는 JDBC 연결 풀 관리자로 작동합니다. 몇 가지 석영 작업과 Spring의 응용 프로그램 컨텍스트를 사용하여 구성된 여러 스케줄러가 있습니다. 각 작업에이 개체 참조를 공유 할 수 있기를 원합니다. 이 객체는 스레드 안전을 위해 동기화 된 메서드로 설정됩니다. 또한 각 작업을 실행 후 데이터를 유지하도록 설정해야합니다.Java Spring의 예약 된 작업을 사용하여 객체 참조를 공유하는 방법은 무엇입니까?

나는 JobDataMap이 프리미티브와 문자열에만 사용될 수 있으며, 옵션처럼 보이지 않는다는 것을 알고있다. 이 개체를 만들 수 있기를 원합니다. 그런 다음 객체 참조를 각 작업에 전달하려고합니다. 각 동시 작업은이 동일한 참조를 공유합니다. 이렇게하면 작업마다 고유 한 개체 참조가 생기는 것을 방지 할 수 있습니다.

어디에서이 목표를 달성 할 수 있습니까? 그것은 완전히 Quartz/Spring 영역 밖에있는 것입니까?

당신에게

답변

0

먼저 감사 무엇보다도, 내가 큰 실수를했다. 나는 Quartz와 Spring의 Scheduled Task를 혼동했다. 둘째, AutoWired를 사용하여 빈을 사용하여이를 수행 할 수있었습니다.

기본적으로, 나는 내 "작업"또는 각 작업에 다음이 내 상황에 맞는 인스턴스화 MyCustomDBConnPoolManager

@Service("databaseManager") 
public class MyCustomDBConnPoolManager{ 

의 실제 클래스 코드에 대한

@Autowired 
MyCustomDBConnPoolManager mgr; 

ApplicationContext appContext = 
newFileSystemXmlApplicationContext("applicationContext.xml"); 

MyCustomDBConnPoolManager manager = appContext.getBean("databaseManager"); 
manager.initialize(); 
+0

제목은 "Java Spring의 예약 된 작업을 사용하여 객체 참조를 공유하는 방법"이되어야합니다. 석영 태그는 제거 할 수 있습니다. 그렇다면 할 수 있겠습니까? 할 수 없다면 알려주세요. 나는 대답 할께. –

+0

늦게 답장을해서 죄송합니다.하지만 그랬습니다. 그걸 가져 주셔서 고마워요. – Justin