Merge pull request #6426 from PranayVJain/BAEL-2719
BAEL-2719: Spring Boot - Properties file outside jar
This commit is contained in:
commit
aaa65c19d2
@ -95,6 +95,15 @@
|
|||||||
|
|
||||||
<build>
|
<build>
|
||||||
<finalName>${project.artifactId}</finalName>
|
<finalName>${project.artifactId}</finalName>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
<excludes>
|
||||||
|
<exclude>**/conf.properties</exclude>
|
||||||
|
</excludes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
@ -110,6 +119,29 @@
|
|||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-failsafe-plugin</artifactId>
|
||||||
|
<version>2.18</version>
|
||||||
|
<executions>
|
||||||
|
<!-- Invokes both the integration-test and the verify goals of the Failsafe
|
||||||
|
Maven plugin -->
|
||||||
|
<execution>
|
||||||
|
<id>integration-tests</id>
|
||||||
|
<goals>
|
||||||
|
<goal>integration-test</goal>
|
||||||
|
<goal>verify</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<!-- Skips integration tests if the value of skip.integration.tests
|
||||||
|
property is true -->
|
||||||
|
<includes>
|
||||||
|
<include>**/ExternalPropertyFileLoaderIntegrationTest.java</include>
|
||||||
|
</includes>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
|
@ -0,0 +1,43 @@
|
|||||||
|
package com.baeldung.properties;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class ConfProperties {
|
||||||
|
|
||||||
|
@Value("${url}")
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
@Value("${username}")
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
@Value("${password}")
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
public String getUrl() {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrl(String url) {
|
||||||
|
this.url = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPassword() {
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPassword(String password) {
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.baeldung.properties;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
|
||||||
|
import org.springframework.core.io.FileSystemResource;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class ExternalPropertyConfigurer {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
|
||||||
|
PropertySourcesPlaceholderConfigurer properties = new PropertySourcesPlaceholderConfigurer();
|
||||||
|
properties.setLocation(new FileSystemResource("src/main/resources/external/conf.properties"));
|
||||||
|
properties.setIgnoreResourceNotFound(false);
|
||||||
|
return properties;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.baeldung.properties;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||||
|
|
||||||
|
@SpringBootApplication
|
||||||
|
public class ExternalPropertyFileLoader {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
ConfProperties prop;
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
new SpringApplicationBuilder(ExternalPropertyFileLoader.class).build()
|
||||||
|
.run(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
4
spring-boot-ops/src/main/resources/external/conf.properties
vendored
Normal file
4
spring-boot-ops/src/main/resources/external/conf.properties
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
url=jdbc:postgresql://localhost:5432/
|
||||||
|
username=admin
|
||||||
|
password=root
|
||||||
|
spring.main.allow-bean-definition-overriding=true
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.baeldung.properties;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
|
|
||||||
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
|
@SpringBootTest(classes = ExternalPropertyFileLoader.class)
|
||||||
|
public class ExternalPropertyFileLoaderIntegrationTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
ConfProperties props;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenExternalisedPropertiesLoaded_thenReadValues() throws IOException {
|
||||||
|
assertEquals("jdbc:postgresql://localhost:5432/", props.getUrl());
|
||||||
|
assertEquals("admin", props.getUsername());
|
||||||
|
assertEquals("root", props.getPassword());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user