文章目录
- Spring Boot读取yml或者properties配置信息
- 方法一:@Value获取基本信息,适用于少量信息
- 方法二:通过注解@ConfigurationProperties(prefix = "spring.datasource")
- 方法三:通过api Environment
Spring Boot读取yml或者properties配置信息
方法一:@Value获取基本信息,适用于少量信息
package com.geekmice.springbootselfexercise;import com.geekmice.springbootselfexercise.config.DataSourceProperties;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.env.Environment;
import org.springframework.test.context.junit4.SpringRunner;@Slf4j
@SpringBootTest(classes = SpringBootSelfExerciseApplication.class)
@RunWith(SpringRunner.class)
class SpringBootSelfExerciseApplicationTests {@Value("${server.port}")private String port;@Testvoid contextLoads() {log.info("端口号:【{}】",port);}}
方法二:通过注解@ConfigurationProperties(prefix = “spring.datasource”)
编写配置类
package com.geekmice.springbootselfexercise.config;import com.sun.media.jfxmedia.logging.Logger;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;/*** @BelongsProject: spring-boot-self-exercise* @BelongsPackage: com.geekmice.springbootselfexercise.config* @Author: pingmingbo* @CreateTime: 2023-08-05 23:12* @Description: TODO* @Version: 1.0*/@ConfigurationProperties(prefix = "spring.datasource")
@Component
@Data
public class DataSourceProperties {private String username;private String password;private String url;private String driverClassName;}
开始使用
package com.geekmice.springbootselfexercise;import com.geekmice.springbootselfexercise.config.DataSourceProperties;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.env.Environment;
import org.springframework.test.context.junit4.SpringRunner;@Slf4j
@SpringBootTest(classes = SpringBootSelfExerciseApplication.class)
@RunWith(SpringRunner.class)
class SpringBootSelfExerciseApplicationTests {@Autowiredprivate DataSourceProperties dataSourceProperties;@Testvoid contextLoads() {String username = dataSourceProperties.getUsername();String password = dataSourceProperties.getPassword();String url = dataSourceProperties.getUrl();String driverClassName = dataSourceProperties.getDriverClassName();log.info("用户名:【{}】",username);log.info("密码:【{}】",password);log.info("地址URL:【{}】",url);log.info("驱动类:【{}】",driverClassName);}
}
方法三:通过api Environment
package com.geekmice.springbootselfexercise;import com.geekmice.springbootselfexercise.config.DataSourceProperties;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.env.Environment;
import org.springframework.test.context.junit4.SpringRunner;@Slf4j
@SpringBootTest(classes = SpringBootSelfExerciseApplication.class)
@RunWith(SpringRunner.class)
class SpringBootSelfExerciseApplicationTests {@Autowiredprivate Environment environment;@Testpublic void t1(){String username = environment.getProperty("spring.datasource.username");String password = environment.getProperty("spring.datasource.password");String url = environment.getProperty("spring.datasource.url");String driverClassName = environment.getProperty("spring.datasource.driver-class-name");log.info("用户名:【{}】",username);log.info("密码:【{}】",password);log.info("地址URL:【{}】",url);log.info("驱动类:【{}】",driverClassName);}
}