spring boot 는 application.properties 를 사용 하여 외부 설정 을 진행 합 니 다.
spring boo 는 기본적으로 많은 환경 변 수 를 설정 하 였 습 니 다.예 를 들 어 tomcat 의 기본 포트 는 8080 이 고 프로젝트 의 contextpath 는'/'등 입 니 다.여기 서 spring boot 의 기본 설정 정 보 를 볼 수 있 습 니 다http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config
spring boot 는 application.properties 파일 을 사용자 정의 한 다음 아래 에 놓 아 spring boot 의 환경 변 수 를 다시 쓰 거나 환경 변 수 를 정의 할 수 있 습 니 다.
현재 디 렉 터 리 의"/config"하위 디 렉 터 리 아래현재 디 렉 터 리 아래
1 시 와 2 시 는 생산 환경 에서 실행 가능 한 jar 패키지 로 포장 하기에 적합 합 니 다.
"현재 디 렉 터 리"는 demo.jar 패키지 의 디 렉 터 리 에서 설정 파일 을 적용 하려 면 자바-jar demo.jar 명령 을 사용 할 때 demo.jar 패키지 의 경로 에서 이름 을 사용 해 야 합 니 다.
3 시 와 4 시 는 개발 환경 에 적합 합 니 다.
네 곳 에 동시에 프로필 이 있다 면 프로필 의 우선 순 위 는 1 부터 4 까지 입 니 다.
프로필 을 사용 하면 spring boo 가 시 작 될 때 설정 정 보 를 spring 용기 에 자동 으로 읽 고 spring boot 의 기본 설정 을 덮어 씁 니 다.그러면 이 설정 정 보 를 어떻게 읽 고 설정 합 니까?
1.명령 행 을 통 해 환경 변 수 를 재 작성 하고 설정 합 니 다.우선 순위 가 가장 높 습 니 다.예 를 들 어 아래 명령 을 통 해 spring boot 에 tomcat 가 들 어 있 는 서비스 포트 를 다시 쓸 수 있 습 니 다."="양쪽 에 빈 칸 이 없 도록 주의 하 십시오.
java -jar demo.jar --server.port=9000
여러 변 수 를 설정 하려 면 json 의 형식 문자열 로 설정 할 수 있 습 니 다.
java -jar demo.jar --spring.application.json='{"foo":"bar"}'
2.@value 주 해 를 통 해 읽 기
@RestController
@RequestMapping("/task")
public class TaskController {
@Value("${connection.remoteAddress}") private String address;
@RequestMapping(value = {"/",""})
public String hellTask(@Value("${connection.username}")String name){
return "hello task !!";
}
}
3.Environment 인 터 페 이 스 를 통 해 얻 을 수 있 습 니 다.인 터 페 이 스 를 넣 기만 하면 됩 니 다.
@RestController
@RequestMapping("/task")
public class TaskController {
@Autowired Environment ev ;
@Value("${connection.remoteAddress}") private String address;
@RequestMapping(value = {"/",""})
public String hellTask(@Value("${connection.username}")String name){
String password = ev.getProperty("connection.password");
return "hello task !!";
}
}
4.도구 클래스 를 사용자 정의 하여 얻 을 수 있 습 니 다.이 방식 의 관건 은 설정 파일 정 보 를 읽 는 것 입 니 다.사용자 정의 설정 정보 에 적합 합 니 다.spring 용기 의 기본 설정 정 보 는 읽 을 수 없습니다.
@Component
public class SystemConfig {
private static Properties props ;
public SystemConfig(){
try {
Resource resource = new ClassPathResource("/application.properties");//
props = PropertiesLoaderUtils.loadProperties(resource);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
*
* @param key
* @return
*/
public static String getProperty(String key){
return props == null ? null : props.getProperty(key);
}
/**
*
* @param key key
* @param defaultValue value
* @return
*/
public static String getProperty(String key,String defaultValue){
return props == null ? null : props.getProperty(key, defaultValue);
}
/**
* properyies
* @return
*/
public static Properties getProperties(){
return props;
}
}
// ,
String value = SystemConfig.getProperty("key");
5.${...}을 이용 하여 application.properties 에서 변 수 를 참조 할 수 있 습 니 다.
myapp.name=spring
myapp.desc=${myapp.name} nice
6.application.properties 에서 무 작위 변 수 를 설정 할 수 있 습 니 다.RandomValue PropertySource 류 를 사용 합 니 다.
my.secret=${random.value}
my.number=${random.int}
my.bignumber=${random.long}
my.number.less.than.ten=${random.int(10)}
my.number.in.range=${random.int[1024,65536]}
간단 한 프로필 사용 은 여기까지 쓰 고 Profiles 와@ConfigurationProperties 같은 다른 고급 용법 을 살 펴 보 세 요.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.