spring boot 核心技術
spring boot ?核心技術
一. @PropertySource? @ConfigurationProperties? @ImportResource @Value 的用法
@Component
@ConfigurationProperties(prefix = "person")
@Data
@PropertySource(value = {"classpath:person.properties"})
public class Person {
@Value("${person.name}")
private String name;
private Integer age;
private List
private Map
private Dog dog;
}
@Data
public class Dog {
private String name;
private String age;
}
public class MailServiceTest extends MailserverApplicationTests {
@Autowired
private Person person;
@Test
public void getPerson(){
System.out.println(person);
}
}
@SpringBootApplication
@ImportResource(locations = {"classpath:beans.xml"})
public class MailserverApplication {
public static void main(String[] args) {
SpringApplication.run(MailserverApplication.class, args);
}
}
編寫 自定義的person.properties 文件
person.name=張無忌
person.age=18
person.list=1,2,3
person.map.k1=v1
person.map.k2=v2
person.dog.name=小狗
person.dog.age=7
執行測試方法getPerson? 看到控制臺輸出 person信息 ,說明 自動讀取 person.properties 文件 并 注入到 person 對象成功。
編寫 beans.xml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
@?ConfigurationProperties 自動 讀取 application.yml 或者 application.properties中的屬性 注入到 person中
@PropertySource? 用于指定自定義的 配置文件,如果沒有指定默認就是 讀取?application.properties
@ImportResource 用來導入 spring 的 xml 配置文件,使之生效
二 、spring.profiles.active用法
properties 配置方式 ,以 application-{name}.properties的格式命名
application.prtoperties 文件
server.port=8000
spring.profiles.active = prod #配置當前使用的為生產環境配置文件
application-prod.properties 生產環境配置文件
server-port=8001
application-dev.properties 開發環境配置文件
server.port=8002
yml 文檔塊配置方式
#yml 文檔塊的方式指定 使用 生產環境還是 開發 環境配置
server:
port: 8081
spring:
profiles:
active: dev
---
server:
port: 8082
spring:
profiles: pro
---
server:
port: 8083
spring:
profiles: dev
三種激活方式:
命令行 : --spring.profiles.active= dev
jvm參數 : -Dspring.profiles,active=dev
配置文件中配置: spring.profiles.active=dev
三. 配置文件加載優先級,由高到低
四. 自動配置原理
我們 可以在 application.properties 中 配置 debug=true,在啟動項目的時候就可以看到 詳細的 自動配置報告,可以看到 那些類自動 配置成功, 哪些類 沒有 自動配置成功。
五. 日志框架的使用,統一日志框架到slf4j+logback
每一個日志框架都有自己的實現,?配置文件還是做成日志框架實現自己本身的配置文件。
比如我們在開發一個項目的時候,使用 了 slf4j + logback 日志框架, 但是在 引入的其他框架里面使用了 commons-logging,
log4j ,java.util.logging 進行日志輸出,那么這個時候就需要 我們去 統一 日志 框架了,統一日志框架分三步走 :
(1)排除 項目中其他的日志框架依賴
(2)用上圖中的中間包來替換掉原有的日志框架
(3)導入slf4j 的 實現 logback
如果我們要引入其他框架,一定要把 這個框架默認的日志依賴移除掉,比如 spring 框架用的是commons-logging ,
spring boot? 使用的是 slf4j + logback , 以以下的方式 把 commons-logging 包 排除掉了(避免包沖突),因為用來替換的中間包 和 原來 被 替換掉的中間的包名 都是一樣的。
Spring Spring Boot
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。