Spring外部配置

时间:2016-07-07 07:41:52

标签: java spring

我是Spring的新手,在我的项目中,我使用属性文件来读取ip配置。

@Configuration
@PropertySource("classpath:ipaddress.properties")

在我的属性文件中

ip=http://192.168.1.199:8888

属性文件存在于我的项目中(com.test ....)但是我想从我的项目中删除并从jboss config或其他地方读取其他地方的ip地址。如果有人可以指导我这一点,将不胜感激。提前谢谢。

4 个答案:

答案 0 :(得分:1)

你可以尝试使用类似的东西:

@PropertySources({
    @PropertySource("classpath:application.properties"),
    @PropertySource(value = "file:config/application.properties", ignoreResourceNotFound = true)

})

file:config/application.properties应该是外部application.properties文件的位置。

答案 1 :(得分:0)

如果你正在使用Spring Boot,那么Externalized Configuration会给你并想出如何做到这一点。

就我而言,我的项目部署在Centos 7服务器上。我这样做了:

java -jar <spring-application>.jar --spring.config.location=file:/path-to-property-file/application.properties

答案 2 :(得分:0)

你正在使用maven吗?如果是的话,这可能是将它放入Maven配置文件中的好主意,如下所示:

的pom.xml

...
<profiles>
  <profile>
      <id>dev</id>
      <properties>
          <ip.address>http://192.168.1.199:8888</ip.address>
      </properties>
  </profile>
  <profile>
      <id>test</id>
      <properties>
          <ip.address>http://10.34.65.1:8888</ip.address>
      </properties>
  </profile>
<profiles>
...
<properties>
    <resource.directory>src/main/resources</resource.directory>
</properties>
...
<build>
    <resources>
        <resource>
            <directory>${resource.directory}</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>
...

ipaddress.properties:

ip=${ip.address}

Maven将在构建到ipaddress.properties时放置活动配置文件的IP地址 - 这样您就可以在没有代码或属性更改的情况下更改ips - 只需设置活动配置文件。

答案 3 :(得分:0)

非常感谢你的帮助。我终于在我的独立中使用JNDI得到了答案,如下所示:

<subsystem xmlns="urn:jboss:domain:naming:1.2">
    <bindings>
        <simple name="java:/ip" value=" http://123.456.789.123:4567"/>
    </bindings>
</subsystem>

我在代码中删除了

@PropertySource("classpath:ipaddress.properties")