springboot關(guān)閉默認(rèn)事務(wù) spring boot原理詳解?
spring boot原理詳解?SpringBoot是一個JavaWeb應(yīng)用程序的開發(fā)框架,該框架通過應(yīng)用約定為0配置的核心思想,設(shè)置通過了很多設(shè)置以漢字拆分變更土地性質(zhì),最大限度地盡量減少了現(xiàn)代Sp
spring boot原理詳解?
SpringBoot是一個JavaWeb應(yīng)用程序的開發(fā)框架,該框架通過應(yīng)用約定為0配置的核心思想,設(shè)置通過了很多設(shè)置以漢字拆分變更土地性質(zhì),最大限度地盡量減少了現(xiàn)代Spring應(yīng)用開發(fā)的古怪配置過程。
優(yōu)點:
快速入門Spring開發(fā)
開箱即用,可以提供源源不斷設(shè)置成配置簡單的結(jié)構(gòu)開發(fā)
需要提供一系列規(guī)模很大項目沒限制的非功能性功能(的或嵌入式服務(wù)器,安全性,指標(biāo),運行狀況檢查和外部化配置)。
沒有冗余代碼和奇怪配置
SpringBoot項目中如何定制HTTP消息轉(zhuǎn)換器?
要想自己定做HTTP消息轉(zhuǎn)換器要先明白SpringBoot默認(rèn)是怎末做HTTP消息轉(zhuǎn)換成的。
先來看我們平常工作中開發(fā)一個最簡單let's請求:
這樣當(dāng)前端請求我們的API的時候,我們是怎么將網(wǎng)絡(luò)帶寬的字節(jié)流序列化成我們要想的對象呢?做完業(yè)務(wù)處理后又是如何直接返回數(shù)據(jù)呢?
HttpMessageConverter在SpringBoot框架下,這個可以可以使用@RequestBody和@ResponseBody兩個注解,共有完成請求報文到對象和對象到服務(wù)控制器報文的轉(zhuǎn)換,底層這種身形靈活的消息轉(zhuǎn)換的機(jī)制,就是Spring3.x中新核心中的HttpMessageConverter即消息轉(zhuǎn)換器機(jī)制。
然后打開任何兩個集成了Spring-web功能的SpringBoot項目,都是可以不能找到這個HttpMessageConvert:
看的到他是一個接口類,和他在一個包下面有很多實現(xiàn)方法類,很有興趣同學(xué)也可以debug跟到里面把這塊源碼搞透,這個過程中大家還可以不學(xué)到很多關(guān)於序列化的知識。
源碼解析:怎么很清楚SpringBoot中的默認(rèn)convert
在項目的啟動類上有一個@SpringBootApplication注解,點進(jìn)去會看到他是一系列注解的真包含,其中有一個@EnableAutoConfiguration注解,再點進(jìn)去查看:
發(fā)現(xiàn)到引入了一個類:AutoConfigurationImportSelector類,再繼續(xù)跟進(jìn)去有一個方法selectImports():
一直進(jìn)入頁面loadMetadata這個方法:
到這三步我相信大家就清晰了他是怎末打開程序的了:
再一路走下去就明白該如何讀取消息的默認(rèn)convert,這里就不和大家說答案,只希望大家自己可以不跟進(jìn)去看一下,收獲是是一樣的的~
訂制自己的convert明白了消息轉(zhuǎn)換器的原理包括SpringBoot中如何能程序加載的,我們就清楚該如何去訂制自己的消息轉(zhuǎn)換器了,先利用自己的一個convert,繼承AbstractHttpMessageConverter:
后再定義,定義一個WebConfig類可以繼承WebMvcConfigurer,把我們自定義的這個convert加在里面:
換算工作中,大家可能很多時候并不要自己去實現(xiàn)方法convert,用默認(rèn)的消息轉(zhuǎn)換器就可以了,如果大家有自己特殊的需求判斷,不然不建議一定得自己去實現(xiàn)程序這個convert。
以上就是關(guān)於SpringBoot中怎么設(shè)計定制消息轉(zhuǎn)換器的回答了,不足之處希望能大家那些評論別人交流,共同學(xué)習(xí)。
我是【java架構(gòu)設(shè)計】,假如我的回答對您有幫助,希望能轉(zhuǎn)發(fā)點贊,我將堅持了為您提供Java領(lǐng)域品質(zhì)優(yōu)良內(nèi)容!