我有环境env.getproperty的问题,env找不到本地属性,但它找到了系统属性。我不太了解这一点,我需要解决它。请帮我。 附上我的代码及其配置。
Controllers.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<!-- Scans within the base package of the application for @Components to
configure as beans -->
<mvc:annotation-driven />
<context:component-scan base-package="com.mret.client.controller" />
<context:component-scan base-package="com.mret.client.security" />
<context:property-placeholder location="classpath*:paremeters.properties" />
Paremeters.properties:
url.services.search=http://localhost:8080/mretcore/search
url.services.orderdetail=http://localhost:8080/mretcore/orderdetail?orderid=
控制器:
@Controller
public class OrdersController {
RestClient restClient = new RestClientImpl();
@Autowired
private Environment env;
String url = env.getProperty("url.services.search");
etc....}
答案 0 :(得分:0)
property-placeholder不会将属性放入env。它适用于在OS级别设置的变量。
更好地使用System.getProperty(“property_name”),其中包括env,JVM属性,传递到java命令行的-D属性以及yes - 来自property-placeholder的属性。
你也可以考虑使用你的url作为bean属性而不是显式地获取它,而是通过像${url.services.search}
这样的spring bean属性定义
而不是在代码中具有属性名称。一段时间后,很难找到什么属性加载的地方。这是更好的方法......