Spring Bean装配·Aware·Resource

作用:实现了Aware接口的bean在初始化后可以获取相应资源并进行相应的操作
举例:
ApplicationContextAware:向实现了该接口的bean提供IOC容器的上下文信息(ApplicationContext),实现了该接口的bean必须配置到配置文件中并由spring的bean容器加载
BeanNameAware:向实现了该接口的bean提供关于beanName定义的相关内容
其他就做不介绍了,官网文档内容如下:

Table 7.4. Aware interfaces

Name Injected
Dependency
Explained in…​
ApplicationContextAware

Declaring ApplicationContext

Section 7.6.2,
“ApplicationContextAware and BeanNameAware”

ApplicationEventPublisherAware

Event
publisher of the enclosing ApplicationContext

Section 7.15,
“Additional Capabilities of the ApplicationContext”

BeanClassLoaderAware

Class
loader used to load the bean classes.

Section 7.3.2,
“Instantiating beans”

BeanFactoryAware

Declaring BeanFactory

Section 7.6.2,
“ApplicationContextAware and BeanNameAware”

BeanNameAware

Name
of the declaring bean

Section 7.6.2,
“ApplicationContextAware and BeanNameAware”

BootstrapContextAware

Resource
adapter BootstrapContext the
container runs in. Typically available only in JCA aware ApplicationContexts

Chapter 32, JCA
CCI

LoadTimeWeaverAware

Defined weaver for
processing class definition at load time

Section 11.8.4,
“Load-time weaving with AspectJ in the Spring Framework”

MessageSourceAware

Configured
strategy for resolving messages (with support for parametrization and internationalization)

Section 7.15,
“Additional Capabilities of the ApplicationContext”

NotificationPublisherAware

Spring
JMX notification publisher

Section 31.7,
“Notifications”

PortletConfigAware

Current PortletConfig the
container runs in. Valid only in a web-aware Spring ApplicationContext

Chapter 25, Portlet
MVC Framework

PortletContextAware

Current PortletContext the
container runs in. Valid only in a web-aware Spring ApplicationContext

Chapter 25, Portlet
MVC Framework

ResourceLoaderAware

Configured
loader for low-level access to resources

Chapter 8, Resources

ServletConfigAware

Current ServletConfig the
container runs in. Valid only in a web-aware Spring ApplicationContext

Chapter 22, Web
MVC framework

ServletContextAware

Current ServletContext the
container runs in. Valid only in a web-aware Spring ApplicationContext


Chapter 22, Web
MVC framework

Resource

Resources (针对于资源文件的统一接口)

A、UrlResource:URL 对应的资源,根据一个 URL 地址即可获取
B、ClassPathResource:获取类路径下的资源
C、FileSystemResource:获取文件系统里面的资源
D、ServletContextResource:ServletContext 封装的资源,用于访问 ServletContext 环境下的资源
E、InputStreamResource:获取输入流封装的资源
F、ByteArrayResource:获取字节数组封装的资源

通过实现 ApplicationContextAware 接口中的方法 ,因为需要实现ResourceLoader,而
ApplicationContextAware 实现了ResourceLoader

setApplicationContext(ApplicationContext applicationContext)Resource resource = applicationContext.getResource("xxx");具体演示示例见github

项目地址:https://github.com/DaleyChao/SpringPractice/commit/e84bffe0d2c72fa853d9bb1ffc4d4186e5de0e10
时间: 2024-09-19 15:01:27

Spring Bean装配·Aware·Resource的相关文章

Spring bean的配置

Bean的容器 Factory和Context,Context多了运行时上下文,提供读取资源文件,监听等等能力 Bean的生命周期: 实例化->填充属性->BeanNameAware的setBeanName方法, 调用BeanFactoryAware的setBeanFactory()方法,调用ApplicationContextAware的setApplicationContext()方法-->调用BeanPostProcessore的预初始化方法,调用InitializingBean的

Spring Bean的生命周期详细介绍_java

Spring作为当前Java最流行.最强大的轻量级框架,受到了程序员的热烈欢迎.准确的了解Spring Bean的生命周期是非常必要的.我们通常使用ApplicationContext作为Spring容器.这里,我们讲的也是 ApplicationContext中Bean的生命周期.而实际上BeanFactory也是差不多的,只不过处理器需要手动注册. 一.生命周期流程图: Spring Bean的完整生命周期从创建Spring容器开始,直到最终Spring容器销毁Bean,这其中包含了一系列关

Spring Bean的作用域(转)

  Spring Bean的作用域 .singleton  [单例] eg:<bean id="personService" class="com.yinger.service.impl.PersonServiceBean" scope="singleton"></bean> 在每个Spring IoC容器中一个bean定义只有一个对象实例. 请注意Spring的singleton bean概念与"四人帮&quo

Spring Bean的生命周期管理

本文来自阅读Life Cycle Management of a Spring Bean这篇文章所做的笔记和实验. 按图索骥 bean的生命周期 知识点 1. BeanNameAware接口 Spring Bean存活于容器之中,一般情况下spring bean对context的情况并不了解,如果希望某个bean知道自己在context中的代号:bean name,即可让该bean的类型实现BeanNameAware接口. package org.test.spittr.spi; import

Spring Bean注册方式小结

IOC容器 Spring的核心是一个IOC容器,管理着我们向容器注册的所有bean.下面我们来看下两种向容器注册bean的方式, 通过BeanDefinitionReader读取Spring Bean的配置文件,解析然后注册: 通过ClassPathBeanDefinitionScanner直接扫描带有Spring Bean注解的Java类并注册: Reader BeanDefinitionReader的使用方式如下, import org.springframework.beans.facto

Spring Bean基本管理实例详解_java

本文实例讲述了Spring Bean基本管理.分享给大家供大家参考,具体如下: 一.使用setter方式完成依赖注入 下面是Bean和beans-config.xml文件. public class HelloBean { private String helloWord; //...省略getter.setter方法 } <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC &

WebService大讲堂之Axis2(7):将Spring的装配JavaBean发布成WebService

在现今的Web应用中经常使用Spring框架来装载JavaBean.如果要想将某些在Spring中装配的JavaBean 发布成WebService,使用Axis2的Spring感知功能是非常容易做到的. 在本文的例子中,除了<Tomcat安装目录>\webapps\axis2目录及该目录中的相关库外,还需要 Spring框架中的spring.jar文件,将该文件复制到<Tomcat安装目录>\webapps\axis2\WEB-INF\lib 目录中. 下面先建立一个JavaBe

spring bean 属性从配置文件读取

问题描述 spring bean 属性从配置文件读取 我在spring的xml文件中使用这个标签: <context:component-scan base-package="${serverPack}"/> 启动${serverPack}从配置文件中获取,现在启动Tomcat出错. 解决方案 Spring bean配置读取配置文件Spring中读取bean配置文件的几种方式用dom4j读取配置文件来模拟spring的bean工厂 解决方案二: 要读取.properties

spring bean加载--从缓存中获取bean

标签:spring源码学习 入口方法:getSingleton,在 Object sharedInstance = getSingleton(beanName); @Override public Object getSingleton(String beanName) { return getSingleton(beanName, true); } 真正的实现: protected Object getSingleton(String beanName, boolean allowEarlyR