SpringBoot 讀取 yml 配置的幾種方式
阿新 • • 發佈:2022-05-24
幾種資料格式的表示方式
1.普通的值(數字,字串,布林)
expire: 60 # 方便測試,設成 60 秒
2.物件、Map (屬性和值) (鍵值對) 不支援tab,使用空格
vipsoft: api-url: http://xxxx file-path: /temp
3.陣列 (List、Set)
cloud: gateway: routes: - id: push-service uri: http://localhost:8081 predicates: - Path=/push/** filters:- name: AuthorizationFilter # 使用者鑑權 - id: express-service uri: http://localhost:8082 predicates: - Path=/express/** filters: - name: AuthorizationFilter # 使用者鑑權
獲取值的方法
application.yml
vipsoft: jwt: # 加密祕鑰 secret: d3d3LnZpcHNvZnQuY29tLmNuLjQ3MjYyOTQ3LnNwcmluZyBib290 # token有效時長,單位秒 expire:60 # 方便測試,設成 60 秒 header: token
第一種 @value 如果yml裡面沒有對應的配置,啟動時會報異常
@Value("${vipsoft.jwt.secret}") public String secret;
第二種 @ConfigurationProperties
@ConfigurationProperties(prefix = "vipsoft.jwt") @Component public class JwtUtils { private Logger logger = LoggerFactory.getLogger(getClass());private String secret; private long expire; private String header; //後面程式碼省略,詳見 https://www.cnblogs.com/vipsoft/p/13237172.html Spring Boot JWT 使用者認證 }
第三種 @Environment
@SpringBootTest class AIReportTests { Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired Environment env; @Test void ymlTest() { String s = env.getProperty("vipsoft.jwt.secret"); logger.info(s); } }