springboot——小知識總結

一、springboot默認規則:

(1)springboot默認掃描規則是:自動掃描啓動器類的同包或者其子包的下的註解

(2)使用默認數據庫配置,那麼屬性文件中的屬性名要是固定值不能改變

(3)Springboot默認集成的就是logback,logback相對來說是優秀於log4j的,log4j2也是參考了logback的設計。本篇就是來看看如何使用logback。新建一個Springboot項目,勾選web就OK了,項目會自動集成logback

(4)springboot啓動時會根據依賴生成bean,不會主動讀取xml文件,但是會主動讀取屬性文件

(5)資源文件的約定目錄結構 
         Maven的資源文件目錄:/src/Java/resources 
         spring-boot項目靜態文件目錄:/src/java/resources/static 
         spring-boot項目模板文件目錄:/src/java/resources/templates 
         spring-boot靜態首頁的支持,即index.html放在以上目錄結構會直接映射到應用的根目錄下

(6)全局異常控制:全局異常GolbalExceptionHandler處理公共的異常問題

(7)springboot全局的配置文件application.properties

(8)啓動類放到最外層,否則報錯

(9)使用自己配置的連接池,啓動類上需加:

         @ComponentScan(basePackages = {"com.aliyun.et.industry.templateboot","com.example.demo"})

二、註解

@RestController

——Spring4之後新加入的註解,原來返回json需要@ResponseBody和@Controller配合。即@RestController是@ResponseBody和@Controller的組合註解。

@ResponseBody

——@ResponseBody這個註解表示該方法的返回結果直接寫入HTTP response body中,一般在異步獲取數據時使用。

@Configuration,@Bean,@Primary

——Consider marking one of the beans as @Primary, updating the consumer to acce
考慮將bean中的一個標記爲“初級”,將消費者更新爲ACCE。
用@Configuration,@Bean,@Primary

——類上的註解@Configuration 是最新的用註解配置spring,也就是說這是個配置文件,和原來xml配置是等效的,只不過現在用java代碼進行配置了 加上一個@Configuration註解就行了,是不是很方便,不需要那麼繁瑣的xml配置了,這樣基於註解的配置,可讀性也大大增高了。

@Transactional

——在項目中,@Transactional(rollbackFor=Exception.class),如果類加了這個註解,那麼這個類裏面的方法拋出異常,就會回滾,數據庫裏面的數據也會回滾。

@Async,@EnableAsync

——加入@async方法異步方法,@EnableAsync是開啓異步功能

注意:同步:a,b,c三個方法依次執行完畢、異步:a,b(異步方法),c,那麼a不用等b執行完畢,c就可以執行啦

@Scheduled,@EnableScheduling

——@EnableScheduling:開啓任務調度功能、@Scheduled:定時任務任務

https://blog.csdn.net/jek123456/article/details/74118879

@EnableCaching,@Cacheable,@CachePut

——@EnableCaching開啓緩存

——在方法上加@Cacheable,會根據key直接取緩存內容,如果不存在創建

——在方法上加@CachePut,根據key更新緩存內容

@ComponentScan

——@ComponentScan告訴Spring 哪個packages 的用註解標識的類 會被spring自動掃描並且裝入bean容器。SpringBoot在寫啓動類的時候如果不使用@ComponentScan指明對象掃描範圍,默認指掃描當前啓動類所在的包裏的對象,如果當前啓動類沒有包,則在啓動時會報錯:Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package錯誤。
因爲啓動類不能直接放在main/java文件夾下,必須要建一個包把它放進去或者使用@ComponentScan指明要掃描的包。代碼示例如下:@ComponentScan(basePackageClasses=要掃描類.class所在位置的包)-意思是要掃描哪個類所在的包

@RequestMapping中的consumes,produces

——consumes: 指定處理請求的提交內容類型(Content-Type),例如application/json, text/html;
——produces:    指定返回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回

https://blog.csdn.net/blueheart20/article/details/45174399

@ResponseBody 和 @RequestBody 區別

——@Responsebody 註解表示該方法的返回的結果直接寫入 HTTP 響應正文(ResponseBody)中

——@RequestBody 註解則是將 HTTP 請求正文插入方法中,使用適合的 HttpMessageConverter 將請求體寫入某個對象。

https://blog.csdn.net/ff906317011/article/details/78552426

@Order(1)

——@Order(1):aop切面加載順序,Order值越小,優先級越高!

@annotation

——@annotation(com.cxh.study.aop.controller.UserAccessAnnotation) 表示攔截含有這個註解的方法

@MapperScan

——多包掃描:@MapperScan({"com.kfit.*.mapper","org.kfit.*.mapper"})

@ImportResource(locations = {"classpath:spring-datasource.xml" })

——啓動時讀取文件

 

三、類、接口

1、實現ApplicationContextAware:Spring容器會檢測容器中的所有Bean,如果發現某個Bean實現了ApplicationContextAware接口,Spring容器會在創建該Bean之後,自動調用該Bean的setApplicationContextAware()方法,調用該方法時,會將容器本身作爲參數傳給該方法——該方法中的實現部分將Spring傳入的參數(容器本身)賦給該類對象的applicationContext實例變量,因此接下來可以通過該applicationContext實例變量來訪問容器本身。

2、AbstractRoutingDataSource:數據源動態切換

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章