<bean id="keyPool" class="com.oracleclub.web.support.KeyPool" init-method="init" lazy-init="true">
<property name="keySize" value="1000"/>
</bean>
<!-- jobClass 설정 -->
<bean id="keyGeneratorJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.oracleclub.web.job.KeyGeneratorJob"/>
<property name="jobDataAsMap">
<map>
<entry key="keyPool">
<ref bean="keyPool"/>
</entry>
</map>
</property>
</bean>
<!-- jobTrigger 설정 -->
<bean id="keyGeneratorTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="keyGeneratorJob" />
<!-- 1000 == 1 second, 60minuts=3600000, 1day=86400000-->
<property name="startDelay" value="3600000" />
<property name="repeatInterval" value="3600000" />
</bean>
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
<property name="triggers">
<list>
<ref bean="keyGeneratorTrigger"/>
</list>
</property>
</bean>
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
/**
* Key Generator Job
*
* @author : oramaster
*
*/
public class KeyGeneratorJob extends QuartzJobBean {
private KeyPool keyPool;
private final static Log LOG = LogFactory.getLog(KeyGeneratorJob.class);
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
List<KeyGenerator> newList = new ArrayList<KeyGenerator>();
KeyGenerator keyGenerator;
try {
//배치때 실행되는 비지니스 로직
for (int i = 0; i < keyPool.getKeySize(); i++) {
keyGenerator = new KeyGenerator();
byte[] originKey = XORMask.getGeneratorKey();
keyGenerator.setBlowFishKey(BlowFish.encrypt(originKey, BlowFish.getKey()));
keyGenerator.setOriginKey(originKey);
newList.add(keyGenerator);
}
keyPool.setKeyList(newList);
} catch (Exception e) {
LOG.error(e.getMessage());
throw new JobExecutionException(e.getMessage());
}
}
public void setKeyPool(KeyPool keyPool) {
this.keyPool = keyPool;
}
}