• RabbitMQ的广播模式(fanout)在(基于xml配置)项目中使用


    项目结构

     

    添加相关的jar包: pom.xml

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <modelVersion>4.0.0modelVersion>
    6. <groupId>com.zgp.alarmgroupId>
    7. <artifactId>AlarmStatusManageNewartifactId>
    8. <version>1.0-SNAPSHOTversion>
    9. <packaging>warpackaging>
    10. <properties>
    11. <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    12. <maven.compiler.source>1.7maven.compiler.source>
    13. <maven.compiler.target>1.7maven.compiler.target>
    14. <junit.version>4.11junit.version>
    15. <aspectj.version>1.6.8aspectj.version>
    16. <spring.version>5.0.7.RELEASEspring.version>
    17. <servlet.version>3.1.0servlet.version>
    18. <jsp.version>2.3.1jsp.version>
    19. <jstl.version>1.2jstl.version>
    20. <slf4j.version>1.7.12slf4j.version>
    21. <log4j.version>1.2.17log4j.version>
    22. <mysql.version>5.1.6mysql.version>
    23. <mybatis.version>3.4.5mybatis.version>
    24. <mybatis-spring.version>1.3.1mybatis-spring.version>
    25. <pagehelper.version>5.0.3pagehelper.version>
    26. <sqlserver.version>4.0sqlserver.version>
    27. <druid.version>1.1.9druid.version>
    28. <jackson.version>2.9.5jackson.version>
    29. <rabbitmq.version>2.1.2.RELEASErabbitmq.version>
    30. properties>
    31. <dependencies>
    32. <dependency>
    33. <groupId>org.aspectjgroupId>
    34. <artifactId>aspectjweaverartifactId>
    35. <version>${aspectj.version}version>
    36. dependency>
    37. <dependency>
    38. <groupId>org.springframeworkgroupId>
    39. <artifactId>spring-coreartifactId>
    40. <version>${spring.version}version>
    41. dependency>
    42. <dependency>
    43. <groupId>org.springframeworkgroupId>
    44. <artifactId>spring-beansartifactId>
    45. <version>${spring.version}version>
    46. dependency>
    47. <dependency>
    48. <groupId>org.springframeworkgroupId>
    49. <artifactId>spring-txartifactId>
    50. <version>${spring.version}version>
    51. dependency>
    52. <dependency>
    53. <groupId>org.springframeworkgroupId>
    54. <artifactId>spring-contextartifactId>
    55. <version>${spring.version}version>
    56. dependency>
    57. <dependency>
    58. <groupId>org.springframeworkgroupId>
    59. <artifactId>spring-context-supportartifactId>
    60. <version>${spring.version}version>
    61. dependency>
    62. <dependency>
    63. <groupId>org.springframeworkgroupId>
    64. <artifactId>spring-webartifactId>
    65. <version>${spring.version}version>
    66. dependency>
    67. <dependency>
    68. <groupId>org.springframeworkgroupId>
    69. <artifactId>spring-webmvcartifactId>
    70. <version>${spring.version}version>
    71. dependency>
    72. <dependency>
    73. <groupId>org.springframeworkgroupId>
    74. <artifactId>spring-aopartifactId>
    75. <version>${spring.version}version>
    76. dependency>
    77. <dependency>
    78. <groupId>org.springframeworkgroupId>
    79. <artifactId>spring-aspectsartifactId>
    80. <version>${spring.version}version>
    81. dependency>
    82. <dependency>
    83. <groupId>org.springframeworkgroupId>
    84. <artifactId>spring-jdbcartifactId>
    85. <version>${spring.version}version>
    86. dependency>
    87. <dependency>
    88. <groupId>org.springframeworkgroupId>
    89. <artifactId>spring-jmsartifactId>
    90. <version>${spring.version}version>
    91. dependency>
    92. <dependency>
    93. <groupId>org.springframework.datagroupId>
    94. <artifactId>spring-data-redisartifactId>
    95. <version>2.0.0.RELEASEversion>
    96. dependency>
    97. <dependency>
    98. <groupId>redis.clientsgroupId>
    99. <artifactId>jedisartifactId>
    100. <version>2.9.0version>
    101. dependency>
    102. <dependency>
    103. <groupId>javax.servletgroupId>
    104. <artifactId>javax.servlet-apiartifactId>
    105. <version>${servlet.version}version>
    106. <scope>providedscope>
    107. dependency>
    108. <dependency>
    109. <groupId>javax.servlet.jspgroupId>
    110. <artifactId>javax.servlet.jsp-apiartifactId>
    111. <version>${jsp.version}version>
    112. <scope>providedscope>
    113. dependency>
    114. <dependency>
    115. <groupId>javax.servletgroupId>
    116. <artifactId>jstlartifactId>
    117. <version>${jstl.version}version>
    118. dependency>
    119. <dependency>
    120. <groupId>log4jgroupId>
    121. <artifactId>log4jartifactId>
    122. <version>${log4j.version}version>
    123. dependency>
    124. <dependency>
    125. <groupId>org.slf4jgroupId>
    126. <artifactId>slf4j-log4j12artifactId>
    127. <version>${slf4j.version}version>
    128. dependency>
    129. <dependency>
    130. <groupId>org.mybatisgroupId>
    131. <artifactId>mybatisartifactId>
    132. <version>${mybatis.version}version>
    133. dependency>
    134. <dependency>
    135. <groupId>org.mybatisgroupId>
    136. <artifactId>mybatis-springartifactId>
    137. <version>${mybatis-spring.version}version>
    138. dependency>
    139. <dependency>
    140. <groupId>com.github.pagehelpergroupId>
    141. <artifactId>pagehelperartifactId>
    142. <version>${pagehelper.version}version>
    143. dependency>
    144. <dependency>
    145. <groupId>com.microsoft.sqlservergroupId>
    146. <artifactId>sqljdbc4artifactId>
    147. <version>${sqlserver.version}version>
    148. dependency>
    149. <dependency>
    150. <groupId>com.alibabagroupId>
    151. <artifactId>druidartifactId>
    152. <version>${druid.version}version>
    153. dependency>
    154. <dependency>
    155. <groupId>commons-codecgroupId>
    156. <artifactId>commons-codecartifactId>
    157. <version>1.11version>
    158. dependency>
    159. <dependency>
    160. <groupId>commons-langgroupId>
    161. <artifactId>commons-langartifactId>
    162. <version>2.6version>
    163. dependency>
    164. <dependency>
    165. <groupId>commons-beanutilsgroupId>
    166. <artifactId>commons-beanutilsartifactId>
    167. <version>1.9.3version>
    168. dependency>
    169. <dependency>
    170. <groupId>commons-collectionsgroupId>
    171. <artifactId>commons-collectionsartifactId>
    172. <version>3.2.2version>
    173. dependency>
    174. <dependency>
    175. <groupId>commons-logginggroupId>
    176. <artifactId>commons-loggingartifactId>
    177. <version>1.2version>
    178. dependency>
    179. <dependency>
    180. <groupId>commons-fileuploadgroupId>
    181. <artifactId>commons-fileuploadartifactId>
    182. <version>1.3.3version>
    183. dependency>
    184. <dependency>
    185. <groupId>commons-iogroupId>
    186. <artifactId>commons-ioartifactId>
    187. <version>2.6version>
    188. dependency>
    189. <dependency>
    190. <groupId>com.fasterxml.jackson.coregroupId>
    191. <artifactId>jackson-coreartifactId>
    192. <version>${jackson.version}version>
    193. dependency>
    194. <dependency>
    195. <groupId>com.fasterxml.jackson.coregroupId>
    196. <artifactId>jackson-databindartifactId>
    197. <version>${jackson.version}version>
    198. dependency>
    199. <dependency>
    200. <groupId>com.fasterxml.jackson.coregroupId>
    201. <artifactId>jackson-annotationsartifactId>
    202. <version>${jackson.version}version>
    203. dependency>
    204. <dependency>
    205. <groupId>org.quartz-schedulergroupId>
    206. <artifactId>quartzartifactId>
    207. <version>2.3.0version>
    208. dependency>
    209. <dependency>
    210. <groupId>org.apache.httpcomponentsgroupId>
    211. <artifactId>httpcoreartifactId>
    212. <version>4.4.10version>
    213. dependency>
    214. <dependency>
    215. <groupId>org.apache.httpcomponentsgroupId>
    216. <artifactId>httpclientartifactId>
    217. <version>4.5.6version>
    218. dependency>
    219. <dependency>
    220. <groupId>org.apache.poigroupId>
    221. <artifactId>poiartifactId>
    222. <version>4.1.0version>
    223. dependency>
    224. <dependency>
    225. <groupId>org.apache.poigroupId>
    226. <artifactId>poi-ooxmlartifactId>
    227. <version>4.1.0version>
    228. dependency>
    229. <dependency>
    230. <groupId>org.apache.poigroupId>
    231. <artifactId>poi-ooxml-schemasartifactId>
    232. <version>4.1.0version>
    233. dependency>
    234. <dependency>
    235. <groupId>org.apache.poigroupId>
    236. <artifactId>poi-scratchpadartifactId>
    237. <version>4.1.0version>
    238. dependency>
    239. <dependency>
    240. <groupId>org.apache.poigroupId>
    241. <artifactId>ooxml-schemasartifactId>
    242. <version>1.4version>
    243. dependency>
    244. <dependency>
    245. <groupId>org.springframework.amqpgroupId>
    246. <artifactId>spring-rabbitartifactId>
    247. <version>${rabbitmq.version}version>
    248. dependency>
    249. <dependency>
    250. <groupId>com.getui.pushgroupId>
    251. <artifactId>restful-sdkartifactId>
    252. <version>1.0.0.0version>
    253. dependency>
    254. <dependency>
    255. <groupId>junitgroupId>
    256. <artifactId>junitartifactId>
    257. <version>${junit.version}version>
    258. <scope>testscope>
    259. dependency>
    260. dependencies>
    261. <build>
    262. <finalName>AlarmStatusManagefinalName>
    263. <pluginManagement>
    264. <plugins>
    265. <plugin>
    266. <groupId>org.apache.maven.pluginsgroupId>
    267. <artifactId>maven-compiler-pluginartifactId>
    268. <version>2.3.2version>
    269. <configuration>
    270. <source>1.8source>
    271. <target>1.8target>
    272. <encoding>UTF-8encoding>
    273. configuration>
    274. plugin>
    275. <plugin>
    276. <groupId>org.apache.tomcat.mavengroupId>
    277. <artifactId>tomcat7-maven-pluginartifactId>
    278. <version>2.2version>
    279. <configuration>
    280. <port>8080port>
    281. <path>/AlarmStatusManagepath>
    282. <uriEncoding>UTF-8uriEncoding>
    283. configuration>
    284. plugin>
    285. plugins>
    286. pluginManagement>
    287. build>
    288. project>

    配置文件及java类

    1、config.properties、log4j.properties

    config.properties

    1. #RabbitMQ Settings
    2. # rabbit ip
    3. rabbit.server=192.168.0.103
    4. # rabbit 端口
    5. rabbit.port=5672
    6. # virtual-host 默认为 /
    7. rabbit.vhost=/
    8. # rabbit 用户名
    9. rabbit.username=admin
    10. # rabbit 密码
    11. rabbit.password=admin
    12. # 队列名称
    13. rabbit.fanoutQueue=fanoutQueue
    14. # Exchange名称
    15. rabbit.fanoutExchange=fanoutExchange
    16. # jdbc connection
    17. jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
    18. jdbc.url=jdbc:sqlserver://192.168.0.103:1433;DatabaseName=alarm
    19. jdbc.username=sa
    20. jdbc.password=123456

    onfig.properties

    1. log4j.rootLogger=INFO,ERROR,Console
    2. #Console #输出到控制台
    3. log4j.appender.Console = org.apache.log4j.ConsoleAppender
    4. log4j.appender.Console.layout = org.apache.log4j.PatternLayout
    5. log4j.appender.Console.layout.ConversionPattern = [%-5p][%-22d{yyyy/MM/dd HH:mm:ssS}][%l]%n%m%n
    6. log4j.appender.Console.Threshold = DEBUG
    7. log4j.appender.Console.ImmediateFlush = TRUE
    8. log4j.appender.Console.Target = System.out
    9. #输出到文件
    10. log4j.appender.logFile = org.apache.log4j.FileAppender
    11. log4j.appender.logFile.layout = org.apache.log4j.PatternLayout
    12. log4j.appender.logFile.layout.ConversionPattern = [%-5p][%-22d{yyyy/MM/dd HH:mm:ssS}][%l]%n%m%n
    13. log4j.appender.logFile.Threshold = DEBUG
    14. log4j.appender.logFile.ImmediateFlush = TRUE
    15. log4j.appender.logFile.Append = TRUE
    16. log4j.appender.logFile.File = ${catalina.base}/logs/AlarmStatus_INFO.log
    17. log4j.appender.logFile.Encoding= UTF-8
    18. #按DatePattern输出到文件
    19. log4j.appender.ERROR = org.apache.log4j.DailyRollingFileAppender
    20. log4j.appender.ERROR.layout = org.apache.log4j.PatternLayout
    21. log4j.appender.ERROR.layout.ConversionPattern = [%-5p][%-22d{yyyy/MM/dd HH:mm:ssS}][%l]%n%m%n
    22. log4j.appender.ERROR.Threshold = ERROR
    23. log4j.appender.ERROR.ImmediateFlush = TRUE
    24. log4j.appender.ERROR.Append = TRUE
    25. log4j.appender.ERROR.File = ${catalina.base}/logs/AlarmStatus_ERROR.log
    26. log4j.appender.ERROR.DatePattern = '_'yyyy-MM-dd'.log'
    27. #设定文件大小输出到文件
    28. log4j.appender.INFO = org.apache.log4j.RollingFileAppender
    29. log4j.appender.INFO.layout = org.apache.log4j.PatternLayout
    30. log4j.appender.INFO.layout.ConversionPattern = [%-5p][%-22d{yyyy/MM/dd HH:mm:ssS}][%l]%n%m%n
    31. log4j.appender.INFO.Threshold = INFO
    32. log4j.appender.INFO.ImmediateFlush = TRUE
    33. log4j.appender.INFO.Append = TRUE
    34. log4j.appender.INFO.File = ${catalina.base}/logs/AlarmStatus_INFO.log
    35. log4j.appender.INFO.MaxFileSize = 20MB
    36. log4j.appender.INFO.MaxBackupIndex = 10

    2、RabbitMQ配置文件: spring-rabbitmq-server.xml、spring-rabbitmq-client.xml

    spring-rabbitmq-server.xml  服务端

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:rabbit="http://www.springframework.org/schema/rabbit"
    5. xmlns:context="http://www.springframework.org/schema/context"
    6. xsi:schemaLocation="http://www.springframework.org/schema/rabbit
    7. http://www.springframework.org/schema/rabbit/spring-rabbit.xsd
    8. http://www.springframework.org/schema/context
    9. http://www.springframework.org/schema/context/spring-context-4.0.xsd
    10. http://www.springframework.org/schema/beans
    11. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
    12. <rabbit:connection-factory id="connectionFactory"
    13. host="${rabbit.server}"
    14. port="${rabbit.port}"
    15. username="${rabbit.username}"
    16. password="${rabbit.password}"
    17. virtual-host="${rabbit.vhost}"
    18. publisher-confirms="true"
    19. publisher-returns="true"
    20. channel-cache-size="5" />
    21. <rabbit:admin connection-factory="connectionFactory" />
    22. <rabbit:queue name="${rabbit.fanoutQueue}" auto-declare="true" durable="true" />
    23. <rabbit:fanout-exchange name="${rabbit.fanoutExchange}" auto-declare="true" durable="true">
    24. <rabbit:bindings>
    25. <rabbit:binding queue="${rabbit.fanoutQueue}"/>
    26. rabbit:bindings>
    27. rabbit:fanout-exchange>
    28. <rabbit:template id="rabbitTemplate"
    29. connection-factory="connectionFactory" exchange="${rabbit.fanoutExchange}"
    30. />
    31. beans>

    spring-rabbitmq-client.xml  客户端

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:rabbit="http://www.springframework.org/schema/rabbit"
    5. xmlns:context="http://www.springframework.org/schema/context"
    6. xsi:schemaLocation="http://www.springframework.org/schema/rabbit
    7. http://www.springframework.org/schema/rabbit/spring-rabbit.xsd
    8. http://www.springframework.org/schema/context
    9. http://www.springframework.org/schema/context/spring-context-4.0.xsd
    10. http://www.springframework.org/schema/beans
    11. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
    12. <rabbit:connection-factory id="connectionFactory"
    13. host="${rabbit.server}"
    14. port="${rabbit.port}"
    15. username="${rabbit.username}"
    16. password="${rabbit.password}"
    17. virtual-host="${rabbit.vhost}"
    18. publisher-confirms="true"
    19. publisher-returns="true"
    20. channel-cache-size="5" />
    21. <rabbit:admin connection-factory="connectionFactory" />
    22. <bean name="queuehandler" class="com.zgp.alarm.rabbitMq.client.RecvHandler" />
    23. <rabbit:listener-container
    24. connection-factory="connectionFactory">
    25. <rabbit:listener ref="queuehandler" queues="${rabbit.fanoutQueue}" />
    26. rabbit:listener-container>
    27. beans>

     

    3、RabbitMQ消息发送端类(消息发布):StatusSchedule.java (主要是(使用)注入 rabbitTemplate 类发送消息、当然也可以注入将rabbitTemplate 类到后台控制器类或工具类中或配置类中等)

    1. package com.zgp.alarm.schedule;
    2. import com.fasterxml.jackson.databind.ObjectMapper;
    3. import com.zgp.alarm.bean.*;
    4. import com.zgp.alarm.service.IAlarmStatusService;
    5. import com.zgp.alarm.utils.CommonUtils;
    6. import com.zgp.alarm.utils.RandomUtils;
    7. import org.slf4j.Logger;
    8. import org.slf4j.LoggerFactory;
    9. import org.springframework.amqp.rabbit.core.RabbitTemplate;
    10. import org.springframework.beans.factory.annotation.Autowired;
    11. import java.util.List;
    12. public class StatusSchedule {
    13. private static Logger logger = LoggerFactory.getLogger(StatusSchedule.class);
    14. private ObjectMapper mapper = new ObjectMapper();
    15. private RabbitTemplate rabbitTemplate;
    16. @Autowired
    17. private IAlarmStatusService alarmStatusService;
    18. //处理警情接收确认状态
    19. public void processAlarmStauts() {
    20. try{
    21. logger.info("【处理警情接收确认状态】:开始处理......");
    22. List datalist = alarmStatusService.getAlarmStatus(1);
    23. if (datalist != null && datalist.size() > 0){
    24. AlarmStatus updateModel = datalist.get(0);
    25. for(int i = 0;i < datalist.size();i++){
    26. AlarmStatus currentModel = datalist.get(i);
    27. MsgContentStatusResult msgContentResult = new MsgContentStatusResult();
    28. msgContentResult.setUnitName(currentModel.getUnitName());
    29. msgContentResult.setMessageType("1");//消息类型 0:送达 1:确认
    30. //消息内容
    31. AlarmStatusResult alarmStatusResult = new AlarmStatusResult();
    32. alarmStatusResult.setMsgid(RandomUtils.getUUID());//消息ID
    33. alarmStatusResult.setMsgsendtime(CommonUtils.getCurrentDateTime());//发送消息时间
    34. alarmStatusResult.setMsgreceiver("");
    35. alarmStatusResult.setMsgsender("ALARM");//消息发送者(系统)
    36. alarmStatusResult.setMsgtype("DPHZ");//调派回执信息
    37. alarmStatusResult.setMsgcontent(msgContentResult);//消息体
    38. // rabbitTemplate.convertAndSend(alarmStatusResult);
    39. rabbitTemplate.convertAndSend(mapper.writeValueAsString(alarmStatusResult));
    40. //保存发送记录。
    41. AlarmStatusSend statusSend = new AlarmStatusSend(
    42. 1,
    43. updateModel.getId(),
    44. updateModel.getJjdid(),
    45. updateModel.getConfirmTime(),
    46. alarmStatusResult.getMsgid(),
    47. alarmStatusResult.getMsgsendtime(),
    48. alarmStatusResult.getMsgsender(),
    49. alarmStatusResult.getMsgreceiver(),
    50. alarmStatusResult.getMsgtype(),
    51. mapper.writeValueAsString(msgContentResult)
    52. );
    53. Integer saveFlag = alarmStatusService.saveAlarmStatusSend(statusSend);
    54. logger.info("【处理警情接收确认状态】:保存状态发送记录表 saveFlag={} , uploadId={} , msgid={} , msgsendtime = {}"
    55. , saveFlag , statusSend.getUploadId() , statusSend.getMsgid() ,statusSend.getMsgsendtime());
    56. }
    57. //更新记录
    58. Integer updateFlag = alarmStatusService.updateAlarmStatus(updateModel);
    59. logger.info("【处理警情接收确认状态】:更新警情接收确认表 updateFlag={} , 当前记录={}", updateFlag , mapper.writeValueAsString(updateModel));
    60. }else{
    61. logger.info("【处理警情接收确认状态】:本次没有查询到待发转态记录.....");
    62. }
    63. logger.info("【处理警情接收确认状态】:结束处理......");
    64. }catch (Exception e){
    65. e.printStackTrace();
    66. logger.error("【处理警情接收确认状态】:出现异常,异常信息为:{}",e.getMessage());
    67. }
    68. }
    69. public RabbitTemplate getRabbitTemplate() {
    70. return rabbitTemplate;
    71. }
    72. public void setRabbitTemplate(RabbitTemplate rabbitTemplate) {
    73. this.rabbitTemplate = rabbitTemplate;
    74. }
    75. }

    4、ActiveMQ消息接收端(监听)类(订阅): RecvHandler.java
    1. package com.zgp.alarm.rabbitMq.client;
    2. import com.fasterxml.jackson.databind.ObjectMapper;
    3. import com.zgp.alarm.bean.AlarmStatus;
    4. import com.zgp.alarm.bean.AlarmStatusResult;
    5. import com.zgp.alarm.bean.Response;
    6. import org.springframework.amqp.core.Message;
    7. import org.springframework.amqp.core.MessageListener;
    8. public class RecvHandler implements MessageListener {
    9. private static final ObjectMapper mapper = new ObjectMapper();
    10. @Override
    11. public void onMessage(Message message) {
    12. try {
    13. // msg就是rabbitmq传来的消息,需要的同学自己打印看一眼
    14. // 使用jackson解析\
    15. String text = new String(message.getBody());
    16. // String text2 = mapper.readValue(message.getBody() , String.class);
    17. System.out.println("接收服务器消息1:" + text);
    18. AlarmStatusResult response = mapper.readValue(text , AlarmStatusResult.class);
    19. System.out.println("接收服务器消息2:msgid=" + response.getMsgid() + " , message=");
    20. // JsonNode jsonData = MAPPER.readTree(message.getBody());
    21. // System.out.println("我是可爱的小猪,我的id是" + jsonData.get("id").asText() + ",我的名字是" + jsonData.get("name").asText());
    22. } catch (Exception e) {
    23. e.printStackTrace();
    24. }
    25. }
    26. }

    5、spring主配置文件 applicationContext.xml

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:p="http://www.springframework.org/schema/p"
    5. xmlns:aop="http://www.springframework.org/schema/aop"
    6. xmlns:context="http://www.springframework.org/schema/context"
    7. xmlns:cache="http://www.springframework.org/schema/cache"
    8. xmlns:jee="http://www.springframework.org/schema/jee"
    9. xmlns:tx="http://www.springframework.org/schema/tx"
    10. xsi:schemaLocation="
    11. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
    12. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    13. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
    14. http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.0.xsd
    15. http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
    16. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
    17. <context:property-placeholder location="classpath*:config.properties">context:property-placeholder>
    18. <bean id="dataSource"
    19. class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    20. <property name="driverClassName" value="${jdbc.driver}" />
    21. <property name="url" value="${jdbc.url}"/>
    22. <property name="username" value="${jdbc.username}"/>
    23. <property name="password" value="${jdbc.password}"/>
    24. <property name="initialSize" value="1" />
    25. <property name="minIdle" value="1" />
    26. <property name="maxActive" value="20" />
    27. <property name="maxWait" value="60000" />
    28. <property name="timeBetweenEvictionRunsMillis" value="60000" />
    29. <property name="minEvictableIdleTimeMillis" value="300000" />
    30. <property name="validationQuery" value="SELECT 'x'" />
    31. <property name="testWhileIdle" value="true" />
    32. <property name="testOnBorrow" value="false" />
    33. <property name="testOnReturn" value="false" />
    34. <property name="poolPreparedStatements" value="true" />
    35. <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
    36. <property name="filters" value="stat" />
    37. bean>
    38. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    39. <property name="dataSource" ref="dataSource" />
    40. <property name="mapperLocations" value="classpath:/mapper/*.xml">property>
    41. <property name="configLocation" value="classpath:mybatis-config.xml">property>
    42. <property name="plugins">
    43. <array>
    44. <bean class="com.github.pagehelper.PageInterceptor">
    45. <property name="properties">
    46. <value>
    47. helperDialect=sqlserver2012
    48. reasonable=true
    49. value>
    50. property>
    51. bean>
    52. array>
    53. property>
    54. bean>
    55. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    56. <property name="basePackage" value="com.zgp.alarm.dao">property>
    57. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory">property>
    58. bean>
    59. <context:annotation-config>context:annotation-config>
    60. <context:component-scan base-package="com.zgp.alarm.service">
    61. <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    62. context:component-scan>
    63. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    64. <property name="dataSource" ref="dataSource" />
    65. bean>
    66. <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
    67. <context:component-scan base-package="com.zgp.alarm.service.impl" />
    68. <context:component-scan base-package="com.zgp.alarm.dao" />
    69. <import resource="classpath:spring-rabbitmq-server.xml" />
    70. <import resource="classpath:spring-rabbitmq-client.xml" />
    71. beans>

    6、定时任务配置文件:applicationContext-job-faultInfo.xml

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
    5. <bean id="statusSchedule" class="com.zgp.alarm.schedule.StatusSchedule">
    6. <property name="rabbitTemplate" ref="rabbitTemplate" >property>
    7. bean>
    8. <bean id="alarmStautsZzdJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
    9. depends-on="rabbitTemplate">
    10. <property name="targetObject" ref="statusSchedule" />
    11. <property name="targetMethod" value="processAlarmStautsZzd" />
    12. <property name="concurrent" value="false" />
    13. bean>
    14. <bean id="alarmStautsJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    15. <property name="jobDetail" ref="alarmStautsJobDetail" />
    16. <property name="cronExpression" >
    17. <value>0 */1 * * * ?value>
    18. property>
    19. bean>
    20. <bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
    21. <property name="triggers">
    22. <list>
    23. <ref bean="alarmStautsJobTrigger" />
    24. list>
    25. property>
    26. bean>
    27. beans>

    7、mybatis配置文件:mybatis-config.xml

    1. "1.0" encoding="UTF-8" ?>
    2. configuration
    3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    5. <configuration>
    6. <settings>
    7. <setting name="logImpl" value="SLF4J"/>
    8. <setting name="logImpl" value="STDOUT_LOGGING" />
    9. settings>
    10. <typeAliases>
    11. <typeAlias alias="alarmStatus" type="com.zgp.alarm.bean.AlarmStatus">typeAlias>
    12. <typeAlias alias="alarmStatusSend" type="com.zgp.alarm.bean.AlarmStatusSend" >typeAlias>
    13. <typeAlias alias="msgContentUnitsResult" type="com.zgp.alarm.bean.MsgContentUnitsResult">typeAlias>
    14. <typeAlias alias="msgContentCarsResult" type="com.zgp.alarm.bean.MsgContentCarsResult">typeAlias>
    15. typeAliases>
    16. configuration>

  • 相关阅读:
    进销存软件哪个好?
    『需求优化』使用 postMessage 解决 localStorage 跨域问题
    Android jetpack room 数据库的升级
    深入学习Linux中的“文件系统与日志分析”
    Games104现代游戏引擎入门-lecture15游戏引擎的Gameplay玩法系统基础
    SpringBoot + Apache tika 轻松实现各种文档内容解析
    智能服装行业ERP软件帮助您提高工作效率和利润
    文本编辑器vi--常用命令查阅版(记得收藏)
    算法金 | 选择最佳机器学习模型的 10 步指南
    TCP如何实现可靠传输、流量控制、拥塞控制
  • 原文地址:https://blog.csdn.net/zgphacker2010/article/details/127973357