1. 리소스에 새 .properties 파일을 생성합니다
리소스 디렉터리에 config 폴더를 생성한 다음 새 .properties 파일을 생성하여 해당 폴더에 넣습니다. 그림과 같이 Remote.properties
2. 구성 파일을 작성합니다.
remote.uploadFilesUrl=/resource/files/ remote.uploadPicUrl=/resource/pic/
3. 새 구성 클래스를 만듭니다. RemoteProperties.java
@Configuration @ConfigurationProperties(prefix = "remote", ignoreUnknownFields = false) @PropertySource("classpath:config/remote.properties") @Data @Component public class RemoteProperties { private String uploadFilesUrl; private String uploadPicUrl; }
그 중
@Configuration은 다음과 같음을 나타냅니다. 구성 클래스
@ ConfigurationProperties(prefix = "remote",ignoreUnknownFields = false) 이 주석은 속성을 바인딩하는 데 사용됩니다. prefix는 remote.properties 파일에서 "remote"인 속성의 접두사를 선택하는 데 사용됩니다.ignoreUnknownFields는 선언된 필드와 일치할 수 없는 속성이 있는 경우 SpringBoot에 예외를 발생시키도록 지시하는 데 사용됩니다.
@PropertySource("classpath:config/remote.properties") 구성 파일 경로
@Data getter&setter 메소드를 생성하는 데 사용되는 lombok 주석입니다.
@Component는 Bean으로 식별됩니다.
4. 어떻게 사용합니까?
구성 파일을 사용하려는 클래스의 테이블에 EnableConfigurationProperties(RemoteProperties.class)
주석을 달고 자동으로
@Autowired RemoteProperties remoteProperties;
remoteProperties.getUploadFilesUrl()을 메소드에 주입하여 구성 내용을 가져옵니다.
@EnableConfigurationProperties(RemoteProperties.class) @RestController public class TestService{ @Autowired RemoteProperties remoteProperties; public void test(){ String str = remoteProperties.getUploadFilesUrl(); System.out.println(str); } }
Str 여기 구성 파일의 "/resource/files/"가 있습니다.
PS: Spring-boot에서 구성 구성 파일을 읽는 두 가지 방법을 살펴보겠습니다
spring-Boot 기술을 아는 사람은 Spring-Boot의 핵심 구성 파일인 application.properties를 알아야 합니다. , 사용자 정의 구성 파일의 정보에 주석 달기를 사용할 수도 있습니다.
Spring-Boot가 구성 파일을 읽는 방법:
1. 핵심 구성 파일 정보 application.properties의 내용을 읽습니다.
핵심 구성 파일은 리소스 루트의 application.properties 또는 application.yml 구성을 참조합니다. 디렉터리 파일에는 이 두 가지 구성 파일을 읽는 방법이 두 가지가 있으며 둘 다 상대적으로 간단합니다.
핵심 구성 파일 application.properties의 내용은 다음과 같습니다.
test.msg=Hello World SpringBoot
방법 1: @Value 메서드 사용(일반적으로 사용됨)
package Solin.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class WebController { @Value("${test.msg}") private String msg; @RequestMapping("/index1") public String index1(){ return "方式一:"+msg; } }
참고: @Value의 ${}에는 키 이름이 포함되어 있습니다. 핵심 구성 파일. Controller 클래스에 @RestController를 추가하면 @ResponseBody를 뷰 메서드에 추가하는 것과 유사하게 이 클래스의 모든 뷰가 JSON으로 표시됩니다.
http://localhost:8088/index1에 액세스하면 다음이 표시됩니다. "방법 1: Hello World SpringBoot"
방법 2: 환경 방법 사용
package Solin.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class WebController { @Autowired private Environment env; @RequestMapping("/index2") public String index2(){ return "方式二:"+env.getProperty("test.msg"); } }
참고: 이 방법은 종속성 주입 Evnironment에 의해 완료됩니다. 생성 @Autowired 주석을 멤버 변수 private Environment env에 추가하여 종속성 주입을 완료한 다음 env.getProperty("key name")를 사용하여 해당 값을 읽습니다.
http://localhost:8088/index2에 액세스하면 다음이 표시됩니다. "방법 2: Hello World SpringBoot"
2. 다음과 같은 사용자 정의 구성 파일 정보를 읽습니다.author.properties
코어 파일을 손상시키십시오. 그러나 사용자 정의된 구성 정보가 필요합니다. 일반적으로 이 사용자 정의된 정보를 저장하려면 사용자 정의 구성 파일이 선택됩니다. 여기에서 리소스 디렉토리에 구성 파일 작성자.properties
resources/author.properties를 작성하십시오. 내용은 다음과 같습니다.
author.name=Solin author.age=22
구성을 관리하는 엔터티 클래스 만들기:
package Solin.controller; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; //加上注释@Component,可以直接在其他地方使用@Autowired来创建其实例对象 @Component @ConfigurationProperties(prefix = "author",locations = "classpath:author.properties") public class MyWebConfig{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
참고:
@ConfigurationProperties 주석에는 두 가지 속성이 있습니다.
locations: 구성 파일의 위치를 지정합니다.
접두사: 구성 파일에 키 이름을 지정합니다. 접두사(여기서 구성 파일의 모든 키 이름은 작성자로 시작합니다.)
@Component를 사용하면 클래스를 다른 위치에서 사용할 수 있습니다. 즉, @를 사용합니다. 인스턴스를 생성하기 위한 Autowired 주석입니다.
테스트 컨트롤러 만들기
package Solin.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class ConfigController { @Autowired private MyWebConfig conf; @RequestMapping("/test") public @ResponseBody String test() { return "Name:"+conf.getName()+"---"+"Age:"+conf.getAge(); } }
참고: @Component 주석이 Conf 클래스에 추가되었으므로 여기에서 @Autowired를 직접 사용하여 인스턴스 개체를 만들 수 있습니다.
http://localhost:8088/test에 접속하면 "이름:Solin---나이:22"
이 표시됩니다.위 내용은 SpringBoot에서 사용자 정의 속성 구성 파일을 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!