我的Spring应用程序部署在JBOSS Wildfly服务器中。 我有一个如下所示的拦截器 - @成分 公共类 AuthenticatorInterceptor 实现 HandlerInterceptor,可序列化 {
private static final long serialVersionUID = 1L;
@Autowired
private Environment environment;
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws ImplHubException,Exception {
String myPropertyValue = environment.getProperty("myproperty");
.......
}
myproperty 在standlaone.xml 中输入,例如 -
但行为是 - 对于某些请求,选择 myPropertyValue,而对于其他请求,则选择为 null。 我想了解原因。由于AuthenticatorInterceptor是一个Component并且是单例的,并且Environment也是单例的。 如何每个请求都没有完全加载环境bean?单例bean是每个线程的吗? 我可以尝试直接使用 System.getProperties("myproperty") 代替环境 bean,但是如果组件注释拦截器没有获取该 bean 该怎么办? 虽然这个问题没有发生在我的本地,但它发生在更高的环境中。那么 jboss wildfly (16) 中的哪些配置可能会导致此问题以及我们如何尝试在本地复制该问题?
这更多是一个 Spring 问题,但如果这是专门关于获取属性的,您可以使用此静态方法直接使用 JDK 类来访问它
java.lang.System#getProperty(java.lang.String)
,而无需依赖 Spring 注入。