当前位置: 首页 > news >正文

网站开发需要用到的技术论文中小企业的网站建设

网站开发需要用到的技术,论文中小企业的网站建设,响应式网站建站工具,哪种公司一般会做网站📝个人主页:五敷有你 🔥系列专栏:Spring⛺️稳中求进,晒太阳 Spring事件 简洁 Spring Event(Application Event)就是一个观察者模式,一个bean处理完任务后希望通知其他Bean的…

       📝个人主页:五敷有你      
 🔥系列专栏:Spring
⛺️稳中求进,晒太阳

Spring事件

简洁

Spring Event(Application Event)就是一个观察者模式,一个bean处理完任务后希望通知其他Bean的行为。

Spring的事件(Application Event)为BeanBean之间的消息同步提供了支持。当一个Bean处理完成一个任务之后,希望另外一个Bean知道并能做相应的处理,这时我们就需要让另外一个Bean监听当前Bean所发生的事件

Spring的事件需要遵循如下流程:

  • 自定义事件,继承ApplicationEvent
  • 定义事件监听器,实现ApplicationListener
  • 使用容器发布事件

演示

自定义事件
@Slf4j
public class WebSocketConnectEvent extends ApplicationContextEvent {public WebSocketConnectEvent(ApplicationContext source) {super(source);log.info(" WebSocketConnectEvent 事件产生!!!");}
}
事件监听器

监听器有三种实现方式:实现ApplicationListener接口,使用@EventListener注解,使用@TransactionalEventListener注解。

1.实现ApplicationListener接口

新建一个类实现 ApplicationListener 接口,并且重写 onApplicationEvent 方法注入到Spring容器中,交给Spring管理如下代码新建了一个发送短信监听器,收到事件后执行业务操作

package com.aqiuo.websocket.listen;import com.aqiuo.websocket.WebSocket;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationListener;
@Slf4j
public class WebSocketConnectListen implements ApplicationListener<WebSocketConnectEvent> {@Overridepublic void onApplicationEvent(WebSocketConnectEvent event) {WebSocket webSocket = event.webSocket;log.info(webSocket.toString());}
}
2. 使用@EventListener注解

使用@EventListener标注处理事件的方法,此时Spring创建一个ApplicationListener Bean对象,使用给定的方法处理事件。参数可以指定的事件,这个用到了@AliasFor的能力,放到了@EventListener身上。

注意:一般建议都需要指定此值,不然范围太大了


@Slf4j
public class StudentConnectListen {@EventListener(value = {StudentConnectEvent.class})public void onApplicationEvent(StudentConnectEvent event) {WebSocket webSocket = event.getWebSocket();System.out.println(webSocket.toString());}
}
3. 使用TransactionEventListener注解

使用@TransactionalEventListener注解来定义一个监听器

@EventListener 和 @TransactionalEventListener 都是 Spring Framework 提供的注解,用于处理应用程序事件。它们的主要区别在于它们处理事件的时间和事务的关联性。

@EventListener:

        这个注解可以应用于任何方法,使得该方法成为一个事件监听器。当一个事件被发布时,所有标记为 @EventListener 的方法都会被调用,无论当前是否存在一个活动的事务。这意味着 @EventListener 注解的方法可能在事务提交之前或之后被调用。
@TransactionalEventListener:

        这个注解是 @EventListener 的一个特化版本,它允许更精细地控制事件监听器在事务处理过程中的执行时机。@TransactionalEventListener 默认在当前事务提交后才处理事件(TransactionPhase.AFTER_COMMIT),这可以确保事件处理器只在事务成功提交后才被调用。也可以通过 phase 属性来改变事件处理的时机,例如在事务开始前、事务提交前、事务提交后或者事务回滚
注意:此注解需要spring-tx的依赖;

使用实例:

@Component
public class DemoListener {@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT,value = { DemoEvent.class })public void messageListener(DemoEvent event) {String msg = event.getMsg();System.out.println("DemoListener获取到了监听消息:"+msg);}
}

事件发布类

package com.aqiuo.websocket.listen;import com.aqiuo.websocket.WebSocket;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.event.ApplicationContextEvent;
import org.springframework.stereotype.Component;/*** 事件发布者*/
@Component
public class EventPublisher {@Autowiredprivate ApplicationContext applicationContext;public void publish(ApplicationContextEvent event){applicationContext.publishEvent(event);}}
配置类

配置类中没有具体的代码逻辑注意作用是为了能扫描到相应的使用注解的类

package com.aqiuo.config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;@Configuration
@ComponentScan(value = "com.aqiuo.websocket.listen")
public class EventConfig {
}

启动测试

有点问题

出现了applicationContext无法注入的问题。。。

http://www.yayakq.cn/news/153456/

相关文章:

  • 珠海h5建站专门做当归的网站
  • 渭南做网站的公司电话做网站是不是要有数据库
  • 廊坊北京网站建设免费建站哪家有
  • 信阳做网站的公司江门网站制作费用
  • html5 网站开发语言如何比较网站
  • 皮革材料做网站怎样制作网站
  • 像wordpress一样的网站wordpress手机后台
  • 石狮市网站建设网络软文营销是什么意思
  • 海南百度推广公司电话夫唯seo系统培训
  • 互联网大赛建设网站策划书亚马逊做外贸英文网站
  • 商城网站开发的目的和意义网站推广技巧和方法
  • 网站空间计算wordpress中文注册
  • 江西建设安全网站怎样做网站快手刷粉
  • 怎样进网站ftp100个科技小制作
  • 三亚兼职网站提供常州微信网站建设
  • 空间站做网站有什么网络运维工程师简历怎么写
  • 做旅游网站平台ppt新闻静态网站模板下载
  • 网站建设教程 冰美人视频深圳人口1756万
  • 新丝路网站建设短视频app推荐
  • 免费的作文网站比优化更好的词是
  • 网站开发的流程是怎样的开发做网站公司
  • 深圳网站建设定制开发超凡科技手机网站二级域名
  • iis网站在点默认文档的时候报错.个人网站我的大学我做主页面
  • 常州网站关键词推广网站建设比赛方案
  • 门户网站的建设费用提供网站建设空间
  • wap网站制作工具网站规划的主要任务是什么
  • 做网站一年大概的盈利北京市建设工程审核网站
  • 照明网站设计外贸怎么做
  • 在线视频网站怎么做郑州seo优化培训
  • 网站开发需要哪些证书中国it企业排行榜