线程同步消费事件-spring

1.线程消费事件

新建事件监听类(交给spring来管理-@Component 注入)


2.事件处理总类 NmaeEventController(名称可自定义)实现ApplicationListener 接口



@Component类注入NmaeEventController交spring管理,此类用于注册在java启服时候依赖spring的类.register()方法

3.配置文件 在applicationContext.xml中配置 自动扫描LogEventController类

如果不配置,spring则找不见对应的注册事件.ApplicationContextHolderGm.getBean("xxxDao");获取为null

<context:component-scan base-package="com.game.admin">
<context:include-filter type="annotation"
expression="com.game.admin.eventbus.LogEventController" />

</context:component-scan>

4.写具体的操作参数的封装类,例如日志记录事件,例如(消费购买物品操作事件),此类封装一些需要的参数.(写个静态的实例(需要的参数))


 static UserEvent valueOf(SessionInfo info,String  content,int isSucc)该类是该消费事件的参数封装类,用于实例化封装参数

5.启服的时候注册对应的NmaeEventController事件总处理类

public abstract class AbstractEventHandler {
@Resource
protected NmaeEventController logEventController;
//启服的时候注册
@PostConstruct
void initialize(){
logEventController.register(this);
}

}

@PostConstruct下initialize初始化注册信息

6.AbstractEventHandler 的子类LogEvents事件 @Subscribe操作具体的购物和业务逻辑

public class LogEvents extends AbstractEventHandler {

@Autowired
private IOperateLogService LogService;

/***
* 每个的操作触发的时候 记录日志
*/
@Subscribe
public void WriteLog(UserEvent event){

system.out.println("event是封装的参数类");

}

}

7.具体的使用

ApplicationContextHolderGm.getBean(NameEventController.class).post(UserEvent.valueOf(getSessionInfo(), log,1));

当有客户需要消费的时候.post你写好的具体事件.用@Subscribe类方法即可轻松实现java后台消费功能,使你的代码性能大大提升.




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值