我无法在服务层获取spring bean(ServiceContext.getBean(“beanName”))。我可以在servlet中获取bean。我在下一课中做错了什么?
package com.ekaplus.presentation.common;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class ServiceContext implements ApplicationContextAware{
private static ApplicationContext applicationContext;
@SuppressWarnings("static-access")
public void setApplicationContext(ApplicationContext ctx)throws BeansException {
this.applicationContext=ctx;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static Object getBean(String beanName)
{
return applicationContext.getBean(beanName);
}
}
答案 0 :(得分:0)
尝试在没有静态访问的情况下进行。像这样的Smt(仅用于测试)
class ServiceContext {
public static Object getBean(final String beanName){
return new ApplicationContextAware(){
Object res;
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
res = applicationContext.getBean(beanName);
}
Object getBean(){
return res;
}
}.getBean();
}
}
答案 1 :(得分:0)
您的Servicecontext是否由Spring管理。看起来不是。如果它不是由Spring管理的,它不能在您的Servicecontext对象中注入ApplicationContext。
如果你能说出你想要实现的目标,那么建议就更容易了。特别是ServiceContext的作用是什么?豆子不能自动连线吗?
答案 2 :(得分:0)
ear和web-inf lib中存在一些libs问题。它现在正在运作。