1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        SpringBoot常見注解

        共 3713字,需瀏覽 8分鐘

         ·

        2020-09-01 10:51

        點擊上方藍色字體,選擇“標星公眾號”

        優(yōu)質(zhì)文章,第一時間送達

        ? 作者?|??記憶的痕跡_42

        來源 |? urlify.cn/7Zb6r2? ??

        66套java從入門到精通實戰(zhàn)課程分享?

        在使用SpringBoot的過程中,幾乎沒有了XML配置,采用注解+JavaConfig方式開發(fā),這樣做的好處是:

        1. 采用純java代碼,不在需要配置繁雜的xml文件

        2. 在配置中也可享受面向?qū)ο髱淼暮锰?/p>

        3. 類型安全對重構可以提供良好的支持

        4. 減少復雜配置文件的同時亦能享受到springIoC容器提供的功能

        @SpringBootApplication

        這個注解很常見了,每次在啟動SpringBoot項目的時候,都會見到它,它作用在類上,標識該類為SpringBoot項目啟動類。
        并且讓SpringBoot自動給程序進行必要的配置,等同于@Configuration、@EnableAutoConfiguration、@ComponentScan這三個注解。

        @Configuration

        1. 相當于傳統(tǒng)Spring的xml配置文件。

        2. 如果第三方庫需要用到xml文件,建議通過@Configuration類作為項目的配置主類,可以使用@ImportResource注解加載xml配置文件。

        @EnableAutoConfiguration 自動配置。

        1. SpringBoot自動配置(auto-configuration),嘗試根據(jù)你添加的啟動器(starter)自動配置你的SpringBoot應用。

        2. 你可以將@EnableAutoConfiguration注解或者@SpringBootApplication注解添加到一個@Configuration類上來選擇自動配置。

        3. 如果發(fā)現(xiàn)應用了你不想要的特定自動配置類,你可以使用@EnableAutoConfiguration注解的排除屬性來禁用它們。

        @ComponentScan

        1. 如果某個類加上@ComponentScan注解,則該類會自動發(fā)現(xiàn)掃描組件。

        2. 也就是說,如果掃描到有@Component、@Controller、@Service等這些注解的類,并注冊為Bean,可以自動收集所有的Spring組件,包括@Configuration類。

        3. 我們經(jīng)常使用@ComponentScan注解搜索beans,并結合@Autowired注解導入。如果沒有配置的話,SpringBoot會掃描啟動類所在包下以及子包下的使用了@Component、@Controller、@Service、@Repository等注解的類。

        @Controller

        1. @Controller注解用于定義控制器類,在SpringBoot中由控制器負責將用戶發(fā)來的URL請求轉(zhuǎn)發(fā)到對應的服務接口(Controller層)。

        2. 一般這個注解用在類上,控制器方法需要加上@RequestMapping注解。

        @ResponseBody

        1. 如果控制器方法加上@ResponseBody注解,該方法的返回結果將直接寫入HTTP response body中,一般在異步獲取數(shù)據(jù)時使用,用于構建RESTful的api。

        2. 在使用@RequestMapping后,返回值通常解析為跳轉(zhuǎn)路徑,加上@esponsebody后返回結果不會被解析為跳轉(zhuǎn)路徑,而是直接寫入HTTP response body中。

        3. 比如異步獲取json數(shù)據(jù),加上@Responsebody后,會直接返回json數(shù)據(jù)。該注解一般會配合@RequestMapping一起使用。

        @RestController

        1. @RestController注解是@Controller和@ResponseBody的合集。

        2. 使用在類上,表示該類是控制器,并且類中所有控制器方法的返回值直接填入HTTP響應體中,是RESTful風格的控制器,控制器方法返回JSON數(shù)據(jù)。

        @RequestMapping

        提供路由信息,負責URL到Controller中的具體方法的映射。

        @Import

        用來導入其他配置類(加了@Configuration注解的類)。

        @ImportResource

        用來加載xml配置文件。

        @PathVariable

        獲取URL上的參數(shù)(Restful風格接口)。

        @Service

        一般用于修飾service層的組件

        @Repository

        使用@Repository注解可以確保DAO或者repositories提供異常轉(zhuǎn)譯,這個注解修飾的DAO或者repositories類會被ComponetScan發(fā)現(xiàn)并配置,同時也不需要為它們提供XML配置項。

        @Bean

        用@Bean標注方法等價于XML中配置的bean,意思是產(chǎn)生一個bean,并交給SpringBoot管理。

        @Value

        注入SpringBoot中的配置文件——application.properties配置的屬性的值。

        @Inject

        等價于默認的@Autowired,只是沒有required屬性。

        @Component

        泛指組件,當組件不好歸類的時候,我們可以使用這個注解進行標注。

        @AutoWired

        自動導入依賴的bean。byType方式。把配置好的Bean拿來用,完成屬性、方法的組裝,它可以對類成員變量、方法及構造函數(shù)進行標注,完成自動裝配的工作。當加上(required=false)時,就算找不到bean也不報錯。

        @Qualifier

        當有多個同一類型的Bean時,可以用@Qualifier(“name”)來指定。與@Autowired配合使用。@Qualifier限定描述符除了能根據(jù)名字進行注入,但能進行更細粒度的控制如何選擇候選者。

        @Resource(name=”name”,type=”type”)

        沒有括號內(nèi)內(nèi)容的話,默認byName。與@Autowired干類似的事。

        @JsonBackReference

        解決嵌套外鏈問題。

        @RepositoryRestResourcepublic

        配合spring-boot-starter-data-rest使用。

        全局異常注解

        @ControllerAdvice

        包含@Component,可以被掃描到。統(tǒng)一處理異常。

        @ExceptionHandler(Exception.class)

        用在方法上面表示遇到這個異常就執(zhí)行以下方法。

        JPA注解
        JPA是ORM思想的規(guī)范接口,存在兩個核心:

        1. 建立表與實體類的映射。

        2. 建立表字段與實體類屬性映射,操作實體類就是操作表。

        Hibernate框架作為JPA的實現(xiàn)者之一。

        @Entity&@Table(name="表名")

        @Entity注解表明這是一個實體類。
        @Table(name="表名")映射一張表,但是如果表名和實體類名相同的話,@Table可以省略。

        @MappedSuperClass

        用在確定是父類的entity上。父類的屬性子類可以繼承。

        @NoRepositoryBean

        一般用作父類的repository,有這個注解,SpringBoot不會去實例化該repository。

        @Column

        建立表字段與實體類屬性映射,如果字段名與列名相同,則可以省略。

        @Id

        表示該屬性為主鍵。

        @Transient

        1. 表示該屬性并非一個到數(shù)據(jù)庫表的字段的映射,ORM框架將忽略該屬性。

        2. 如果一個屬性并非數(shù)據(jù)庫表的字段映射,就務必將其標示為@Transient,否則,ORM框架默認其注解為@Basic。

        @Basic

        @Basic(fetch=FetchType.LAZY):標記可以指定實體屬性的加載方式

        @GeneratedValue

        @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = “repair_seq”)表示主鍵生成策略是sequence(可以為Auto、IDENTITY、native等,Auto表示可在多個數(shù)據(jù)庫間切換),指定sequence的名字是repair_seq。

        @SequenceGeneretor

        @SequenceGeneretor(name = “repair_seq”, sequenceName = “seq_repair”, allocationSize = 1):name為sequence的名稱,以便使用,sequenceName為數(shù)據(jù)庫的sequence名稱,兩個名稱可以一致。

        @JsonIgnore

        作用是json序列化時將Java bean中的一些屬性忽略掉,序列化和反序列化都受影響。

        @OneToOne、@OneToMany、@ManyToOne

        對應多表之間的一對一,一對多,多對一關系。



        粉絲福利:108本java從入門到大神精選電子書領取

        ???

        ?長按上方鋒哥微信二維碼?2 秒
        備注「1234」即可獲取資料以及
        可以進入java1234官方微信群



        感謝點贊支持下哈?

        瀏覽 26
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            **欧美大码日韩 | 亚洲精品成人a v久久久 | 无码一区二区三区四区 | 白嫩白嫩bbwbbwbbw四川 | 国产无遮挡免费 | 亚洲无码免费观看视频 | 一级黄片乱伦 | 我蹭蹭下面好爽受不了了 | 毛产一级婬片A片AAA片A国 | 日本做受高潮又黄又爽 |