SpringBoot學習筆記(2) Spring Boot的一些配置
外部配置
spring Boot允許使用properties檔案、yaml檔案或者命令列引數作為外部配置
使用@Value註解,可以直接將屬性值注入到你的beans中,並通過Spring的Environment抽象或繫結到結構化物件來訪問。
以前使用Spring的時候需要通過@PropertySource指明properties檔案位置,然後通過@value注入.
常規屬性配置
在properties檔案中增加幾個屬性
- server.port=8081
- server.context-path=/demo
- #宣告一個name屬性
- user.name=張三
-
user.age
Java類
- package com.ibigsea.bootdemo;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.web.bind.annotation.RequestMapping;
-
import
- /**
- * 是Spring Boot專案的核心註解,主要是開啟自動配置
- */
- @SpringBootApplication// same as @Configuration @EnableAutoConfiguration @ComponentScan
- @RestController
- publicclass App {
- @Value("${user.name}")
- private String name;
-
@Value("${user.age}"
- private Long age;
- @RequestMapping("/")
- public String index(){
- return"Hello Spring Boot, name is " + name + ", age is "+ age;
- }
- publicstaticvoid main(String[] args) {
- // SpringApplication app = new SpringApplication(App.class);
- // app.setBannerMode(Mode.OFF);
- // app.run(args);
- SpringApplication.run(App.class, args);
- }
- }
執行結果:
除此之外,Spring Boot 還提供了基於型別安全的配置方式,通過@ConfigurationProperties將properties屬性和一個Bean及其屬性關聯,從而實現型別安全的配置
在上面的情景下新增一個UserSetting類
- package com.ibigsea.bootdemo;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.stereotype.Component;
- @Component
- //通過該註解價值properties檔案內的配置
- //通過prefix執行properties配置的字首
- @ConfigurationProperties(prefix = "user")
- publicclass UserSetting {
- private String name;
- private Long age;
- public String getName() {
- return name;
- }
- publicvoid setName(String name) {
- this.name = name;
- }
- public Long getAge() {
- return age;
- }
- publicvoid setAge(Long age) {
- this.age = age;
- }
- }
使用
執行結果
日誌配置
Spring boot預設的輸出格式
- 2016-07-04 23:47:27.195 INFO 28916 --- [ main] com.ibigsea.bootlog.App : Starting App on sea-pc with PID 28916 (E:\workspace\myworkspace\bootlog\target\classes started by bigsea in E:\workspace\myworkspace\bootlog)
- 2016-07-04 23:47:27.201 INFO 28916 --- [ main] com.ibigsea.bootlog.App : No active profile set, falling back to default profiles: default
- 2016-07-04 23:47:27.315 INFO 28916 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot[email protected]75592f8b: startup date [Mon Jul 04 23:47:27 CST 2016]; root of context hierarchy
- 2016-07-04 23:47:28.653 INFO 28916 --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Overriding bean definition for bean 'beanNameViewResolver' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]]
- 2016-07-04 23:47:30.227 INFO 28916 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
- 2016-07-04 23:47:30.245 INFO 28916 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat
- 2016-07-04 23:47:30.245 INFO 28916 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.0.30
- 2016-07-04 23:47:30.371 INFO 28916 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
- 時間日期 — 精確到毫秒
- 日誌級別 — ERROR, WARN, INFO, DEBUG or TRACE
- 程序ID
- 分隔符 — --- 標識實際日誌的開始
- 執行緒名 — 方括號括起來(可能會截斷控制檯輸出)
- Logger名 — 通常使用原始碼的類名
- 日誌內容
預設情況下ERROR, WARN和INFO級別的訊息會輸出到控制檯
可以通過命令列開啟DEBUG或者在properties檔案中新增
- Jar -jar xx.jar --debug
Properties檔案中新增 debug=true即可
如果想要輸出到日誌檔案中,那麼需要在properties檔案中設定logging.file或logging.path屬性
控制日誌級別
通過 logging.level.*= LEVEL(LEVEL是TRACE,DEBUG,INFO,WARN,FATAL,OFF)中的一個
這樣表示專案中所有的日誌級別都是一樣的.也可以精準控制到具體的一塊
- logging.level.org.springframework.web: DEBUG //org.springframework.web包下面的日誌級別是DEBUG的
- logging.level.org.hibernate: ERROR //org.hibernate包下面的日誌級別是ERROR
- logging.level.com.ibigsea.*: INFO //com.ibigsea包下面的日誌級別是INFO
除了Spring Boot預設的以外,還可以啟用其他各種日誌系統
由於日誌是在ApplicationContext被建立之前初始化,所以不可能在Spring的@Configuration檔案中,通過系統屬性和傳統的外部配置檔案依然可以讓日誌系統正常工作
這句話一直無法理解,查詢資料也大都是沒解釋清楚,猜想的話 應該是在pom裡面新增對應日誌依賴,然後在專案新增對應的配置檔案比如這樣的
Spring boot 會自動啟用這個日誌系統
Profile配置
Profile是Spring用來針對不同環境對不同配置提供支援的,全域性Profile配置使用
application-{profile}.properties 如:application-prod.properties
在本地模擬出一個開發環境和生產環境
建立application-prd.properties 和 application-dev.properties
專案結構
application-dev.properties
- server.port=8081
application-prd.properties
- server.port=8082
application.properties
- spring.profiles.active=prd
啟動結果
修改spring.profiles.active為dev並啟動
除了上面這種配置方式,我們還有一種更簡便的方式來配置多種環境,通過命令列引數配置
刪除多餘的properties檔案
application.yml
- server :
- port : 8081
- ---
- spring :
- profiles : dev
- server :
- port : 8082
預設是prd環境
在啟動的時候增加引數 spring.profiles.active=dev
右擊顯示選單選擇run configurations
新增命令列引數
OK 實驗成功
將程式打包之後 通過 java -jar xx.jar --spring.profiles.active=dev的方式啟動
相關推薦
SpringBoot學習筆記(2) Spring Boot的一些配置
外部配置 spring Boot允許使用properties檔案、yaml檔案或者命令列引數作為外部配置 使用@Value註解,可以直接將屬性值注入到你的beans中,並通過Spring的Environment抽象或繫結到結構化物件來訪問。 以前使用Spring的
kafka學習筆記(三)spring boot整合kafka0.9.0.1(使用配置類)
spring boot 版本:1.5.6引入關於kafka的相關jar <dependency> <groupId>org.springframework.kafka</groupI
ElasticSearch學習筆記--2、ES相關配置
last 學習 -- code logs 相關數 clas 名稱 config 1、配置文件 ES的配置文件位置:config/elasticsearch.yml可以直接搜索elasticsearch.yml 2、配置遠程api訪問 network.host: 192
SpringBoot學習筆記(1):配置Mybatis
target oca run class .com gpo connect auto users SpringBoot學習筆記(1):配置Mybatis 參考資料: 1.AndyLizh的博客 2.xiaolyuh123的博客 快速開始 添加Mybatis依賴(
SpringBoot學習(二)-->Spring的Java配置方式
play sin ext ryu 代碼 容器 技術 測試結果 支持 二、Spring的Java配置方式 Java配置是Spring4.x推薦的配置方式,可以完全替代xml配置。 1、@Configuration 和 @Bean Spring的Java配置方式是通過 @
SpringBoot學習筆記10——spring-data-jpa之分頁查詢
今天我們來學習一下spring-data-jpa的分頁查詢的實現 在上次初探JPA之後我們接下來學習分頁查詢,本篇部落格是接上一篇的,如果有需要了解jpa配置的話可以看上一篇部落格https://blog.csdn.net/lp840312696/article/details/83549937
SpringBoot學習筆記09——spring-data-jpa初探
大家對JPA的褒貶不一,如果想弄清楚JPA是什麼、值不值得用大家可以自行百度,博主這裡就不再多說,因為說可能也說不明白,所以話不多說直接講乾貨! 1.引入依賴 下邊是整個dao曾模組的pom檔案,世界上JPA的以來只有一個,已經添加了註釋 <?xml version="1.0" e
SpringBoot學習筆記2 - 20181128
一.Springboot常見錯誤總結 控制檯亂碼問題(外掛啟動,控制檯亂碼問題) 在pom檔案,springboot外掛啟動中,增加如下(一些虛擬機器方法) <plugin> <groupId>org.springframework.bo
Spring Boot學習筆記(Spring Boot 和 activeMQ整合)
Spring Boot學習筆記使用步驟: Spring Boot:並不是不對 Spring 功能上的增強,而是提供了一種快速使用 Spring 的方式。 使用步驟: 1、起步依賴:pom.xml中配置起步依賴,會自動匯入spring相關的許多jar包 <
微服務學習筆記--使用Spring Boot Actuator監控端點
目錄 前言 微服務的這種架構雖然解決了單體應用的一些劣勢,但它也面臨一些挑戰,比如對運維的要求更高了。一個微服務架構中可能有幾十個上百個應用構成,要保證這些應用都正常執行,相互協調是比較麻煩的事情,因此我們需要一個元件來對這些應用進行監控和管理
springboot學習筆記(一):基礎程式和配置
1 , springboot 介紹(來自百度百科) 簡介 微服務是一個新興的軟體架構,就是把一個大型的單個應用程式和服務拆分為數十個的支援微服務。一個微服務的策略可以讓工作變得更為簡便,它可擴充套件單個元件而不是整個的應用程式堆疊,從而滿足服務等級協議。
SpringCloud學習筆記015---Spring Boot整合RabbitMQ傳送接收JSON
在Spring Boot 整合RabbitMQ一文中介紹瞭如何整合RabbitMQ。預設情況下發送的訊息是轉換為位元組碼,這裡介紹一下如何傳送JSON資料。 ObjectMapper 最簡單傳送JSON資料的方式是把物件使用ObjectMapper等JSON工具類把物件轉
CKEditor學習筆記2(CKEditor基本配置修改)
第二篇,圍繞這5個問題進行基本配置: 1、自定義ToolbarSet,去掉一些功能 2、加上幾種常用的字型 3、修改“回車”和“Shift+回車”的換行行為 4、修改編輯區樣式檔案 5、更換表情圖片 這些資訊的配置,可以通過config.js檔案進行,當然也可以建立自己的配
SpringBoot學習:使用spring-boot-devtools進行熱部署
1.新增架包<!--支援熱啟動jar包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr
springboot學習: 初識Spring Boot框架,搭建第一個專案!
專案建立初次接觸,我們先來看看如何建立一個Spring Boot專案,這裡以IntelliJ IDEA為例,其他的IDE工具小夥伴們自行搜尋建立方式:首先建立一個專案,建立時選擇Spring Initializr,然後Next,如下圖:填寫專案資訊,如下圖:填寫專案使用到的技
spring boot 2.1學習筆記【四】屬性配置
spring boot 2.1系列文章目錄 文章目錄 常規屬性配置 @value 啟動引數 application.properties 型別安全的屬性配置(強烈推薦)
SpringBoot學習筆記——Spring Boot配置檔案
SpringBoot工程建立時會自動生成application.properties檔案,這個檔案專門存放配置資訊。 但是目前預設的配合檔案已經不能滿足我了,需要自己配置一些資訊。 第一、application.properties有一些預設的也是固定的屬
《Gradle構建SpringBoot學習筆記》第二章:建立基於Gradle構建的Spring Boot Web專案
1.生成初始化專案 通過 SpringBoot 官方提供的 Spring Initializr初始化一個Web專案,網址為https://start.spring.io/,瀏覽器開啟該網址顯示如下 選擇構建Gradle Project,語言選擇Java,Spr
SpringBoot 學習(一)---- SpringBoot 核心 之 Spring Boot基本配置介紹
一、關閉某個自動配置 通過上一篇 @SpringBootApplication 下的 @EnableAutoConfiguration 可知,Spring Boot 會根據專案中的jar包依賴,自動做出配置,Spring Boot支援的部分自動配置如下圖(非常多):
Spring boot學習筆記2--pom.xml初探究
新建的springboot_study專案的pom.xml結構如下: <parent> <groupId>org.springframework.boot</groupId> <artifactId&g