spring為開發者提供了一個名為spring-boot-devtools的模塊來使springboot應用支持熱部署,提高開發的效率,修改代碼后無需重啟應用
2,添加依賴和配置
1,@PropertySource
1,為使用要使用@PropertySources
上面的注入,所有的配置都是寫在appliaction.properties或application.yml文件里,那么如果不想寫在這里面怎么處理呢使用@PropertySource可以解決
2,注入優先級的問題
所在的配置都是優先注入appliaction.properties或application.yml里面的數據
如果要不一樣,必須修改配置文件引入的前綴
2,@ImportResource
1,為什么要使用@ImportResource
從上面所有的配置中可以看出我們沒有使用以前的spring的xml的配置方法,如果還是要使用spring里面的xml的配置方式怎么辦理,使用@ImportResource
在開發中,一般有兩種環境
1,生產環境 [項目上線,客戶在使用中,就是生產環境]
2,開發環境[就是開發環境,不解釋]
有時候開發環境和生產環境的配置方法是不一樣的,那么如何快速的切換呢,這里就要使用profiles文件
2,使用方法
1,創建applicatin-
dev
.properties'
server.port=8081
2,創建applicatin-pro.properties
server.port=8082
3,修改application.properties
#server.port=8080
spring.profiles.active=pro
5,yml文件的多配置塊的集成切換
spring: profiles: active: pro server: port: 8081 spring: profiles: dev server: port: 8082 spring: profiles: pro
2,@Conditional派生注解關屬性;
作用:必須是@Conditional指定的條件成立,才給容器中添加組件,配置配里面的所有內容才生效;
@ConditionalOnJava 系統的java版本是否符合要求 @ConditionalOnBean 容器中存在指定Bean; @ConditionalOnMissingBean 容器中不存在指定Bean; @ConditionalOnExpression 滿足SpEL表達式指定 @ConditionalOnClass 系統中有指定的類 @ConditionalOnMissingClass 系統中沒有指定的類 @ConditionalOnSingleCandidate 容器中只有一個指定的Bean,或者這個Bean是首選Bean @ConditionalOnProperty 系統中指定的屬性是否有指定的值 @ConditionalOnResource 類路徑下是否存在指定資源文件 @ConditionalOnWebApplication 當前是web環境 @ConditionalOnNotWebApplication 當前不是web環境 @ConditionalOnJndi JNDI存在指定項
自動配置類必須在一定的條件下才能生效;
我們怎么知道哪些自動配置類生效?
我們可以通過啟用debug=true屬性(在配置文件配置);來讓控制台打印自動配置報告,這樣我們就可以很方便的知道哪些自動配置類生效;
1,thymeleaf概述
簡單說, Thymeleaf 是一個跟 Velocity、FreeMarker 類似的模板引擎,它可以完全替代 JSP 。相較與其他的模板引擎,它有如下三個極吸引人的特點:
1、Thymeleaf 在有網絡和無網絡的環境下皆可運行,即它可以讓美工在瀏覽器查看頁面的靜態效果,也可以讓程序員在服務器查看帶數據的動態頁面效果。這是由於它支持 html 原型,然后在 html 標簽里增加額外的屬性來達到模板+數據的展示方式。瀏覽器解釋 html 時會忽略未定義的標簽屬性,所以 thymeleaf 的模板可以靜態地運行;當有數據返回到頁面時,Thymeleaf 標簽會動態地替換掉靜態內容,使頁面動態顯示。
2、Thymeleaf 開箱即用的特性。它提供標准和spring標准兩種方言,可以直接套用模板實現JSTL、 OGNL表達式效果,避免每天套模板、該jstl、改標簽的困擾。同時開發人員也可以擴展和創建自定義的方言。
3、Thymeleaf 提供spring標准方言和一個與 SpringMVC 完美集成的可選模塊,可以快速的實現表單綁定、屬性編輯器、國際化等功能。
5,Thymeleaf的相關語法
1,簡單表達式
1、變量的表達式:${...}
2、選擇變量表達式:*{...}
3、信息表達式:#{...}
4、鏈接URL表達式:@{...}
2,字面值
1、文本文字:'one text', 'Another one!',…
2、文字數量:0, 34, 3.0, 12.3,…
3、布爾型常量:true, false
4、空的文字:null
5、文字標記:one, sometext, main,…
3,文
本
處理
1、字符串並置:+
2、文字替換:|The name is ${name}|
4,表
達
式基本對象
1、#ctx:上下文對象
2、#vars:上下文變量
3、#locale:上下文語言環境
4、#httpServletRequest:(只有在Web上下文)HttpServletRequest對象
5、#httpSession:(只有在Web上下文)HttpSession對象。
用法:<span th:text="${#locale.country}">US</span>.
5,實用工具對象
#dates: java.util的實用方法。對象:日期格式、組件提取等.
#calendars:類似於#日期,但對於java.util。日歷對象#numbers:格式化數字對象的實用方法。#strings:字符串對象的實用方法:包含startsWith,將/附加等。#objects:實用方法的對象。#bools:布爾評價的實用方法。#arrays:數組的實用方法。#lists:list集合。#sets:set集合。#maps:map集合。#aggregates:實用程序方法用於創建聚集在數組或集合.#messages:實用程序方法獲取外部信息內部變量表達式,以同樣的方式,因為它們將獲得使用# {…}語法#ids:實用程序方法來處理可能重復的id屬性(例如,由於迭代)。
6,Thymeleaf代碼提示功能