国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot(三層框架Controller,Mapper,Service)中遇到的一些注解整理

這篇具有很好參考價值的文章主要介紹了SpringBoot(三層框架Controller,Mapper,Service)中遇到的一些注解整理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文主要從Controller層,Service層,Mapper層這三層架構(gòu)中記錄用到的各種注解
還有一些MyBatis用到的注解
持續(xù)更新到本人的畢設做完為止,太多了太多了根本學不完哈哈哈

1.Controller層

1.1@GetMapping/@PostMapping/@DeleteMapping/@PutMapping

用于建立HTTP請求與處理方法之間的映射關系,其中XXXMapping限定了提交http請求的方法

1.2@PathVariable

用于獲取URL中提交過來的參數(shù)。例如,假設有一個請求URL為/users/{userId}/orders/{orderId},其中{userId}和{orderId}是動態(tài)參數(shù)。在控制器方法中,可以使用@PathVariable注解將這些參數(shù)的值提取出來

@RequestMapping("/users/{userId}/orders/{orderId}")  
public String getOrder(@PathVariable("userId") Long userId, @PathVariable("orderId") Long orderId) {  
    // ... 處理邏輯  
}

1.3@RequestBody

使用此注解,可以把前端發(fā)送的JSON格式的數(shù)據(jù),綁定到一個Java的對象中。

@PostMapping("/users")  
public String createUser(@RequestBody User user) {  
    // 使用user對象進行相應的業(yè)務邏輯處理  
    // ...  
    return "User created successfully";  
}  
  
public class User {  
    private String name;  
    private int age;  
    // 省略getter和setter方法  
}

@DateTimeFormat

和RequestBody機制類似:前端傳遞了一個格式為"yyyy-MM-dd HH:mm:ss"的日期字符串,我們可以在對應的Java實體類屬性上加上@DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”),這樣Spring就會自動將這個字符串轉(zhuǎn)換為Date類型,并賦值給該屬性。

    public Result page(@RequestParam(defaultValue = "1") Integer page,
                       @RequestParam(defaultValue = "10") Integer pageSize,

                       String name, String gender,
                       @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,)

1.4@RequestMapping

作用是:抽取公共路徑,讓響應的方法都加上一段公共的父親路徑

@Controller  
@RequestMapping("/users")  
public class UserController {  
  
    @GetMapping("/{userId}")  
    public String getUser(@PathVariable("userId") Long userId, Model model) {  
        // 根據(jù)userId獲取用戶信息,并添加到Model中  
        // ...  
        return "userDetails"; // 返回視圖名稱  
    }  
  
    @PostMapping("/create")  
    public String createUser(@RequestBody User user) {  
        // 處理創(chuàng)建用戶的邏輯  
        // ...  
        return "redirect:/users"; // 重定向到用戶列表頁面  
    }  
}

2.Service層

這一層主要實現(xiàn)接受Controller傳來的DTO對象,轉(zhuǎn)化為Entity類,調(diào)用Mapper層,實現(xiàn)數(shù)據(jù)可持久化。

1.@AutoWired

1.1作用

1.@Autowired注解起到了依賴注入(Dependency Injection)的作用。它可以對類成員變量、方法及構(gòu)造函數(shù)進行標注,以完成自動裝配的工作。

1.2注意點

1.不能在函數(shù)內(nèi)部聲明一個變量,然后去使用它,否則報錯,只適合全局變量。
正確用法,在類中聲明,而不是在函數(shù)中聲明
SpringBoot(三層框架Controller,Mapper,Service)中遇到的一些注解整理,spring boot,后端,java

3.Mapper層

也叫DAO層,主要實現(xiàn)和數(shù)據(jù)庫的交互。有兩種開發(fā)方法,一種是直接用注解寫簡單的SQL語句,另外一種是先寫XML配置文件(寫SQL),然后在只在Mapper類中定義方法

2.1@Select/@Delete/@Update/@

    @Select("Select id, name, create_time, update_time from dept")
    List<Dept> list();

3.MyBatis下的XML標簽

3.1基本配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<mapper namespace ="com.itheima.mapper.EmpMapper">

</mapper>

其中 mapper的namespace屬性來自于你要映射的那個Mapper層接口地址

4.其他

本質(zhì)上是工具類和日志,不知道咋歸類的東西

4.1@Sl4j

會給你自動生成一個對象log,給你提供當前類的日志信息
SpringBoot(三層框架Controller,Mapper,Service)中遇到的一些注解整理,spring boot,后端,java

4.2AOP

面向切面編程,通俗地說就是把你的代碼implement到一個動態(tài)代理對象上,然后強行給你要跑的代碼的頭部/尾部加上一些通用的代碼段。這樣就向一刀切向了許許多多的代碼塊,所以叫面向切面編程

@Target()

指定注解能被運用到什么地方
@Target是一個元注解,它用來描述其他注解可以被應用的地方。換句話說,它指定了自定義注解可以在哪些Java元素上使用。@Target注解的取值是一個ElementType枚舉類型的數(shù)組,這些值包括:

TYPE:用于描述類、接口(包括注解類型)或enum聲明
FIELD:用于描述字段,包括枚舉的常量
METHOD:用于描述方法
PARAMETER:用于描述方法參數(shù)
CONSTRUCTOR:用于描述構(gòu)造器
LOCAL_VARIABLE:用于描述局部變量
ANNOTATION_TYPE:用于描述注解類型
PACKAGE:用于描述包

@Rentention()

@Retention(RetentionPolicy.RUNTIME) 是 Java 提供的一個元注解,用于指定其他注解的生存周期。具體來說,它定義了注解在什么級別是有效的。Retention 是“保留”的意思,而 RetentionPolicy 是“保留策略”的枚舉類型。

RetentionPolicy 有三個枚舉值:

SOURCE:注解只在源碼中存在,在編譯時會被丟棄。這些注解不會寫入字節(jié)碼文件,因此 JVM 在運行時無法獲取這些注解信息。這種策略通常用于編譯時檢查,如 @Override。

CLASS:注解在類文件中可用,但會被 JVM 丟棄。這意味著注解信息會保留在字節(jié)碼文件中,以便在運行時通過反射獲取,但是一旦類被加載到 JVM,注解信息就不會再被保留了。這是默認策略。

RUNTIME:注解在運行時也保留,因此可以通過 JVM 或其他使用反射機制的代碼來讀取注解的信息。這種策略通常用于需要在運行時動態(tài)讀取注解信息的場景,如 Spring 框架中的很多注解。
上邊兩個組合起來,用來構(gòu)成自定義的一個注解
SpringBoot(三層框架Controller,Mapper,Service)中遇到的一些注解整理,spring boot,后端,java

@Aspect

用于標識這個類是一個切面類

@PointCut

@Pointcut(“execution(* com.sky.mapper..(…)) && @annotation(com.sky.annotation.AutoFill)”)
用于指明切入點,表示你要對哪些方法進行切入

@Before /@After /@Around

指明通知類型,主要就是告訴你切入的通知運行時機,是在切入點運行前/后還是前后都有文章來源地址http://www.zghlxwxcb.cn/news/detail-809976.html

到了這里,關于SpringBoot(三層框架Controller,Mapper,Service)中遇到的一些注解整理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包