1.配置文件important.properties
##lock
addConsumeLock.maxLockSize=2
addConsumeLock.getSize=4
##thread
addConsumeJob.threadSize=2
##orderTaskRepository
orderTaskRepository.postTableSuffix=2012
2.配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/util classpath:/org/springframework/beans/factory/xml/spring-util-3.0.xsd
"
default-autowire="byName">
<context:component-scan base-package="com.jd.consume.*" />
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:important.properties</value>
</list>
</property>
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"></property>
</bean>
<bean id="springContextHolder" class="com.jd.consume.web.SpringContextHolder" lazy-init="false" />
<import resource="classpath:spring/spring-config-db-consume.xml" />
<import resource="classpath:spring/spring-config-db-jd2008.xml" />
<import resource="classpath:spring/spring-config-user-rpc.xml" />
<import resource="classpath:spring/spring-config-mail-rpc.xml" />
<import resource="classpath:spring/spring-config-msg-new.xml" />
<import resource="classpath:spring/spring-config-mq.xml" />
</beans>
3.相应代码
package com.jd.consume.domain.lock.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.jd.consume.domain.model.OrderTask;
@Service(value = "addConsumeLock")
public class AddConsumeLock extends DataLockImpl {
@Override
@Value("${addConsumeLock.getSize}")
public void setGetSize(int getSize) {
super.setGetSize(getSize);
}
@Override
@Value("${addConsumeLock.maxLockSize}")
public void setMaxLockSize(int maxLockSize) {
super.setMaxLockSize(maxLockSize);
}
@Override
public boolean lockSingleData(long id) {
return orderTaskRepository.updateCusumeStatus(id, OrderTask.SYN_LOCK, OrderTask.SYN_WAIT) == 1;
}
@Override
public int unLock(long id) {
return orderTaskRepository.updateCusumeStatus(id, OrderTask.SYN_WAIT, OrderTask.SYN_LOCK);
}
@Override
public List<OrderTask> getData() {
List<OrderTask> orderTasks = orderTaskRepository.findOrderTasksByConsumeStatus(OrderTask.SYN_WAIT, getSize, false);
return orderTasks;
}
}
@Repository(value = "orderTaskRepository")
public class OrderTaskRepositorySql implements OrderTaskRepository {
@Resource
private SqlMapClientTemplate consumeTemplate;
@Value(value = "${orderTaskRepository.postTableSuffix}")
private String postTableSuffix;