专栏首页爱撒谎的男孩监听器获取spring配置文件创建的对象

监听器获取spring配置文件创建的对象

文章目录

  1. 1. 监听器获取spring配置文件创建的对象
    1. 1.1. 前提
    2. 1.2. 准备
    3. 1.3. 实现
    4. 1.4. 参考文章

监听器获取spring配置文件创建的对象

前提

  • 我们在使用监听器的时候,会用到spring配置文件创建的对象,那么我们不能像其他的类中直接使用@Resource或者@AutoWired自动注入对象,那么我们如何获取对象呢
  • 比如我们在缓存数据的时候,就是在容器启动的时候读取数据库中的信息缓存在ServletContext中,那么我们肯定需要调用Service中的对象来获取数据库中的信息,此时我们就需要获取spring配置文件配置的业务层的对象

准备

  • 前提是你的spring的配置文件是使用的spring监听器ContextLoaderListener加载的,而不是一起在springMVC的前端控制器中加载,比如你在web.xml配置如下
<!--配置spring配置问文件的路径-->
<context-param>
		<param-name>contextConfigLocation</param-name>
    	<!--使用通配符指定多个配置文件,比如 spring-service.xml,spring-dao.xml-->
		<param-value>classpath:spring-*.xml</param-value>
	</context-param>
	<!--spring监听器-->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

实现

  • 我们先创建一个ServletContext上下文监听器,在其中使用WebApplicationContextUtils类获取WebApplicationContext对象,之后即可获取其中spring创建的bean
public class InitCompontServletContextListener implements ServletContextListener, ServletContextAttributeListener {
	
	private BlogIndex blogIndex;    //spring配置创建的对象
	private IBlogService blogService;   //spring配置创建的对象

	/**
     * web容器初始化的时候就会调用
     */
    public void contextInitialized(ServletContextEvent contextEvent)  {
    	ServletContext context=contextEvent.getServletContext();  //获取上下文对象
    	WebApplicationContext applicationContext=WebApplicationContextUtils.getRequiredWebApplicationContext(context);
    	blogIndex=applicationContext.getBean("blogIndex",BlogIndex.class);  //加载BlogIndex对象
    	blogService=applicationContext.getBean("blogServiceImpl",IBlogService.class);  //加载IBlogService对象
    }

参考文章

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring初体验

    爱撒谎的男孩
  • Spring注解的使用和组件扫描

    爱撒谎的男孩
  • springBoot基本使用

    ​ 1、双引号:加上双引号的值不会转义里面的特殊字符,比如字符串中包含一个换行符,那么就会在输出的时候换行

    爱撒谎的男孩
  • 梳理srping boot 的几个核心基础知识点

    spring boot之前,使用ssh或者ssm等框架开发,需要繁多的配置文件,开发效率较低,部署运维也较为麻烦,这时候为了解决这些问题spring boot ...

    海涛
  • Spring Boot 中使用 公共配置

    常用应用属性 可以在application.properties / application.yml file中指定各种属性,也可以在命令行开关中指定。本节提供...

    搜云库
  • Spring系列第1篇:请问各位大佬为何要学spring?

    整个spring系列使用官方最新版本5.2.3.RELEASE,会有大量案例,都是通过maven来管理的,所以maven是必备技能,对这块不熟悉的可以去看一下:...

    路人甲Java
  • Spring Boot 之Application.properties配置大全

    前几期,我们讲到了Spring Boot的框架,动手操作过的人,应该都还记得,并且觉得确实简化了很多,那么对于其中application.properties的...

    码神联盟
  • 第三十一章:SpringBoot配置文件application.properties参数详解

    恒宇少年
  • spring boot 配置属性大全(1)

    gemron的空间
  • spring boot 配置属性大全(2)

    gemron的空间

扫码关注云+社区

领取腾讯云代金券