Java 未在特定服务器上填充Spring配置属性
我在SpringMVC项目中对此进行了初始化,但基本URL始终为空。在其他三台服务器上,它工作正常。这个类和静态变量的初始化是否有问题 BaseClass.javaJava 未在特定服务器上填充Spring配置属性,java,spring,spring-mvc,static,Java,Spring,Spring Mvc,Static,我在SpringMVC项目中对此进行了初始化,但基本URL始终为空。在其他三台服务器上,它工作正常。这个类和静态变量的初始化是否有问题 BaseClass.java public final String BASE_URL = SystemConfiguration.restHost; public static String restHost; public void setRestHost(String restHost) { SystemConfiguration.restHo
public final String BASE_URL = SystemConfiguration.restHost;
public static String restHost;
public void setRestHost(String restHost) {
SystemConfiguration.restHost = restHost;
}
SystemConfiguration.java
public final String BASE_URL = SystemConfiguration.restHost;
public static String restHost;
public void setRestHost(String restHost) {
SystemConfiguration.restHost = restHost;
}
applicationContext.xml
${restHost:https://example.com}
这毕竟是Java。静态字段在加载和初始化它们所属的类时初始化
如果在应用程序加载应用程序上下文并从SystemConfiguration
bean设置字段之前加载了BaseClass
,则BASE\u URL
将初始化为null
,因为SystemConfiguration.restHost
默认也是null
你真的应该考虑改变你的设计。没有理由有任何
静态字段。Spring可以将所有配置值作为bean或bean值处理。这毕竟是Java。静态字段在加载和初始化它们所属的类时初始化
如果在应用程序加载应用程序上下文并从SystemConfiguration
bean设置字段之前加载了BaseClass
,则BASE\u URL
将初始化为null
,因为SystemConfiguration.restHost
默认也是null
你真的应该考虑改变你的设计。没有理由有任何静态字段。Spring可以将所有配置值作为bean或bean值处理。这毕竟是Java。静态字段在加载和初始化它们所属的类时初始化
如果在应用程序加载应用程序上下文并从SystemConfiguration
bean设置字段之前加载了BaseClass
,则BASE\u URL
将初始化为null
,因为SystemConfiguration.restHost
默认也是null
你真的应该考虑改变你的设计。没有理由有任何静态字段。Spring可以将所有配置值作为bean或bean值处理。这毕竟是Java。静态字段在加载和初始化它们所属的类时初始化
如果在应用程序加载应用程序上下文并从SystemConfiguration
bean设置字段之前加载了BaseClass
,则BASE\u URL
将初始化为null
,因为SystemConfiguration.restHost
默认也是null
你真的应该考虑改变你的设计。没有理由有任何静态字段。Spring可以将所有配置值作为bean或bean值来处理。发现这与将静态变量分配给最终变量有关。我们只是在代码中直接引用了SystemConfiguration.restHost
,一切正常。我假设SpringBean在此服务器上的加载顺序与其他服务器上的加载顺序不同。发现这与将静态变量分配给最终变量有关。我们只是在代码中直接引用了SystemConfiguration.restHost
,一切正常。我假设SpringBean在此服务器上的加载顺序与其他服务器上的加载顺序不同。发现这与将静态变量分配给最终变量有关。我们只是在代码中直接引用了SystemConfiguration.restHost
,一切正常。我假设SpringBean在此服务器上的加载顺序与其他服务器上的加载顺序不同。发现这与将静态变量分配给最终变量有关。我们只是在代码中直接引用了SystemConfiguration.restHost
,一切正常。我假设SpringBean在这台服务器上的加载顺序与其他服务器上的加载顺序不同。在任何情况下,您认为在其他三台服务器上,spring加载期间的初始化是正确的吗,在这台服务器上,由于某种原因,它不是吗?@MikeFlynn部署之间有什么不同?没有什么应该是不同的。我无法访问服务器,但没有人告诉我。我可以比较他们给我们的日志和我的日志,看看加载那个类是否有区别,但是因为它是固定的,我不再喜欢它了哈哈。当我说没有区别时,他们的开发服务器也没有区别。我们也有自己的开发服务器和本地环境,而且运行良好。@MikeFlynn我看不出还有什么其他功能。它是一个最终变量。只能分配一次。如果是null
,则SystemConfiguration.restHost
是null
。如果为null
,则表示尚未加载ApplicationContext
。请考虑使用诸如<代码> @值>代码>。在任何情况下,您是否相信在其他三个服务器中,在加载Spring期间初始化是正确的,并且在这个服务器上,由于某种原因,它不是No?@ MikeFlynn。部署之间有什么不同?什么也不应该是不同的。我无法访问服务器,但没有人告诉我。我可以比较他们给我们的日志和我的日志,看看加载那个类是否有区别,但是因为它是固定的,我不再喜欢它了哈哈。当我说没有区别时,他们的开发服务器也没有区别。我们也有自己的开发服务器和本地环境,而且运行良好。@MikeFlynn我看不出还有什么其他功能。它是一个最终变量。只能分配一次。如果它是null
,则SystemConf