SpringBoot获取ApplicationContext的3种方式
ApplicationContext是什么?
简单来说就是Spring中的容器,可以用来获取容器中的各种bean组件,注册监听事件,加载资源文件等功能。
Application Context获取的几种方式
1 直接使用Autowired注入
@Component public class Book1 { @Autowired private ApplicationContext applicationContext; public void show (){ System.out.println(applicationContext.getClass()); } }
2 利用 spring4.3 的新特性
使用spring4.3新特性但是存在一定的局限性,必须满足以下两点:
1) 构造函数只能有一个,如果有多个,就必须有一个无参数的构造函数,此时,spring会调用无参的构造函数
2) 构造函数的参数,必须在spring容器中存在
@Component public class Book2 { private ApplicationContext applicationContext; public Book2(ApplicationContext applicationContext){ System.out.println(applicationContext.getClass()); this.applicationContext=applicationContext; } public void show (){ System.out.println(applicationContext.getClass()); } }
3 实现spring提供的接口 ApplicationContextAware
spring 在bean 初始化后会判断是不是ApplicationContextAware的子类,调用setApplicationContext()方法, 会将容器中ApplicationContext传入进去
@Component public class Book3 implements ApplicationContextAware { private ApplicationContext applicationContext; public void show (){ System.out.println(applicationContext.getClass()); } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } }
结果获取三次:
class org.springframework.context.annotation.AnnotationConfigApplicationContext class org.springframework.context.annotation.AnnotationConfigApplicationContext class org.springframework.context.annotation.AnnotationConfigApplicationContext
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Spring通过ApplicationContext主动获取bean的方法讲解
问题1: 有个异步线程Runnable里面需要用到dao,无法通过AutoWired和compoment注解传递进来. 于是希望通过Spring context主动去获取bean. 问题2: getBean(name)获取失败. 解决: 默认的dao的name=类名(首字母小写) 例如: 接口名称:TemplateDao 则getName("templateDao")即可 通用的SpringContextUtil获取Bean 1.实现ApplicationContextAware接口
-
JSP Spring ApplicationContext的国际化支持
JSP Spring ApplicationContext的国际化支持 1.ApplicationContext接口继承了MessageResource接口,因此使用ApplicationContext作为spring容器可以使用国际化资源文件. 2.在MessageResource接口中定义了两个主要用于国际化的方法: String getMessage(String param,Object[] args,Locale loc) ; String getMessage(String par
-
Spring MVC之WebApplicationContext_动力节点Java学院整理
如果你使用了listener监听器来加载配置,一般在Struts+Spring+Hibernate的项目中都是使用listener监听器的.如下 Java代码 <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> Spring会创建一个WebApplicationContext上下文,称为父上下
-
spring中通过ApplicationContext getBean获取注入对象的方法实例
用SpringContextUtil实现ApplicationContextAware package util; import java.util.Locale; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; pub
-
详解Spring Boot的GenericApplicationContext使用教程
教程展示了如何在Spring应用程序中使用GenericApplicationContext .在该示例中,我们创建了一个Spring Boot控制台应用程序. Spring是一个流行的Java应用程序框架,Spring Boot 是Spring的演变,可以帮助您轻松创建独立的,基于生产级别的Spring应用程序. GenericApplicationContext是一个实现ApplicationContext,它不预设指定任何bean定义格式; 例如XML或注释. 在下面的应用程序中,我们Ge
-
Spring获取ApplicationContext对象工具类的实现方法
Spring获取ApplicationContext对象工具类的实现方法 (1)实现的工具类: package com.util; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; final public class ApplicationContextUtil { private s
-
详解spring applicationContext.xml 配置文件
applicationContext.xml 文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http
-
Spring主配置文件(applicationContext.xml) 导入约束详解
eclipse导入Spring配置文件约束 Windows-Preference-XML-XMLCatalog 点 Add 选File System 下spring的解压包下的schema文件夹,选beans,然后选择spring对应的版本的xsd文件 选择指定xsd文件,再Key的路径后面添加"/spring-beans-4.2.xsd"点ok 创建applicationContext.xml 写根元素 <beans></beans> Add导入XSI,
-
SpringBoot获取ApplicationContext的3种方式
ApplicationContext是什么? 简单来说就是Spring中的容器,可以用来获取容器中的各种bean组件,注册监听事件,加载资源文件等功能. Application Context获取的几种方式 1 直接使用Autowired注入 @Component public class Book1 { @Autowired private ApplicationContext applicationContext; public void show (){ System.out.printl
-
详解SpringBoot静态方法获取bean的三种方式
目录 方式一 注解@PostConstruct 方式二 启动类ApplicationContext 方式三 手动注入ApplicationContext 方式一 注解@PostConstruct import com.example.javautilsproject.service.AutoMethodDemoService; import org.springframework.beans.factory.annotation.Autowired; import org.springfr
-
Spring实现Aware接口自定义获取bean的两种方式
在使用spring编程时,常常会遇到想根据bean的名称来获取相应的bean对象,这时候,就可以通过实现BeanFactoryAware来满足需求,代码很简单: @Servicepublic class BeanFactoryHelper implements BeanFactoryAware { private static BeanFactory beanFactory; @Override public void setBeanFactory(BeanFactory beanFactory
-
解决SpringBoot跨域的三种方式
一.什么是跨域 1.1.为什么会出现跨域问题 出于浏览器的同源策略限制.同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现.同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互.所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port) 简单说A应用只能访问
-
详解Springboot下载Excel的三种方式
汇总一下浏览器下载和代码本地下载实现的3种方式. (其实一般都是在代码生成excel,然后上传到oss,然后传链接给前台,但是我好像没有实现过直接点击就能在浏览器下载的功能,所以这次一起汇总一下3种实现方式.)
-
Springboot打印接口的三种方式分享
目录 1 aop切面的方式 1.1 实现思路 1.2 代码实现 1.3 功能测试 2 过滤器的方式 3 拦截器的方式 1 aop切面的方式 1.1 实现思路 引入aop依赖 自定义注解 定义切面,采用环绕通知 1.2 代码实现 1)引入依赖 xml <!--aop--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-
-
详解SpringBoot 调用外部接口的三种方式
目录 1.简介 2.方式一:使用原始httpClient请求 3.方式二:使用RestTemplate方法 4.方式三:使用Feign进行消费 1.简介 SpringBoot不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程.在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求, 比如在apaas开发过程中需要封装接口在接口中调用apaas提供的接口(像发起流程接口submit等等)下面也是
-
详解iOS获取通讯录的4种方式
本文实例为大家分享了iOS获取通讯录的4种方式,供大家参考,具体内容如下 使用场景 一些App通过手机号码来推荐好友,如 微博.支付宝 首先客户端会获取通讯录中的所有手机号然后将这些手机号提交到App服务器中,服务器会查找每个手机号对应的App账号如QQ号码返回到客户端,然后客户端根据服务器返回的账号列表来推荐好友. 获取联系人方式 方案一:AddressBookUI.framework框架 提供了联系人列表界面.联系人详情界面.添加联系人界面等 一般用于选择联系人 方案二:AddressBoo
-
C#获取路径的几种方式实例分析
本文实例讲述了C#获取路径的几种方式.分享给大家供大家参考.具体如下: string str1 =Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名. string str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径. //备注按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如"C:\&q
-
简单了解java获取类的3种方式
这篇文章主要介绍了java获取类的3种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.Class.forName("全类名") 将字节吗文件加载进内存,返回Class对象,多用于配指文件,将类名定义在配置文件中,便于利用java的反射机制生成类对象,加载类. //加载一个用户实体类UserBean Class c1 = Class.forName("com.test.UserBean"): 2.类名.c
随机推荐
- iOS获取手机ip地址代码
- java求解集合的子集的实例
- Java的MyBatis框架中实现多表连接查询和查询结果分页
- 利用Python爬取微博数据生成词云图片实例代码
- php生成固定长度纯数字编码的方法
- JS全局变量和局部变量最新解析
- Python 闭包的使用方法
- ASP+FSO可视化目录编历(可增、删、改)下载
- Python实现多并发访问网站功能示例
- MyBatis SqlMapConfig.xml配置
- CentOS下PHP安装Oracle扩展
- 反垃圾网站是全球性重任 关键在于积极协作
- C#中一些字符串操作的常用用法
- ASP 数字分页效果代码
- Android自定义ViewGroup实现带箭头的圆角矩形菜单
- 基于jQuery实现定位导航位置效果
- JS实现十字坐标跟随鼠标效果
- Python3 实现文件批量重命名示例代码
- Java基础教程之final关键字浅析
- 微信小程序页面调用自定义组件内的事件详解