Apache Maven과 Spring을 사용하고 있습니다. src/main/resources 폴더에는 속성 파일이 있습니다. 이러한 속성 값은 다른 값을 가질 수 있습니다.Java 메인 클래스 Apache Maven
PropertyPlaceholderConfigurer를 사용하고 있습니다.
@Configuration
public class ResourceConfig {
@Bean
public PropertyPlaceholderConfigurer properties() {
PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
ppc.setIgnoreResourceNotFound(true);
ppc.setLocations(new ClassPathResource[] {new ClassPathResource("propertiesFile"), new ClassPathResource("myapp.properties")});
return ppc;
}
}
나는 런타임에이 값을 대체 :
@Configuration
public class DataSourceConfig {
@Value("${jdbc.url}")
private String jdbcUrlDefault;
// there are more @Value
}
이 그냥 샘플입니다. 주된 방법이 있습니다 :
public static void main(String[] args) {
// accept a properties file and override those values defined in DataSourceConfig class
ApplicationContext application = new AnnotationConfigApplicationContext("packaageThatContainsConfiguration");
DataSourceConfig dataSourceConfig = (DataSourceConfig) application.getBean("dataSourceConfig");
System.out.println(dataSourceConfig.getJdbcUrlDefault());
}
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.Main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<finalName>server-app</finalName>
</build>
Apache Maven이 응용 프로그램을 빌드 할 때 등록 정보 파일은 클래스 경로에 있습니다. 제공된 특성 파일로 특성 값을 대체하려고합니다.
주 프로그램을 통해 속성 파일을 받아들이려고하므로 Spring 측에서 PropertyPlaceholderConfigurer를 시작합니다.
나는 원하는 값을 포함하는 특성 파일을 가지고 있습니다.
내가 명령 프롬프트에서 다음 명령을 실행하면 :
java -jar server-app-jar-with-dependencies.jar -D myapp.properties "C:\Users\user\Desktop\myapp.properties"
그것은 SRC/메인/자원/myapp.properties에 배치됩니다 원래 값을 출력은
나는를 인쇄 할 값은 Desktop myapp.properties에 있습니다.
내가 뭘 잘못하고 있니?
가고, http://stackoverflow.com/questions/4097614/spring-configuration-with-system-property 이 나는이 대답을 생각하지 않는다 – Ernie
귀하의 질문에 대답해야한다 내 질문. 나는 아직도 내가 잘못하고있는 것을 이해하지 못한다. 몇 가지 예를 제공해 주시겠습니까? – user
Maven을 어린이의 손이 닿지 않는 곳에 두십시오! 그것은 독성 일 수있다! – UDPLover