aware

更新时间:2023-01-03 11:26:31 阅读: 评论:0


2023年1月3日发(作者:trespassing mv)

ApplicationContextAware和BeanFactoryAware获取bean实例

这两个接⼝在项⽬中的使⽤,主要是为了动态获取实例对象,两种场景

第⼀种:获取的实例对象都实现了相同的接⼝或者继承了相同的⽗类,这样就可以实现代码的整洁复⽤;

第⼆种:⽐如⽅法的调⽤,类⾥边的⽅法相互调⽤,如果想使⽤⾃定义注解的话,是不会⽣效的,但是如果借⽤

ApplicationContextAware和BeanFactoryAware接⼝的⽅法实现,则可以让⾃定义注解⽣效,因为重新动态获取了⼀次实例;

使⽤说明:必须保证SpringContextUtil该类被Spring容器管理,不然不会⽣效,会报空指针异常;使⽤注解扫描或者定义bean标签

注⼊;

n(“aController”,)

SpringContextUtil类

publicclassSpringContextUtilimplementsApplicationContextAware{

//Spring应⽤上下⽂环境

privatestaticApplicationContextapplicationContext;

/**

*实现ApplicationContextAware接⼝的回调⽅法,设置上下⽂环境

*/

publicvoidtApplicationContext(ApplicationContextapplicationContext)

throwsBeansException{

ationContext=applicationContext;

}

publicstaticApplicationContextgetApplicationContext(){

returnapplicationContext;

}

/**

*获取对象这⾥重写了bean⽅法,起主要作⽤

*

*@parambeanId

*@returnObject⼀个以所给名字注册的bean的实例

*@throwsBeansException

*/

publicstaticTgetBean(StringbeanId)throwsBeansException{

return(T)n(beanId);

}

/**

*获取对象这⾥重写了bean⽅法,起主要作⽤

*

*@parambeanId

*@returnObject⼀个以所给名字注册的bean的实例

*@throwsBeansException

*/

publicstaticTgetBean(StringbeanId,ClassbeanClass)throwsBeansException{

return(T)n(beanId,beanClass);

}

}

publicclassSpringContextUtilimplementsBeanFactoryAware{

privatestaticBeanFactorybeanFactory;

/**

*实现BeanFactory接⼝的回调⽅法,设置上下⽂环境

*/

@Override

publicvoidtBeanFactory(BeanFactorybeanFactory)throwsBeansException{

ctory=beanFactory;

}

/**

*获取对象这⾥重写了bean⽅法,起主要作⽤

*

*@parambeanId

*@returnObject⼀个以所给名字注册的bean的实例

*@throwsBeansException

*/

publicstaticTgetBean(StringbeanId)throwsBeansException{

return(T)n(beanId);

}

/**

*获取对象这⾥重写了bean⽅法,起主要作⽤

*

*@parambeanId

*@returnObject⼀个以所给名字注册的bean的实例

*@throwsBeansException

*/

publicstaticTgetBean(StringbeanId,ClassbeanClass)throwsBeansException{

return(T)n(beanId,beanClass);

}

}

以下⽅式也可以:

@Resource

privateApplicationContextapplicationContext;

n()

本文发布于:2023-01-03 11:26:31,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/84145.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:how much
下一篇:elder
标签:aware
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图