如何通过监听器初始化系统?

通常我们在设计后台管理系统的时候,会涉及到一个问题:就是如何初始化系统让其在初始化的时候,就自带一个管理员

通常的思路是使用监听器:
也就是ServletContextListener,但是ServletContextListener有个问题,就是它仅仅是WEB容器的监听器,它仅仅监听的是WEB容器,而不是我们所需的Spring容器

附:容器加载顺序

在这里插入图片描述

为什么需要Spring容器?
如果没有Spring容器,那么根本就无法调用Service层的组件

因此后台管理系统的初始化,ServletContextListener不能使用,必须使用Spring自己的监听器:ApplicationListener

那么我们可以自定义一个监听器

/**
 * @所属项目 :   parent
 * @类的描述 :   初始化后台监听器
 * @类的作者 :   John
 * @创建时间 :   2018年11月25日 10时32分
 */
@Component
public class InitSystemAdminListener implements ApplicationListener<ContextRefreshedEvent> {

    /**
     * 监听容器的启动事件
     * @param contextRefreshedEvent
     */
    @Autowired
    private ILoginInfoService loginInfoService;

    @Override
    public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {

        loginInfoService.initAdmin();

    }
}

1.我们在这里可以看到继承的Spring容器的监听器是:

ApplicationListener,并且监听的事件是:ContextRefreshedEvent

-ContextRefreshedEvent指的是容器重刷新事件,可以理解为Spring容器的启动

2.注意如果要监听器生效,同样要将其纳入Spring管理,也就是前面必须要添加@Component注解

那么这样的话,就可以调用 **loginInfoService.initAdmin();**来做系统的初始化了

至于这个方法,很简单,就是做一个简单的查询,数据库有管理员就算了,没有就添加;

博文引用的资料:

java----监听器的作用

https://www.cnblogs.com/w-wfy/p/6425357.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值