春天中动态注入Bean的方法

  介绍

这篇文章将为大家详细讲解有关春天中动态注入Bean的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

<强>一、基于标注的方式注入实例

需要在Bean初始化之时,其依赖的对象必须初始化完毕。如果被注入的对象初始化晚于当前对象,则注入的对象将为null。

<强> 1.1 @ autowired

按照类型来加载弹簧管理的Bean。默认情况下要求其豆必须存在。如果其Bean为null,则可以设置其所需属性为假,具体的详情,可以参照源代码:

@Target ({ElementType.METHOD, ElementType.CONSTRUCTOR,还以为,ElementType.PARAMETER, ElementType.FIELD,, ElementType.ANNOTATION_TYPE})   @Retention (RetentionPolicy.RUNTIME)   @Documentedpublic   @interface  Autowired  {/* *,*,Declares  whether 从而annotated  dependency  is 只需要*   Defaults 用{@code 真正的}。   */boolean 需要(),default 真实;   }

如果需要基于命令来注入Bean,则需要使用@ qualifier来标注名称,代码示例如下:

@Autwired   @ qualifier (“beanName")   private  BeanType  beanObj;

应用范围:变量,setter方法和构造函数之上。

春框架

<强> 1.2 @ inject

由javax.inject。注入提供,基于类型进行自动装配,如果需要按照名称进行转配,则需要配合使用@ named。这个使用方式和弹簧框架提供的@ autowired非常类似。

应用范围:变量,setter方法,构造函数

JSR330规范javax扩展包

代码示例:

@ Inject   @ named (“beanName")   private  BeanType 豆类;

1.3 <强> @

默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入。其有JDK 1.6之后提供的。

应用范围:可以应用到变量和setter方法之上

JDK 1.6之后提供

代码使用示例:

@ resource (name=癿ybeanName")   private  BeanType 豆类;

<强>二、动态注入的方式

思路:基于ApplicationContextAware来获取ApplicationContext的引用,然后基于ApplicationContext进行对象的动态获取。

实现代码如下:

@ component      public  class  SpringContextUtil  implements  ApplicationContextAware  {//,春天应用上下文环境   private  static  ApplicationContext  applicationContext;/*   *,实现ApplicationContextAware接口的回调方法,设置上下文环境   *   *,@param  applicationContext   */public  void  setApplicationContext (ApplicationContext  applicationContext), {   时间=SpringContextUtil.applicationContext  applicationContext;   }/* *   *,@return  ApplicationContext   */public  static  ApplicationContext  getApplicationContext (), {   return  applicationContext;   }/* *   *,获取对象   *   *,@param 名字   *,@return 对象   *,@throws  BeansException   */public  static  Object  getBean (String 名称),throws  BeansException  {   return  applicationContext.getBean(名称);   }   }

之后就可以直接在代码中动态获取所需要的Bean实例了:

BeanType  bean =, SpringContextUtil.getBean (“beanName")

关于“春中动态注入Bean的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。

春天中动态注入Bean的方法