工具类实现ApplicationContextAware后无法取得spring容器的bean?

如题,一直报bean未定义具体说明:①实现ApplicationContextAware的工具类是通过注解方式,在spring容器中扫描该类所在包初始化的,如图1是实现,... 如题,一直报bean未定义具体说明:①实现ApplicationContextAware的工具类是通过注解方式,在spring容器中扫描该类所在包初始化的,如图1是实现,图2是扫描该类所在包(提示已成功)。②启动tomcat服务后,我用ApplicationContext_init.getContext().getBean("commenClass");获取容器中的bean:commenClass(该bean是在另一个配置文件中注入的,跟扫描工具类包不是同一个配置文件,见图3)一直提示commenClass未定义,见图4 展开
 我来答
智者总要千虑
高粉答主

2020-01-07 · 说的都是干货,快来关注
知道顶级答主
回答量:7.9万
采纳率:88%
帮助的人:1.4亿
展开全部
方法如下:
实现
1.创建一个类让其实现org.springframework.context.ApplicationContextAware接口来让Spring在启动的时候为我们注入ApplicationContext对象.
示例代码:
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class MyApplicationContextUtil implements ApplicationContextAware {
private static ApplicationContext context;
//声明一个静态变量保存
public void setApplicationContext(ApplicationContext contex) throws BeansException {
this.context=contex;
}
public static ApplicationContext getContext(){
return context;
}
public final static Object getBean(String beanName){
return context.getBean(beanName);
}
public final static Object getBean(String beanName, Class<?> requiredType) {
return context.getBean(beanName, requiredType);
}
}
2.在applicationContext.xml文件中配置此bean,以便让Spring启动时自动为我们注入ApplicationContext对象.
例:
<!-- 这个bean主要是为了得到ApplicationContext 所以它不需要其它属性-->
<bean class="org.ing.springutil.MyApplicationContextUtil"></bean>
3.有了这个ApplicationContext之后我们就可以调用其getBean("beanName")方法来得到由Spring 管理所有对象.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式