#####spring异步线程池
如报表,因为业务量大,比较耗时
- 实现AsyncConfigurer接口,使用@EnableAsync开启异步可用
- 在使用时,添加注解@Async即可
异步消息JMS
- 点对点模式
- 发布订阅模式,为了更好的扩展,更多系统使用监控得到消息,此项用的多。
ActiveMQ
- springboot配置
spring.JMS.
spring.activemq. - 发送消息
使用jmsTemplate.convertwAndSend发送消息,默认转换规则SimpleMessageConverter - 接收消息
注解@JmsListener接收消息 - 发送或接收对象,对象需要序列化,并且在配置文件中加入到信任列表中,spring.Activemq.packages.trusted=对象所在包名,java.lang,因为对象中的id属性为Long,信任所有包为trust-all
- RabbitMQ
Amqp的rabbitmq
springboot配置spring.rabbitmq. - ConfirmCallback接口的Confirm方法为回调方法
rabbitTemplate进行操作,
rabbitTemplate.setConfirmCallback设置回调
rabbitTemplate.ConvertAndSend发送消息
@RabbitListener接收消息
定时任务
原因:统计,耗时操作,月末,年末等统计报表
@EnableScheduling启用
@Scheduled配置如何定时
- cron表达式
秒 分 时 天 月 星期 年,最后一项年可以不配置,通配符如下:
任意值 *
? 不指定值,用于处理天和星期配置的冲突
_ 指定时间区间
/ 指定时间间隔执行
,列举多个项
第几个#
L 最后的
websocket
websocket协议,浏览器与服务器全双工通信
@ServerEndpoint定义端点服务器类
@onOpen 连接建立成功
@onClose 连接关闭
@onMessage 接收消息
@OnError 错误时调用
- 通过子协议STOMP兼容websocket不支持的浏览器
@EnableWebSockitMessageBroker注解启动websockit的子协议stomp,通过实现WebSockitMessageBrokerConfigurer的两个方法,springboot使用SimpMessagingTemplate进行消息转发,
@MessageMapping定义websocket请求路径,并使用模板进行转发。如果使用了springsecurity可以使用Principal获取当前用户信息
@SendTo定义结果发送到特定路径
客户端可使用Sockjs进行连接