内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

springboot的核心注解有哪些-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)spring boot的核心注解有哪些,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)公司制作網(wǎng)站網(wǎng)頁找三站合一網(wǎng)站制作公司,專注于網(wǎng)頁設(shè)計,網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計,網(wǎng)站設(shè)計,企業(yè)網(wǎng)站搭建,網(wǎng)站開發(fā),建網(wǎng)站業(yè)務(wù),680元做網(wǎng)站,已為成百上千服務(wù),創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)將一如既往的為我們的客戶提供最優(yōu)質(zhì)的網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷推廣服務(wù)!

在spring boot中,摒棄了spring以往項目中大量繁瑣的配置,遵循約定大于配置的原則,通過自身默認配置,極大的降低了項目搭建的復(fù)雜度。同樣在spring boot中,大量注解的使用,使得代碼看起來更加簡潔,提高開發(fā)的效率。這些注解不光包括spring boot自有,也有一些是繼承自spring的。

下面將spring boot項目中常用的一些核心注解歸類總結(jié),并結(jié)合實際使用的角度來解釋其作用。

一、項目配置注解

1、@SpringBootApplication 注解

查看源碼可發(fā)現(xiàn),@SpringBootApplication是一個復(fù)合注解,包含了@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan這三個注解。

這三個注解的作用分別為:

  • @SpringBootConfiguration:標(biāo)注當(dāng)前類是配置類,這個注解繼承自@Configuration。并會將當(dāng)前類內(nèi)聲明的一個或多個以@Bean注解標(biāo)記的方法的實例納入到srping容器中,并且實例名就是方法名。

  • @EnableAutoConfiguration:是自動配置的注解,這個注解會根據(jù)我們添加的組件jar來完成一些默認配置,我們做微服時會添加spring-boot-starter-web這個組件jar的pom依賴,這樣配置會默認配置springmvc 和tomcat。

  • @ComponentScan:掃描當(dāng)前包及其子包下被@Component,@Controller,@Service,@Repository注解標(biāo)記的類并納入到spring容器中進行管理。等價于

spring boot的核心注解有哪些

大多數(shù)情況下,這3個注解會被同時使用,基于最佳實踐,這三個注解就被做了包裝,成為了@SpringBootApplication注解。

2、@ServletComponentScan:Servlet、Filter、Listener 可以直接通過 @WebServlet、@WebFilter、@WebListener 注解自動注冊,這樣通過注解servlet ,攔截器,監(jiān)聽器的功能而無需其他配置,所以這次相中使用到了filter的實現(xiàn),用到了這個注解。

3、@MapperScan:spring-boot支持mybatis組件的一個注解,通過此注解指定mybatis接口類的路徑,即可完成對mybatis接口的掃描。

它和@mapper注解是一樣的作用,不同的地方是掃描入口不一樣。@mapper需要加在每一個mapper接口類上面。所以大多數(shù)情況下,都是在規(guī)劃好工程目錄之后,通過@MapperScan注解配置路徑完成mapper接口的注入。

添加mybatis相應(yīng)組建依賴之后。就可以使用該注解。

spring boot的核心注解有哪些

進一步查看mybatis-spring-boot-starter包,可以找到這里已經(jīng)將mybatis做了包裝。

這也是spring的一個理念,不重復(fù)造輪子,整合優(yōu)秀的資源進入spring的體系中。

spring boot的核心注解有哪些

4、資源導(dǎo)入注解:@ImportResource @Import @PropertySource 這三個注解都是用來導(dǎo)入自定義的一些配置文件。

@ImportResource(locations={}) 導(dǎo)入其他xml配置文件,需要標(biāo)準(zhǔn)在主配置類上。

導(dǎo)入property的配置文件 @PropertySource指定文件路徑,這個相當(dāng)于使用spring的

@import注解是一個可以將普通類導(dǎo)入到spring容器中做管理

二、controller 層

1、@Controller 表明這個類是一個控制器類,和@RequestMapping來配合使用攔截請求,如果不在method中注明請求的方式,默認是攔截get和post請求。這樣請求會完成后轉(zhuǎn)向一個視圖解析器。但是在大多微服務(wù)搭建的時候,前后端會做分離。所以請求后端只關(guān)注數(shù)據(jù)處理,后端返回json數(shù)據(jù)的話,需要配合@ResponseBody注解來完成。

這樣一個只需要返回數(shù)據(jù)的接口就需要3個注解來完成,大多情況我們都是需要返回數(shù)據(jù)。也是基于最佳實踐,所以將這三個注解進一步整合。

@RestController 是@Controller 和@ResponseBody的結(jié)合,一個類被加上@RestController 注解,數(shù)據(jù)接口中就不再需要添加@ResponseBody。更加簡潔。

同樣的情況,@RequestMapping(value="",method= RequestMethod.GET ),我們都需要明確請求方式。這樣的寫法又會顯得比較繁瑣,于是乎就有了如下的幾個注解。

普通風(fēng)格Rest風(fēng)格
@RequestMapping(value=“”,method = RequestMethod.GET)@GetMapping(value =“”)
@RequestMapping(value=“”,method = RequestMethod.POST)@PostMapping(value =“”)
@RequestMapping(value=“”,method = RequestMethod.PUT)@PutMapping(value =“”)
@RequestMapping(value=“”,method = RequestMethod.DELETE)@DeleteMapping(value =“”)

這幾個注解是 @RequestMapping(value="",method= RequestMethod.xxx )的最佳實踐。為了代碼的更加簡潔。

2、@CrossOrigin:@CrossOrigin(origins = "", maxAge = 1000) 這個注解主要是為了解決跨域訪問的問題。這個注解可以為整個controller配置啟用跨域,也可以在方法級別啟用。

我們在項目中使用這個注解是為了解決微服在做定時任務(wù)調(diào)度編排的時候,會訪問不同的spider節(jié)點而出現(xiàn)跨域問題。

3、@Autowired:這是個最熟悉的注解,是spring的自動裝配,這個個注解可以用到構(gòu)造器,變量域,方法,注解類型上。當(dāng)我們需要從bean 工廠中獲取一個bean時,Spring會自動為我們裝配該bean中標(biāo)記為@Autowired的元素。

4、@EnablCaching@EnableCaching: 這個注解是spring framework中的注解驅(qū)動的緩存管理功能。自spring版本3.1起加入了該注解。其作用相當(dāng)于spring配置文件中的cache manager標(biāo)簽。

5、@PathVariable:路徑變量注解,@RequestMapping中用{}來定義url部分的變量名,如:

spring boot的核心注解有哪些

同樣可以支持變量名加正則表達式的方式,變量名:[正則表達式]。

spring boot的核心注解有哪些

三、servcie層注解

1、@Service:這個注解用來標(biāo)記業(yè)務(wù)層的組件,我們會將業(yè)務(wù)邏輯處理的類都會加上這個注解交給spring容器。事務(wù)的切面也會配置在這一層。當(dāng)讓 這個注解不是一定要用。有個泛指組件的注解,當(dāng)我們不能確定具體作用的時候 可以用泛指組件的注解托付給spring容器。 

2、@Resource:@Resource和@Autowired一樣都可以用來裝配bean,都可以標(biāo)注字段上,或者方法上。 @resource注解不是spring提供的,是屬于J2EE規(guī)范的注解。

兩個之前的區(qū)別就是匹配 方式上有點不同,@Resource默認按照名稱方式進行bean匹配,@Autowired默認按照類型方式進行bean匹配。

四、持久層注解

1、@Repository:@Repository注解類作為DAO對象,管理操作數(shù)據(jù)庫的對象。

總得來看,@Component, @Service, @Controller, @Repository是spring注解,注解后可以被spring框架所掃描并注入到spring容器來進行管理

@Component是通用注解,其他三個注解是這個注解的拓展,并且具有了特定的功能。

通過這些注解的分層管理,就能將請求處理,義務(wù)邏輯處理,數(shù)據(jù)庫操作處理分離出來,為代碼解耦,也方便了以后項目的維護和開發(fā)。

所以我們在正常開發(fā)中,如果能用@Service, @Controller, @Repository其中一個標(biāo)注這個類的定位的時候,就不要用@Component來標(biāo)注。

2、@Transactional: 通過這個注解可以聲明事務(wù),可以添加在類上或者方法上。

在spring boot中 不用再單獨配置事務(wù)管理,一般情況是我們會在servcie層添加了事務(wù)注解,即可開啟事務(wù)。要注意的是,事務(wù)的開啟只能在public 方法上。并且主要事務(wù)切面的回滾條件。正常我們配置rollbackfor exception時 ,如果在方法里捕獲了異常就會導(dǎo)致事務(wù)切面配置的失效。

五、其他相關(guān)注解

@ControllerAdvice 和 @RestControllerAdvice:通常和@ExceptionHandler、@InitBinder、@ModelAttribute一起配合使用。

@ControllerAdvice 和 @ExceptionHandler 配合完成統(tǒng)一異常攔截處理。

@RestControllerAdvice 是 @ControllerAdvice 和 @ResponseBody的合集,可以將異常以json的格式返回數(shù)據(jù)。

如下面對數(shù)據(jù)異常返回的統(tǒng)一處理。

spring boot的核心注解有哪些

上述就是小編為大家分享的spring boot的核心注解有哪些了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

本文名稱:springboot的核心注解有哪些-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://www.rwnh.cn/article4/gdjie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、手機網(wǎng)站建設(shè)App開發(fā)、軟件開發(fā)、靜態(tài)網(wǎng)站、移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
浑源县| 屏东市| 九江市| 鸡西市| 溧阳市| 罗城| 隆子县| 宜兰市| 东海县| 文登市| 泰兴市| 霍州市| 保康县| 栖霞市| 灵山县| 项城市| 太仓市| 石景山区| 西充县| 乌兰浩特市| 年辖:市辖区| 逊克县| 榆树市| 上饶市| 江安县| 鸡泽县| 武穴市| 满城县| 永昌县| 绥芬河市| 宜兰市| 白河县| 白河县| 永年县| 科技| 巢湖市| 得荣县| 砚山县| 开江县| 弋阳县| 新蔡县|