다른 특성에 의존하는 스프링 특성
봄콩의 @Value를 통해 참조할 수 있는 속성을 가지고 싶습니다. 다른 속성에 따라서만 생성할 수 있습니다.특히 저는 디렉토리의 파일 시스템 위치를 설명하는 속성을 가지고 있습니다.
myDir=/path/to/mydir
그리고 관례적으로 그 디렉토리에는 항상 내 파일이라고 불리는 파일이 있습니다.txt.
이제 저는 제 원두 안에 @Value 주석을 통해 디렉토리와 파일 모두에 액세스하고 싶습니다.때로는 Strings로, 때로는 java.io 으로 액세스하고 싶습니다.파일 및 때로는 org.springframework.core.io 으로 사용하기도 합니다.파일 시스템 리소스(그런데 이 리소스는 처음부터 매우 잘 작동합니다!).그러나 요구에 따라 Strings를 연결하는 것은 선택 사항이 아닙니다.
그래서 제가 당연히 할 수 있는 일은 둘 다 선언하는 것이지만 결국엔
myDir=/path/to/mydir
myFile/path/to/mydir/myfile.txt
난 그걸 피하고 싶습니다.
그래서 속성을 가져와 새로운 PropertySource로 추가하는 @Configuration 클래스를 고안했습니다.
@Autowired
private ConfigurableEnvironment environment;
@Value("${myDir}")
private void addCompleteFilenameAsProperty(Path myDir) {
Path absoluteFilePath = myDir.resolve("myfile.txt");
Map<String, Object> props = new HashMap<>();
props.put("myFile, absoluteFilePath.toString());
environment.getPropertySources().addFirst(new MapPropertySource("additional", props));
}
보시다시피, 저는 java.nio.file로 변환할 수 있는 Property Editor를 만들기도 했습니다.길.
문제는, 어떤 이유에서인지, 이것이 (IDE에서) "내 기계에서 작동하지만, 의도된 대상 환경에서 실행되지 않는다는 것입니다.자, 알겠습니다.
java.lang.IllegalArgumentException: Could not resolve placeholder 'myFile' in string value "${myFile}"
스프링은 특성을 조합할 수 있습니다.
myDir=/path/to/mydir
myFile=${myDir}/myfile.txt
기본값을 사용할 수도 있습니다.myFile
처음에 속성에 저장합니다.
속성 파일
myDir=/path/to/mydir
수업 중:
@Value("#{myFile:${myDir}/myfile.txt}")
private String myFileName;
스프링 식을 사용하여 속성을 참조할 수 있습니다.
예를 들어, 그것은.
query-parm=QueryParam1=
query-value=MyParamaterValue
이제 스프링빈에 묶으면서.
@Configuration
public class MyConfig {
@Value("${query-param}${query-value}")
private String queryString;
}
위의 코드는 변수 queryString에 QueryParam1=MyParamaterValue를 주입합니다.
언급URL : https://stackoverflow.com/questions/36136874/spring-properties-that-depend-on-other-properties
'IT' 카테고리의 다른 글
워드프레스 필터 여러 드롭다운 분류법으로 ajax를 통해 사용자 정의 필드를 표시합니다. (0) | 2023.10.15 |
---|---|
MariaDB - 기본 키가 특정 테이블의 조인에 사용되지 않는 이유는 무엇입니까? (0) | 2023.10.15 |
SELECT 문에서 다음 값 순서 지정 (0) | 2023.10.10 |
C의 하드코드 바이트 배열 (0) | 2023.10.10 |
mariadb docker 컨테이너가 부팅을 시작하지 않도록 교육하는 방법 (0) | 2023.10.10 |