我正在尝试将作为代理的服务自动装入静态类。春天不合作,并没有给出任何错误的迹象。
我只能看到:
当我尝试评估变量时,在调试器中方法抛出' org.springframework.beans.factory.BeanCreationException'例外。无法评估com.domain.services.SessionService $$ EnhancerBySpringCGLIB $$ f94406f3.toString()
。
我的控制器有一个实用程序类:
public class ControllerUtil {
private static SessionService sessionService;
public ControllerUtil(SessionService sessionService) {
this.sessionService = sessionService;
}
在应用程序启动时,我尝试将sessionService添加到静态类。会话服务在会话范围内,所以我在这里尝试添加代理。
@Configuration
public class BeanConfig {
@Autowired
SessionService sessionService;
@PostConstruct
private void initStaticClasses() {
/*
* Need to add proxy to controller utils
* */
new ControllerUtil(sessionService);
}
最后我的SessionService类:
@Service
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class SessionService {
@Autowired
BusinessDAO businessDAO;
Business business = businessDAO.getBusinessById("1");
public SessionService() {
System.out.println("New session service");
}
我只是想在商业中硬编码用于开发目的。
Spring必须在某个地方失败,但我没有在日志中得到任何回报,调试并没有真正帮助。
有人可以告诉我做错了吗?
由于
答案 0 :(得分:0)
如果您使用的是java配置,请在Web应用初始化程序中添加此行。
servletContext.addListener(new RequestContextListener());
如果您使用的是spring xml配置,请在web.xml中添加以下内容
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>