我正在用两个请求范围的bean创建一个类。 Bean类带有以下注释:
@Component
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class RequestScopedBean1 {
// stuff
}
他们在我班级的字段声明是:
@Resource
private RequestScopedBean1 requestScopedBean1
@Resource
private RequestScopedBean2 requestScopedBean2
该系统已在我正在使用的所有代码库中使用,没有任何问题。但是,在我的课堂上,一个注入的bean(不是两个,只有一个!)的所有字段均为null / empty。
我知道在调试模式下仅查看请求范围的bean的字段通常会显示它们都是空的,这是因为Spring用代理来管理此类bean的方式。我也知道,出于相同的原因,应该使用getter和setter而不是直接访问字段。但是,在intelliJ中使用“评估表达式”功能时,此bean仍然显示为空/空。
我的班级和每个bean类都在不同的项目中。工作bean在核心项目中。损坏的bean位于与核心项目相关的项目中,而我的类位于依赖于破碎bean的项目中的项目。
如果您需要更多信息来帮助我,请告诉我!
编辑我的XML配置文件的简短描述:
有4个相关项目,可以将其称为“核心”,“网络”,“通用”和“特定”。每个应用程序都有自己对应的application-context.xml。该应用程序是从“特定”项目构建的.war文件中部署的。在“特定” web.xml的标记中,导入了“ web”和“特定”的应用程序上下文。 “特定的” application-context.xml的第一行为“ common”导入了应用程序上下文,这是我的新类所在的位置。 “ web” application-context.xml的第一行导入“核心” application-context。工作请求范围的Bean位于“核心”中;在“网络”中坏掉的一个。我希望这很清楚-如果不告诉我!其他信息有用吗?
最佳答案
可能是因为您未尝试在类中尝试访问的setter和getter的访问说明符(即默认值)。尝试将其更改为公开并查看。
关于java - Spring请求范围的Bean-所有字段为空/空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8268559/