代码实例-spring组件配置化-使用注解

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;

 

你可能感兴趣的:(spring)