## Profile 配置 Profile 是 Spring 用來針對不同的環境對不同的配置提供支持的,全局的 Profile 配置使用 `application-{profile}.properties` (如 `application-prod.properties`) 通過在 `applica... ...
Profile 配置
Profile 是 Spring 用來針對不同的環境對不同的配置提供支持的,全局的 Profile 配置使用 application-{profile}.properties
(如 application-prod.properties
)
通過在 application.properties
中設置 spring.profiles.active=prod
來指定活動的 Profile.
伺服器常用配置
server.address # 伺服器 ip 綁定地址,如果你的主機上有多個網卡,可以綁定一個 ip 地址
server.session.timeout #會話過期時間,以秒為單位
server.error.path # 伺服器出錯後的處理路徑 /error
server.servlet.contextpath # springb boot 應用的上下文
server.port # spring boot 應用監聽埠
Tomcat 相關配置
server.tomcat.accesslog.enabled=false # 打開tomcat訪問日誌
server.tomcat.accesslog.directory=logs # 訪問日誌所在的目錄
server.tomcat.accept-count= # 允許http請求緩存到請求隊列的最大個數,預設不限制
server.tomcat.max-connections= # 最大連接數,預設不限制,如果一旦連接數到達,剩下的連接將會保存到請求緩存隊列里
server.tomcat.max-thread= # 最大工作線程數
server.tomcat.max-http-post-size= # http post 內容最大長度,預設不限制
日誌配置
預設情況下,不需要對日誌做任何配置就可以使用,Spring Boot 使用 LogBack 作為日誌的實現:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory
...
public class HelloWorldController {
private static final Logger log = LoggerFactory.getLogger(HelloWorldController.class);
....
}
日誌級別有:ERROR、WARN、INFO、DEBUG和TRACE;
預設情況下,INFO級別以上的信息才會列印到控制台,可以自己設定日誌輸出級別
logging.level.root=info
# org 包下的日誌級別
logging.level.org=warn
logging.level.com.yourcorp=debug
# Spring Boot 預設並未輸出日誌到文件,可以設置
logging.file=my.log
# 日誌輸出到my.log 中,位於Spring Boot 應用運行的當前目錄,也可以指定日誌存放的路徑
logging.path=e:/temp/log
無論使用哪種方式記錄日誌文件,當日之達到10MB的時候會自動重新生成一個新日誌文件。
配置瀏覽器顯示 ico
Spring Boot 的 webapp 啟動後,通過瀏覽器訪問,瀏覽器會顯示一個綠色的樹葉圖標。如果需要換成自己的圖標,在項目 resources 目錄下新建一個 static 目錄,在 static
目錄下創建 images
目錄,然後項目的 favicon.ico
放在 images
目錄下,每個頁面添加以下樣式即可
<link rel="shortcut icon" href="/images/apple.ico">
配置數據源
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
Mybatis 配置
#mybatis
mybatis:
config-locations: classpath:mybatis/mybatis-config.xml
mapper-locations: classpath:mybatis/mapper/*.xml
type-aliases-package: net.dowhile.demo.entity
更多請參考Spring Boot Mybatis
讀取應用配置
可以在應用中讀取 application.properties
文件,Spring Boot 提供了三種方式,通用的 Eeviroment
類,可以通過 key-value
方式獲取到 application.properties
中的值,也可以通過 @Value
註解,自動註入屬性值,還可以將一組屬性自動註入到一個配置類中。
1、 Environment
@Configuration
public class EnvConfig {
@Autowired private Environment env;
public int getServerPort() {
return env.getProperty("server.port", Integer.class);
}
}
2、 @Value
直接通過 @Value
註解註入一個配置信息到 Spring 管理的 Bean 中
@GetMapping("/value")
public String value(@Value("${server.port:8080}") int port) {
return "port:" + port;
}
@Value 註解支持 SpEL 表達式,如果屬性不存在,可以提供一個預設值
3、@ConfigurationProperties
通常情況下,將一組同樣類型的配置屬性映射為一個類更為方便。
server.port=9090
server.context-path=/config
以上兩個配置屬性都與 web 伺服器配置相關,都有 server 首碼,因此可以使用註解 `` 來獲取這一組實現。
@ConfigurationProperties("server")
@Configuration
class ServerConfig {
private int port;
private String contextPath;
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getContextPath() {
return contextPath;
}
public void setContextPath(String contextPath) {
this.contextPath = contextPath;
}
}
可以使用 @Autowired
直接註入該配置類,還可以指定 properties 文件位置。
@Autowired
private ServerConfig serverConfig;
@ConfigurationProperties(prefix = "server", locations = {"classpath:config/author.properties"});