您的位置:首页 > 编程语言 > Java开发

spring集成rabbitMQ配置

2018-01-23 19:14 375 查看
一 所需jar包
<!--spring相关包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<!-- 添加Spring-core包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<!-- 添加spring-context包 -->
<dependency>
<groupId>org.springframework</groupId>
&nb
4000
sp;          <artifactId>spring-context</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<!-- 添加spring-tx包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<!-- 添加spring-jdbc包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<!-- 添加spring-test包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<!-- springmvc json -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
&nb
20000
sp;  <version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.5.1</version>
</dependency>
<!-- spring security -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>3.0.2.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.10</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
<!-- 添加mybatis的核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<!-- 添加mybatis与Spring整合的核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
​
<!-- 添加mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
</dependency>
<!-- rabbitmq -->
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>1.6.6.RELEASE</version>
</dependency>

二 spring-mybatis.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
">
​
<context:property-placeholder location="classpath:jdbc.properties" />
<context:component-scan base-package="com.suninfo" />
<!-- 1. 数据源 : DriverManagerDataSource -->
<!-- 添加配置文件 到spring上下文 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close" lazy-init="false">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
​
<!-- 2. mybatis的SqlSession的工厂: SqlSessionFactoryBean dataSource:引用数据源 MyBatis定义数据源,同意加载配置 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="mapperLocations" value="classpath*:mapper/*.xml" />
<!-- 分頁插件 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageHelper">
<!-- 这里的几个配置主要演示如何使用,如果不理解,一定要去掉下面的配置 -->
<property name="properties">
<value>
dialect=mysql
<!-- 该参数默认为false -->
<!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
<!-- 和startPage中的pageNum效果一样-->
offsetAsPageNum=true
<!-- 该参数默认为false -->
<!-- 设置为true时,使用RowBounds分页会进行count查询 -->
rowBoundsWithCount=true
<!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
<!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->
pageSizeZero=true
<!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
<!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
<!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
reasonable=false
<!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->
<!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 -->
<!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值 -->
<!-- 不理解该含义的前提下,不要随便复制该配置 -->
params=count=countSql
<!-- 支持通过Mapper接口参数来传递分页参数 -->
supportMethodsArguments=true
<!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->
returnPageInfo=check
</value>
</property>
</bean>
</array>
</property>
</bean>
​
<!-- 3. mybatis自动扫描加载Sql映射文件/接口 : MapperScannerConfigurer sqlSessionFactory
basePackage:指定sql映射文件/接口所在的包(自动扫描) -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.suninfo.dao"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
​
<!-- 4. 事务管理 : DataSourceTransactionManager dataSource:引用上面定义的数据源 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
​
<!-- 5. 使用声明式事务 transaction-manager:引用上面定义的事务管理器 -->
<tx:annotation-driven transaction-manager="transactionManager" />
​
<!-- 事物的具体内容 -->
<tx:advice id="transactionAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="append*" propagation="REQUIRED" />
<tx:method name="insert*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="batchSave*" propagation="REQUIRED" />
<tx:method name="batchDel*" propagation="REQUIRED" />
<tx:method name="refreshUnrecovery*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="modify*" propagation="REQUIRED" />
<tx:method name="edit*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="repair" propagation="REQUIRED" />
<tx:method name="delAndRepair" propagation="REQUIRED" />
<tx:method name="get*" propagation="SUPPORTS" />
<tx:method name="find*" propagation="SUPPORTS" />
<tx:method name="load*" propagation="SUPPORTS" />
<tx:method name="search*" propagation="SUPPORTS" />
<tx:method name="datagrid*" propagation="SUPPORTS" />
​
<tx:method name="*" propagation="SUPPORTS" />
</tx:attributes>
</tx:advice>
​
<aop:aspectj-autoproxy />
<bean id="operationLogAspect" class="com.suninfo.aop.OperationLogAspect" />
​
<!-- 定义一个切面,在定义的切面上加入事物 -->
<!-- <aop:config>
<aop:pointcut id="transactionPointcut"
expression="execution(public * com.bishe.serviceimpl.*Impl.*(..))" />
<aop:advisor pointcut-ref="transactionPointcut"
advice-ref="transactionAdvice" />
</aop:config> -->
</beans>
​

三 jdbc.properties配置
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.username=siem_admin
jdbc.password=sIem_43@SH&%
jdbc.url=jdbc:mysql://localhost:13507/siem_commondb?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

四 spring-mvc.xml 配置
<?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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
​
<!-- 注解扫描包 -->
<context:component-scan base-package="com.suninfo.controller" />
​
<!--
配置静态资源,直接映射到对应的文件夹,不被DispatcherServlet处理,3.04新增功能,需要重新设置spring-mvc-3.0.xsd
-->
<mvc:resources  mapping="/static/**" location="/static/" cache-period="3153600"/>
<mvc:resources  mapping="/*.html"    location="/"  cache-period="3153600"/>
<mvc:resources  mapping="/birt/**"    location="/birt/"  cache-period="3153600"/>
<mvc:resources  mapping="/birt/html/*.html"    location="/birt/html/"  cache-period="3153600"/>
<!-- 上传文件 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8"/>
<!-- 最大内存大小 -->
<property name="maxInMemorySize" value="102400000"/>
<!-- 最大文件大小,-1为不限制大小 -->
<property name="maxUploadSize" value="-1"/>
</bean>
​
<!-- 定义跳转的文件的前后缀 ,视图模式配置-->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!--字节数组 -->
<bean id="byteArrayConverter" class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<bean id="stringConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 输出对象转JSON支持 -->
<bean id="jsonConverter"  class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
​
<!-- 定义注解驱动Controller方法处理适配器 ,注:该适配器必须声明在<mvc:annotation-driven />之前,否则不能正常处理参数类型的转换 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="byteArrayConverter"/>
<ref bean="stringConverter"/>
<ref bean="jsonConverter" />
</list>
</property>
</bean>
<!-- SocketIo 配置,不涉及SocketIo则注掉 -->
<bean id="initSocketIo" class="com.suninfo.util.socketio.InitSocketIo" init-method="init"/>
<!-- 开启注解 -->
<mvc:annotation-driven />

</beans>
​

五 消息接收端consumer(spring-rabbitmq-consumer.xml)配置
<?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:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd"> ​
<!--配置connection-factory,指定连接rabbit server参数 -->
<rabbit:connection-factory id="connectionFactory"
username="${rabbitmq.username}"
password="${rabbitmq.password}"
host="${rabbitmq.host}"
port="${rabbitmq.port}" />
​
<!--通过指定下面的admin信息,当前producer中的exchange和queue会在rabbitmq服务器上自动生成 -->
<rabbit:queue name="routeKey_message" durable="true" auto-delete="false"  exclusive="false" />
<rabbit:queue name="routeKey_email" durable="true" auto-delete="false"  exclusive="false" />
<rabbit:queue name="routeKey_wechat" durable="true" auto-delete="false"  exclusive="false" />
<rabbit:queue name="routeKey_socketio" durable="true" auto-delete="false"  exclusive="false" />
<rabbit:queue name="routeKey_loginfo" durable="true" auto-delete="false"  exclusive="false" />
<rabbit:queue name="routeKey_analysisLogInfo" durable="true" auto-delete="false"  exclusive="false" />
​
<!-- 消息接收者 -->
<bean id="messageMqConsumer" class="com.suninfo.rabbitmq.message.MessageMqConsumer"></bean>
<bean id="emailMqConsumer" class="com.suninfo.rabbitmq.email.EmailMqConsumer"></bean>
<bean id="wechatMqConsumer" class="com.suninfo.rabbitmq.wechat.WechatMqConsumer"></bean>
<bean id="socketioMqConsumer" class="com.suninfo.rabbitmq.socketio.SocketioMqConsumer"></bean>
<bean id="loginfoMqConsumer" class="com.suninfo.rabbitmq.loginfo.LoginfoMqConsumer"></bean>
<bean id="analysisLogInfoMqConsumer" class="com.suninfo.rabbitmq.analysisloginfo.AnalysisLogInfoMqConsumer"></bean>
​
<!-- queue litener  观察 监听模式 当有消息到达时会通知监听在对应的队列上的监听对象-->
<rabbit:listener-container connection-factory="connectionFactory" concurrency="3" prefetch="5" acknowledge="none">
<rabbit:listener queues="routeKey_message" ref="messageMqConsumer"/>
<rabbit:listener queues="routeKey_email" ref="emailMqConsumer"/>
<rabbit:listener queues="routeKey_wechat" ref="wechatMqConsumer"/>
<rabbit:listener queues="routeKey_socketio" ref="socketioMqConsumer"/>
</rabbit:listener-container>
​
<rabbit:listener-container connection-factory="connectionFactory" concurrency="20" prefetch="5" acknowledge="none">
<rabbit:listener queues="routeKey_loginfo" ref="loginfoMqConsumer"/>
<rabbit:listener queues="routeKey_analysisLogInfo" ref="analysisLogInfoMqConsumer"/>
</rabbit:listener-container>
</beans>

六 消息发送端producer(spring-rabbitmq-producer.xml)配置
<?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:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd"> ​
<!--配置connection-factory,指定连接rabbit server参数 -->
<rabbit:connection-factory id="connectionFactory"
username="${rabbitmq.username}"
password="${rabbitmq.password}"
host="${rabbitmq.host}"
port="${rabbitmq.port}" />
<!-- spring amqp默认的是jackson 的一个插件,目的将生产者生产的数据转换为json存入消息队列 -->
<bean id="jsonMessageConverter"  class="org.springframework.amqp.support.converter.Jackson2JsonMessageConverter"></bean>
​
<!--定义rabbit template用于数据的接收和发送 -->
<rabbit:template id="amqpTemplate"
connection-factory="connectionFactory"
exchange="amq.direct"
message-converter="jsonMessageConverter"
/>
​
<!--通过指定下面的admin信息,当前producer中的exchange和queue会在rabbitmq服务器上自动生成 -->
<rabbit:admin connection-factory="connectionFactory" />
​
<!--定义queue队列 -->
<!--
durable:是否持久化
exclusive: 仅创建者可以使用的私有队列,断开后自动删除
auto_delete: 当所有消费客户端连接断开后,是否自动删除队列
-->
<rabbit:queue name="routeKey_message" durable="true" auto-delete="false" exclusive="false" />
<rabbit:queue name="routeKey_email" durable="true" auto-delete="false" exclusive="false" />
<rabbit:queue name="routeKey_wechat" durable="true" auto-delete="false" exclusive="false" />
<rabbit:queue name="routeKey_socketio" durable="true" auto-delete="false" exclusive="false" />
<rabbit:queue name="routeKey_analysisLogInfo" durable="true" auto-delete="false" exclusive="false" />
​
<!-- 定义direct exchange,绑定routeKey_one -->
<!--
rabbit:direct-exchange:定义exchange模式为direct,意思就是消息与一个特定的路由键完全匹配,才会转发。
rabbit:binding:设置消息queue匹配的key
-->
<rabbit:direct-exchange name="amq.direct"  durable="true" auto-delete="false">
<rabbit:bindings>
<rabbit:binding queue="routeKey_message" key="routeKey_message"></rabbit:binding>
<rabbit:binding queue="routeKey_email" key="routeKey_email"></rabbit:binding>
<rabbit:binding queue="routeKey_wechat" key="routeKey_wechat"></rabbit:binding>
<rabbit:binding queue="routeKey_socketio" key="routeKey_socketio"></rabbit:binding>
<rabbit:binding queue="routeKey_analysisLogInfo" key="routeKey_analysisLogInfo"></rabbit:binding>
</rabbit:bindings>
</rabbit:direct-exchange>
​
<!-- 消息生产者 -->
<bean id="messageMqProducer" class="com.suninfo.rabbitmq.message.MessageMqProducer">
<property name="amqpTemplate" ref="amqpTemplate"></property>
<property name="routekey" value="routeKey_message" ></property>
</bean>
<bean id="emailMqProducer" class="com.suninfo.rabbitmq.email.EmailMqProducer">
<property name="amqpTemplate" ref="amqpTemplate"></property>
<property name="routekey" value="routeKey_email" ></property>
</bean>
<bean id="wechatMqProducer" class="com.suninfo.rabbitmq.wechat.WechatMqProducer">
<property name="amqpTemplate" ref="amqpTemplate"></property>
<property name="routekey" value="routeKey_wechat" ></property>
</bean>
<bean id="socketioMqProducer" class="com.suninfo.rabbitmq.socketio.SocketioMqProducer">
<property name="amqpTemplate" ref="amqpTemplate"></property>
<property name="routekey" value="routeKey_socketio" ></property>
</bean>
<bean id="analysisLogInfoMqProducer" class="com.suninfo.rabbitmq.analysisloginfo.AnalysisLogInfoMqProducer">
<property name="amqpTemplate" ref="amqpTemplate"></property>
<property name="routekey" value="routeKey_analysisLogInfo" ></property>
</bean>
​
</beans>

七 rabbitmq.properties配置
rabbitmq.host=localhost
rabbitmq.port=5672
rabbitmq.username=guest
#rabbitmq.password=At@6Tf-6Cb*6
rabbitmq.password=guest

八 spring整合consumer和producer(spring-rabbitmq-context.xml)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"
default-lazy-init="true">

<!-- 引入属性文件 -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
<value>classpath:rabbitmq.properties</value>
</list>
</property>
</bean>
<import resource="spring-mybatis.xml" />
<!--<import resource="spring-memcached.xml" />-->
<import resource="spring-rabbitmq-consumer.xml" />
<import resource="spring-rabbitmq-producer.xml" />
​
</beans>

九 producer生产类示例
package com.suninfo.rabbitmq.message;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
​
@Service("messageMqProducer")
public class MessageMqProducer {
private AmqpTemplate amqpTemplate;
private String routekey;
public void sendMessage(final List<ShortMessage> messages){
amqpTemplate.convertAndSend(routekey,messages);
}
public AmqpTemplate getAmqpTemplate() { return amqpTemplate; }
public void setAmqpTemplate( AmqpTemplate amqpTemplate ) {this.amqpTemplate = amqpTemplate;}
public String getRoutekey() {return routekey; }
public void setRoutekey( String routekey ) {this.routekey = routekey;}
}
​
public class ShortMessage {
private String  accounts;//多个帐号用 | 分隔
private String content;//内容
private LogInfo logInfo;//日志源
private String userName;//接受者uuid
public Integer alarmType;
public String eventUuid;
public String strategyUuid;
//get set方法
}

十 consumer消费类示例
package com.suninfo.rabbitmq.message;
import org.springframework.amqp.core.MessageListener;
public class MessageMqConsumer  implements MessageListener {
private static Logger log = LoggerFactory.getLogger( MessageMqConsumer.class );
private static SysConfigService sysConfigService;;
/**
* 接收内容,发送短信
* @param message
*/
@Override
public void onMessage(Message message) {
byte[] body = message.getBody();
String json = new String ( body );
log.debug("接收到消息:"+json);
//获得短信对象
List<ShortMessage> shortMessages = null;
try{
shortMessages = JsonUtil.jsonToList(json, ShortMessage.class);
//处理逻辑
}
}
}

十一 通过配置文件启动
public class ElasticsearchTaskMain {
private static final Logger log = LoggerFactory.getLogger( ElasticsearchTaskMain.class );
private static LogSourceService logSourceService;
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext( "classpath:spring-context-log.xml" );
//初始化,封装消费点需要的bean
logSourceService = (LogSourceService)context.getBean( "logSourceService" );
}
}


原创不易
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息