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

spring的核心思想就是程序整体松耦合的组件化,每个组件可以通过修改配置来改变参数,适合做配置参数的是指在程序运行中不随意改变的参数,改变后一般需要重启程序(如线程数)。一般通过xml,在使用注解时,想要通过修改配置来改变参数,就需要利用配置文件。

(1)spring配置

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <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"
 3     xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util"
 4     xsi:schemaLocation="   
 5    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
 6    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd   
 7    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd   
 8  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd    
 9 http://www.springframework.org/schema/util classpath:/org/springframework/beans/factory/xml/spring-util-3.0.xsd
10  "
11     default-autowire="byName">
12     <context:component-scan base-package="com.jd.consume.*" />
13     <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
14         <property name="locations">
15             <list>
16                 <value>classpath:important.properties</value>
17                 <value>classpath:important2.properties</value>
18             </list>
19         </property>
20         <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"></property>
21     </bean>
22     <bean id="springContextHolder" class="com.jd.consume.web.SpringContextHolder" lazy-init="false" />
23     <import resource="classpath:spring/spring-config-db-consume.xml" />
24     <import resource="classpath:spring/spring-config-db-jd2008.xml" />
25     <import resource="classpath:spring/spring-config-user-rpc.xml" />
26     <import resource="classpath:spring/spring-config-mail-rpc.xml" />
27     <import resource="classpath:spring/spring-config-msg-new.xml" />
28     <import resource="classpath:spring/spring-config-db-mysql.xml" />
29     <import resource="classpath:spring/spring-config-db-mysql1.xml" />
30     <import resource="classpath:spring/spring-config-db-mysql2.xml" />
31     <import resource="classpath:spring/spring-config-db-mysql3.xml" />
32     <import resource="classpath:spring/spring-config-db-mysql4.xml" />
33 
34 </beans>

2)属性配置

     important.properties

     ##lock

addConsumeLock.maxLockSize=2

addConsumeLock.getSize=4

pastConsumeLock.maxLockSize=2

pastConsumeLock.getSize=4

gradeLock.maxLockSize=2

gradeLock.getSize=4

##thread

addConsumeJob.threadSize=2

pastConsumeJob.threadSize=1

gradeJob.threadSize=2

(3)代码中

 1 package com.jd.consume.service.lock.impl;
 2 
 3 import java.util.List;
 4 
 5 import org.springframework.beans.factory.annotation.Value;
 6 import org.springframework.stereotype.Service;
 7 
 8 import com.jd.consume.domain.OrderTask;
 9 
10 /**
11  * 加消费额度锁定
12  * @author guanpanpan
13  *
14  */
15 @Service(value = "addConsumeLock")
16 public class AddConsumeLock extends DataLockImpl {
17 
18     @Override
19     @Value("${addConsumeLock.getSize}")
20     public void setGetSize(int getSize) {
21         super.setGetSize(getSize);
22     }
23 
24     @Override
25     @Value("${addConsumeLock.maxLockSize}")
26     public void setMaxLockSize(int maxLockSize) {
27         super.setMaxLockSize(maxLockSize);
28     }
29 
30     @Override
31     public boolean lockSingleData(int dbNo,long id) {
32         return orderTaskDaoMysql.updateStatus(dbNo,id, OrderTask.SYN_LOCK, OrderTask.SYN_WAIT) == 1;
33     }
34 
35     @Override
36     public int unLock(int dbNo,long id) {
37         return orderTaskDaoMysql.updateStatus(dbNo,id, OrderTask.SYN_WAIT, OrderTask.SYN_LOCK);
38     }
39 
40     @Override
41     public List<OrderTask> getData(int dbNo) {
42         List<OrderTask> orderTasks = orderTaskDaoMysql.findOrderTasksByConsumeStatus(dbNo,OrderTask.SYN_WAIT, getSize, false);
43         return orderTasks;
44     }
45 
46     @Override
47     public int unLockAll(int dbNo) {
48         return orderTaskDaoMysql.updateStatus(dbNo,OrderTask.SYN_WAIT, OrderTask.SYN_LOCK);
49     }
50 }

 

posted on 2013-11-08 16:46  关攀攀  阅读(425)  评论(0)    收藏  举报

导航