Java 的监听器中使用 Spring 框架中的某些 service

本文介绍了如何在Java的监听器中正确使用Spring框架中的Service。由于监听器不属于Spring管理范围,直接使用@Resource注解会抛出null指针异常。解决方法是实现Spring的ServletContextListener接口,待Spring上下文初始化完成后,通过查找Spring容器获取Service。通过这种方法,可以在监听器中安全地使用Spring Service。
摘要由CSDN通过智能技术生成

为方便有时希望在监听器中使用 Spring 框架中的某些 service,但是因为监听器属于sevlet容器,不属于 Spring 框架的管理范围,所以如果期望监听器中直接使用 @Resource 等注解加载 service 的做法是错误,报 null 指针异常,那如果图简单想直接使用,正确做法是实现 Spring 的 ServletContextListener 接口,在 Spring 上下文初始化事件完成后,再查找 Spring 框架中(上下文)的对应的 service 然后再提供给监听器使用,代码如下:

package com.xxx.yyy.listener;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

import org.springframework.context.ApplicationContext;
import org.springframework.web.context.WebApplicationContext;

import com.xxx.yyy.entity.Member;
import com.xxx.yyy.module.service.MemberService;

/**
 * @author shenzhenNBA
 * @since 2017.04.17
 */

//@Slf4j
public class AppSessionListener implements
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值