环境env.getproperty无法正常工作

时间:2017-11-17 18:57:37

标签: java spring eclipse configuration

我有环境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....}

enter image description here

1 个答案:

答案 0 :(得分:0)

  1. property-placeholder不会将属性放入env。它适用于在OS级别设置的变量。

  2. 更好地使用System.getProperty(“property_name”),其中包括env,JVM属性,传递到java命令行的-D属性以及yes - 来自property-placeholder的属性。

  3. 你也可以考虑使用你的url作为bean属性而不是显式地获取它,而是通过像${url.services.search}这样的spring bean属性定义 而不是在代码中具有属性名称。一段时间后,很难找到什么属性加载的地方。这是更好的方法......