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 }
减少重复学习,在原来掌握的基础上进行提高。质疑驱动,不断对已经掌握的知识进行质疑。
如果能把已经掌握的东西总结成模式,才是真正掌握了。
浙公网安备 33010602011771号