>  기사  >  Java  >  Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까?

Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까?

WBOY
WBOY앞으로
2023-05-12 22:13:041535검색

    1. 구성 파일의 역할

    구성 파일은 매우 중요합니다. 전체 프로젝트의 모든 중요한 데이터는 구성 파일에 구성됩니다. 예:

    • 데이터베이스 연결 정보(사용자 이름 및 비밀번호 설정)

    • 프로젝트 시작을 위한 포트

    • 타사 시스템 호출을 위한 비밀 키 정보

    • 문제를 감지하고 찾을 수 있는 비정상적인 로그(로그 수준 및 지속성)

    구성 파일이 없으면 이 정보를 구성할 수 없고 데이터베이스 연결이 불가능하며 로그를 볼 수 없는 등의 문제가 발생합니다. 이러한 문제는 Spring Boot 프로젝트에 매우 중요하므로 구성 파일은 특히 중요합니다!

    2. 구성 파일의 형식

    구성 파일의 분류는 일반적으로 다음과 같습니다.

    • 시스템 구성 파일(시스템에서 정의), 예: 연결 문자열, 로그 관련 설정

    • 사용자가 정의

    Spring Boot 구성 파일에는 주로 두 가지 형식이 있습니다.

    • .properties

    • .yml

    Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까?

    두 가지 형식이 있으며 여기에는 이렇게 작성해야 합니다. 그렇지 않으면 오류가 보고됩니다(컨벤션이 구성보다 큼). 두 형식 모두 관련 구성 파일을 설정할 수 있습니다. 다른 두 형식의 작성 방법도 다릅니다. 관련된 소개가 있을 것이며 이 두 가지 형식이 공존할 수도 있습니다. 둘 다 구성되면 여기의 구성은 속성의 구성을 사용하고 yml의 구성을 무시합니다. 따라서 두 형식을 동시에 사용하는 것은 권장되지 않습니다. 그런 다음 프로젝트에서 동일한 형식을 사용하십시오!

    3. 속성 구성 파일에 대한 설명

    속성 구성 파일은 이전 구성 파일 형식이며 Spring Boot 프로젝트의 기본 구성 파일이기도 합니다. 다음은 속성 구성 파일에 대한 자세한 소개입니다. . 속성의 기본 구문

    속성은 주로 키-값 쌍(키=값)으로,

    Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까? 형식과 유사합니다(중간에 공백도 쓰지 말고, 추가 공백도 쓰지 마세요)

    If 커스텀 구성 파일이고, key=value 형식이기도 하고, 직접 작성해야 합니다. 이 파일을 읽으려면 정의한 키 값만 사용하여 값을 얻을 수 있습니다!

    2. 구성 파일 읽기

    이 문제는 주석을 사용하여 해결할 수도 있습니다. 여기에서는 @Value 주석과 ${} 형식을 사용하여 읽을 수 있습니다.

    @Controller
    public class Test {
        @Value("${server.port}") //读取配置项
        private  String port;
        @ResponseBody  //返回一个非静态页面的数据
        @RequestMapping("/func")  //设置路由地址
        public String  func(){
            return "port: " + port;
        }
    }

    그런 다음 다음을 통해 http://localhost를 검색하세요. 페이지 :8080/func는 관찰된 포트 번호에 따라 다릅니다. 읽기:

    Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까? @Value를 사용하면 하나의 구성 파일만 읽을 수 있습니다. 여러 개를 읽으려면 몇 개 더 작성해야 합니다. @ 값 태그이면 충분합니다.

    3. 속성의 단점

    속성에서는 키=값 형식을 사용합니다. 동일한 키 아래의 값인 경우 키 값을 반복해서 써야 하므로 매우 중복됩니다. 이 문제를 해결하려면 yml 구성 파일을 사용해야 합니다

    IV.yml 구성 파일에 대한 설명

    yml은 구성 파일의 또 다른 형식이며, yml은 읽기 쉽고 이해하기 쉽고 데이터 직렬화를 표현하는 데 사용되는 형식입니다. yml의 구성은 고급 언어와 매우 유사하며, yml의 가장 큰 장점은 python, golang 등 언어 전반에 걸쳐 사용할 수 있다는 점이며, 둘 다 yml을 구성 파일로 사용할 수 있습니다. 다음은 yml 구성 파일에 대한 자세한 소개입니다.

    Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까?1. yml의 기본 구문

    yml의 기본 구문은 다음과 같습니다. key: value 키와 값 사이에는 공백이 필요합니다.

    과 유사하게 생략할 수 없습니다. 위의 연결 데이터베이스 구성을 이 구문으로 작성하면 훨씬 더 편리합니다.

    추가: yml의 작은따옴표 및 큰따옴표에 대한 질문: 큰따옴표가 다음과 같은 경우 yml에서 사용하면 다음과 같습니다(원래) 의미 실행, 추가되지 않거나 작은따옴표가 추가된 경우 n -> n(이스케이프) 처리와 같이 문자열의 특수 문자가 기본적으로 이스케이프됩니다. . Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까?

    2. 구성 파일 읽기

    yml 구성 파일을 읽는 방법도 모두 @Value 주석과 ${} 형식을 사용합니다. 다른 yml 장소를 살펴보세요!

    3.配置对象

    在yml里面还是可以配置对象的:

    Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까?

    另外也可以使用行内写法:

    Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까?

    而想要读取到这个对象的话就不能再使用@Value注解了,这里需要借助@ConfigurationProperties来读取:

    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    @Data
    @ConfigurationProperties(prefix = "student") //读取配置文件的对象
    @Component
    public class Student {
        private int id;
        private String name;
        private int age;
    }

    然后读取对象,就可以直接进行注入了:

    @Controller
    public class Test {
        @Autowired
        private Student student;
        @ResponseBody
        @RequestMapping("/getstudent")
        public String getStudent(){
            return "student: " + student;
        }
    }

    然后通过浏览器搜索http://localhost:8080/getstudent就可以得到对象内容了:

    Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까?

    4.配置集合

    在yml里面也是可以配置集合的:

    Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까?

    同样行内写法也是可以的:

    Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까?

    而要获取到集合的话,和获取对象是差不多的,也是通过@ConfigurationProperties来获取:

    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    import java.util.List;
    @Data
    @ConfigurationProperties(prefix = "dbtypes")
    @Component
    public class ListConfig {
        private List<String> name;
    }

    读取集合:

    @Controller
    public class Test {
        @Autowired
        private ListConfig listConfig;
        @ResponseBody
        @RequestMapping("/getlist")
        public String getList(){
            return "name:" + listConfig.getName();
        }
    }

    然后通过浏览器搜索http://localhost:8080/getlist就可以得到对象内容了:

    Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까?

    五.properties和yml的区别

    • properties是以key=value的形式配置的键值对类型配置文件,而yml是以key: value的形式配置的键值对类型配置文件;

    • properties是早期且系统默认的配置文件格式,但配置存在一定的冗余数据,而yml可以更好的解决数据冗余问题;

    • yml通用性更好,支持多语言;

    • yml支持更多的数据类型;

    위 내용은 Spring Boot 구성 파일의 기능과 세부 사항은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제