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

石家庄做外贸网站建设中国十大企业管理培训机构

石家庄做外贸网站建设,中国十大企业管理培训机构,网站建设公司联系电话,c#做的网站怎么上传图片Aware接口前言基本内容例子结尾前言 Spring的依赖注入最大亮点是所有的Bean对Spring容器对存在都是没有意识到,Spring容器中的Bean的耦合度是很低的,我们可以将Spring容器很容易换成其他的容器。 但是实际开发的时候,我们经常要用到Spring容…

Aware接口

    • 前言
      • 基本内容
      • 例子
      • 结尾

前言

Spring的依赖注入最大亮点是所有的Bean对Spring容器对存在都是没有意识到,Spring容器中的Bean的耦合度是很低的,我们可以将Spring容器很容易换成其他的容器。
但是实际开发的时候,我们经常要用到Spring容器本身的功能资源,所以Spring容器中的Bean此时要能意识到Spring容器到存在才能调用Spring所提供的资源,我们通过Spring提供的一系列接口Spring Aware来实现具体的功能。
Aware翻译过来:“察觉的,感知的”,如果是XxxAware也就是对…感知的。

基本内容

Aware接口是一种框架辅助属性注入的一种思想,其他框架中
瞧一眼源码:

/*** Marker superinterface indicating that a bean is eligible to be* notified by the Spring container of a particular framework object* through a callback-style method. Actual method signature is* determined by individual subinterfaces, but should typically* consist of just one void-returning method that accepts a single* argument.** <p>Note that merely implementing {@link Aware} provides no default* functionality. Rather, processing must be done explicitly, for example* in a {@link org.springframework.beans.factory.config.BeanPostProcessor BeanPostProcessor}.* Refer to {@link org.springframework.context.support.ApplicationContextAwareProcessor}* and {@link org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory}* for examples of processing {@code *Aware} interface callbacks.** @author Chris Beams* @since 3.1*/
public interface Aware {}

我们可以看到,Aware是一个具有标识作用的超级接口,实现该接口的Bean都具有被Spring容器通知的能力。
而被通知的方式就是通过回调,简单来说:直接或者间接实现了这个接口的类,都具有被Spring容器通知的能力。

Aware接口是回调,监听器和观察者设计模式的混合,它表示bean有资格通过回调方式被Spring容器通知。
有时我们的在Bean的初始化中使用Spring框架自身的一些对象来执行一些操作,比如:

  • 获取ServletContext的一些参数。
  • 获取ApplicationContext中的BeanDefinition的名字。
  • 获取Bean在容器中的名字等等。
    这些接口均继承自org.springframework.beans.factory.Aware标记接口,并提供一个将由Bean实现的Set方法,Spring通过基于Setter的依赖注入方式使相应的对象可以被Bean使用。
    常见的Aware接口:
    请添加图片描述

例子

以BeanNameAware为例:
BeanNameAware:使对象能够知道容器中定义的bean名称。

public class MyBeanName implements BeanNameAware {@Overridepublic void setBeanName(String beanName){System.out.println(beanName);}
}

在Spring配置类中注册这种类型的bean:

@Configuration
public class Config{@Bean(name="WangBeanName")public MyBeanName getMyBeanName(){return new MyBeanName();
}}

启动应用程序上下文并从中获取bean:

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
MyBeanName myBeanName = context.getBean(MyBeanName.class); 

从控制台可以看到,setBeanName方法打印出来了"WangBeanName"。
若从@Bean注解中删除name =“…”代码,则在这种情况下,将getMyBeanName()方法名称分配给bean,所以输出将是“getMyBeanName”。

结尾

对于这个接口我觉得说这么多就好,其实重点在于它的设计模式,后面写到设计模式的时候我再把它拿回来说。

http://www.hrbkazy.com/news/29979.html

相关文章:

  • 怎么样做网站的目录结构合肥网站优化技术
  • 安徽网站建设的基本步骤搜索引擎优化服务
  • 台州找人做网站下载百度app下载
  • 怎么创立自己的网站河南网站建设报价
  • 一级a做爰片2017免费网站搜索引擎的营销方法有哪些
  • 网站备案地上海seo外包
  • 中央决定唐山秦皇岛合并wp博客seo插件
  • 网站大全免费电影企业qq官网
  • 商标设计找哪里赣州seo外包怎么收费
  • 网络优化大师郑州厉害的seo优化顾问
  • 怎么做各大视频网站的会员代理软文代写自助发稿平台
  • 淮安网站建设电话站长统计 站长统计
  • 个人网站备案需要哪些网络舆情分析报告范文
  • 网站制作建设百度用户服务中心官网
  • 宣传型商务网站十大免费网站推广
  • 做网站维护价格苏州疫情最新通知
  • 做外链一定要淘宝网站吗sem推广软件
  • 网页设计网站测试私人浏览器
  • 外贸b2c平台都有哪些网站seo服务内容
  • 网站后台管理系统教程如何做营销
  • 网站怎么做关键词研究关键词调词平台哪个好
  • 宝宝个人网站模板活动营销推广方案
  • 河南郑州网站制作独立站
  • 怎么用织梦做自己的网站百度关键词优化查询
  • 国家住房和城乡建设部网站查询十大免费推广平台
  • 广州高档网站建设南昌百度搜索排名优化
  • 网站框架怎么做的上海优化外包公司排名
  • 网站微信登录怎么做的福州短视频seo推荐
  • 甘肃建筑工程网云速seo百度点击
  • 网站建设汇编资料青岛关键词排名提升