当前位置: 首页 > wzjs >正文

珠宝首饰网站建设策划书百度搜索引擎网址格式

珠宝首饰网站建设策划书,百度搜索引擎网址格式,深圳企业100强,化妆品可做的团购网站有哪些Aware 在Spring当中有一些内置的对象是未开放给我们使用的,例如Spring的上下文ApplicationContext、环境属性Environment,BeanFactory等等其他的一些内置对象,而在我们可以通过实现对应的Aware接口去拿到我们想要的一些属性,一般…

Aware

在Spring当中有一些内置的对象是未开放给我们使用的,例如Spring的上下文ApplicationContext、环境属性Environment,BeanFactory等等其他的一些内置对象,而在我们可以通过实现对应的Aware接口去拿到我们想要的一些属性,一般命名都是xxxAware,在创建对象的时候, 会调用接口规定的方法注入到相关组件:Aware

常用的Aware:

用法示例:

源码解析

我们先了解什么是BeanPostProcessor,是在创建Bean之前以及创建Bean之后的一种后置处理器,这里就简单的讲一下这个,就是在我们使用的这些注解,例如:@Async (异步执行),@Bean,@Component、@Autowired、@PropertySource等等都需要经过BeanPostProcessor去处理才能加载到容器当中,

先看一个示例:

不仅仅有BeanPostProcessor还有BeanDefinitionRegistryPostProcessor(Bean注册器后置处理器)、BeanFactoryPostProcessor(BeanFactory后置处理器),

在处理Aware实现类的时候就会有对应的一个AwareProcessor去处理,我们拿ApplicationContextAware做示例**:**

我们找到对应的后置处理器ApplicationContextAwareProcessor

因为BeanPostProcessor有两个接口实现,但是只对处理前做内置对象赋值,将对应的对象暴露给我们

class ApplicationContextAwareProcessor implements BeanPostProcessor {private final ConfigurableApplicationContext applicationContext;private final StringValueResolver embeddedValueResolver;/*** Create a new ApplicationContextAwareProcessor for the given context.*/public ApplicationContextAwareProcessor(ConfigurableApplicationContext applicationContext) {this.applicationContext = applicationContext;this.embeddedValueResolver = new EmbeddedValueResolver(applicationContext.getBeanFactory());}@Override@Nullablepublic Object postProcessBeforeInitialization(final Object bean, String beanName) throws BeansException {AccessControlContext acc = null;if (System.getSecurityManager() != null &&(bean instanceof EnvironmentAware || bean instanceof EmbeddedValueResolverAware ||bean instanceof ResourceLoaderAware || bean instanceof ApplicationEventPublisherAware ||bean instanceof MessageSourceAware || bean instanceof ApplicationContextAware)) {acc = this.applicationContext.getBeanFactory().getAccessControlContext();}if (acc != null) {AccessController.doPrivileged((PrivilegedAction<Object>) () -> {invokeAwareInterfaces(bean);return null;}, acc);}else {invokeAwareInterfaces(bean);}return bean;}private void invokeAwareInterfaces(Object bean) {if (bean instanceof Aware) {if (bean instanceof EnvironmentAware) {((EnvironmentAware) bean).setEnvironment(this.applicationContext.getEnvironment());}if (bean instanceof EmbeddedValueResolverAware) {((EmbeddedValueResolverAware) bean).setEmbeddedValueResolver(this.embeddedValueResolver);}if (bean instanceof ResourceLoaderAware) {((ResourceLoaderAware) bean).setResourceLoader(this.applicationContext);}if (bean instanceof ApplicationEventPublisherAware) {((ApplicationEventPublisherAware) bean).setApplicationEventPublisher(this.applicationContext);}if (bean instanceof MessageSourceAware) {((MessageSourceAware) bean).setMessageSource(this.applicationContext);}if (bean instanceof ApplicationContextAware) {((ApplicationContextAware) bean).setApplicationContext(this.applicationContext);}}}@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) {return bean;}}

不得不说Spring的这种设计还是很厉害的,建议可以买本Spring IOC源码分析的书看看比较好,了解的更加细致

http://www.dtcms.com/wzjs/23993.html

相关文章:

  • 做国际交友网站翻译千锋教育学费多少
  • 政府网站域名注册搜狗网站收录入口
  • 做网站用什么语言谷歌广告开户
  • 做外国网站用什么服务器最新军事动态最新消息
  • 山东建筑公司实力排名搜索引擎关键词优化
  • 如何做网站同步别人的商城怎么创建一个网页
  • 网站建设的验收电商营销策划方案
  • 公司网站建设一定要求原图吗网站搜索优化官网
  • 如何用七牛云做视频网站seo排名点击
  • 建设企业网站官网企业网银软文广告经典案例300字
  • 什么网站容易做流量网站点击量软件
  • 影响网站pr的主要因素有哪些足球世界排名
  • 在哪网站可以做农信社模拟试卷什么是seo优化推广
  • 武汉光谷网站建设链接
  • 无极门户网站品牌策划方案怎么写
  • 荆门哪里做网站百度竞价登录入口
  • 支付宝 收费 网站开发seo上排名
  • 汕尾建设局网站首页seo关键词优化系统
  • 浙江艮威水利建设有限公司网站广州seo网络优化公司
  • 开发软件大概需要多少钱百度seo文章
  • 合肥建设云app西安seo专员
  • 网页微信登陆首页搜索引擎优化报告
  • 购物网站建设策划报告百度官网入口
  • 网页链接加密网站优化包括哪些内容
  • 市通建设工程质量监督局网站可以免费推广的平台
  • 重庆营销型网站建设建一个外贸独立站大约多少钱
  • 食品网站的网页设计网站排名推广工具
  • 班级网站 php网站推广培训
  • bigdropinc是什么网站网络优化工程师工资
  • 网页设计师的岗位职责整站seo排名外包