返回顶部
首页 > 资讯 > 精选 >Spring中ApplicationContextAware如何使用
  • 167
分享到

Spring中ApplicationContextAware如何使用

2023-07-05 14:07:58 167人浏览 泡泡鱼
摘要

本篇内容介绍了“spring中ApplicationContextAware如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Appli

本篇内容介绍了“spring中ApplicationContextAware如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

ApplicationContextAware 通过它Spring容器会自动把上下文环境对象调用ApplicationContextAware接口中的setApplicationContext方法。

我们在ApplicationContextAware的实现类中,就可以通过这个上下文环境对象得到Spring容器中的Bean。

  看到—Aware就知道是干什么的了,就是属性注入的,但是这个ApplicationContextAware的不同地方在于,实现了这个接口的bean,当spring容器初始化的时候,会自动的将ApplicationContext注入进来: 
使用方法如下:

实现ApplicationContextAware接口:

import org.springframework.beans.BeansException;import org.springframework.beans.factory.InitializingBean;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import com.co.ayz.rpc.reGIStry.ServiceRegistry;public class RpcServer implements ApplicationContextAware{    private ApplicationContext context;        @Override    public void setApplicationContext(ApplicationContext applicationContext)            throws BeansException {        // TODO Auto-generated method stub        context = applicationContext;           }        //获得applicationContext    public static ApplicationContext getApplicationContext() {        //assertContextInjected();        return context;    }        public static void clearHolder(){        context=null;    }    //获取Bean    public static <T> T getBean(Class<T> requiredType){        //assertContextInjected();        return (T) getApplicationContext().getBean(requiredType);    }    @SuppressWarnings("unchecked")    public static <T> T getBean(String name){        assertContextInjected();        return (T) getApplicationContext().getBean(name);    }        //判断application是否为空    public static void assertContextInjected(){        Validate.isTrue(context==null, "application未注入 ,请在sprinGContext.xml中注入SpringHolder!");    }}

因为我们在做开发的时候,并不是说在每一个地方都能将属性注入到我们想要的地方去的,比如在Utils使用到dao,我们就不能直接注入了,这个时候就是我们需要封装springContext的时候了,而ApplicationContextAware就起了关键性的作用。

自己写的demo:

package com.founder.mrp.job;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.stereotype.Component;@Componentpublic class SpringJobBeanFactory implements ApplicationContextAware {        private static ApplicationContext applicationContext;        @Override    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {        SpringJobBeanFactory.applicationContext=applicationContext;            }     public static ApplicationContext getApplicationContext() {            return applicationContext;    }    @SuppressWarnings("unchecked")    public static <T> T getBean(String name) throws BeansException {            if (applicationContext == null){                return null;            }            return (T)applicationContext.getBean(name);      }}使用:
TypeSetErpService typeSetErpServ = SpringJobBeanFactory.getBean("typeSetErpServiceImpl");

“Spring中ApplicationContextAware如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Spring中ApplicationContextAware如何使用

本文链接: https://lsjlt.com/news/352480.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Spring中ApplicationContextAware如何使用
    本篇内容介绍了“Spring中ApplicationContextAware如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Appli...
    99+
    2023-07-05
  • Spring中ApplicationContextAware的使用方法详解
    ApplicationContextAware 通过它Spring容器会自动把上下文环境对象调用ApplicationContextAware接口中的setApplicat...
    99+
    2023-03-22
    Spring中ApplicationContextAware作用 Spring ApplicationContextAware
  • SpringBoot ApplicationContextAware拓展接口如何使用
    本篇内容介绍了“SpringBoot ApplicationContextAware拓展接口如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读...
    99+
    2023-07-05
  • SpringBoot ApplicationContextAware拓展接口怎么使用
    这篇文章主要介绍“SpringBoot ApplicationContextAware拓展接口怎么使用”,在日常操作中,相信很多人在SpringBoot ApplicationContextAware拓展接口怎么使用问题...
    99+
    2023-07-06
  • Spring中schedulerfactorybean如何使用
    在Spring中,SchedulerFactoryBean是一个用于创建和配置Quartz调度器的工厂bean。可以通过Schedu...
    99+
    2023-08-24
    Spring
  • Spring Boot中如何使用Starter
    本篇内容主要讲解“Spring Boot中如何使用Starter”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring Boot中如何使用Starter”吧!SpringBoot简介Spri...
    99+
    2023-06-16
  • java中Spring boot如何使用
    这篇文章主要介绍“java中Spring boot如何使用”,在日常操作中,相信很多人在java中Spring boot如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java中Spring boot如...
    99+
    2023-06-16
  • Spring中的RedisTemplate如何使用
    这篇文章主要介绍“Spring中的RedisTemplate如何使用”,在日常操作中,相信很多人在Spring中的RedisTemplate如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spring中...
    99+
    2023-07-05
  • transactionAttributes如何在Spring中使用
    本篇文章给大家分享的是有关transactionAttributes如何在Spring中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体方法如下:<bean id=...
    99+
    2023-05-31
    spring transactionattributes
  • Redis如何在Spring中使用
    本篇文章为大家展示了Redis如何在Spring中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Eclipse工程结构如下图为我的示例工程的结构图,采用Maven构建。其中需要集成Spring,...
    99+
    2023-05-30
    redis spring
  • FactoryBean如何在Spring中使用
    FactoryBean如何在Spring中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。spring  FactoryBean 是创建 复杂的bean,一般的be...
    99+
    2023-05-31
    spring factorybean bea
  • 如何在Spring Boot中使用MQTT
    目录为什么选择MQTT MQTT, 启动! 使用方式 Client模式 创建工厂类 创建工具类 Spring Integration 总结 为什么选择MQTT MQTT的定义相信很...
    99+
    2024-04-02
  • Spring中如何使用Comparator接口
    我们先来回顾下Comparator接口在我们日常开发中的作用,Comparator比较器接口可以将自身传递给排序方法(比如Collections.sort或Arrays.sort),...
    99+
    2024-04-02
  • Lombok如何在Spring Boot中使用
    本篇文章给大家分享的是有关Lombok如何在Spring Boot中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。springboot是什么springboot一种全新的编...
    99+
    2023-06-14
  • spring中如何使用@Service注解
    本篇文章为大家展示了spring中如何使用@Service注解,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。@Service注解的使用要说明@Service注解的使用,就得说一下我们经常在sprin...
    99+
    2023-06-20
  • Java中如何使用Spring注解
    Java中如何使用Spring注解,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在Spring4之后,要使用注解开发,必须要保证aop的包导入了使用注解需要导入contex...
    99+
    2023-06-20
  • Python 教程中如何使用 Spring?
    Python 是一种广泛使用的编程语言,而 Spring 则是一种流行的 Java 开发框架。虽然 Python 和 Java 是两种不同的编程语言,但 Python 开发者仍然可以使用 Spring 框架来构建他们的应用程序。本文将介绍如...
    99+
    2023-08-31
    教程 spring numpy
  • JdbcTemplate如何在spring boot中使用
    JdbcTemplate如何在spring boot中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Spring对数据库的操作在jdbc上面做了深层次的封装...
    99+
    2023-05-31
    springboot emp jdbctemplate
  • filter如何在Spring Boot中使用
    今天就跟大家聊聊有关filter如何在Spring Boot中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。过滤器(Filter)的注册方法和 Servlet 一样,有两种方式:...
    99+
    2023-05-31
    spring boot filter
  • Druid如何在Spring Boot中使用
    这篇文章给大家介绍Druid如何在Spring Boot中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Spring Boot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSour...
    99+
    2023-05-31
    springboot druid
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作