最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java springboot里注解大全和使用指南(最新整理)

 更新時(shí)間:2026年03月20日 16:00:39   作者:奮力向前123  
在Java Spring Boot中,注解是簡(jiǎn)化開(kāi)發(fā)、提高效率的關(guān)鍵工具,這篇文章給大家介紹Java springboot里注解大全和使用指南,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

在 Java Spring Boot 中,注解是簡(jiǎn)化開(kāi)發(fā)、提高效率的關(guān)鍵工具。以下是一些核心注解及其使用指南,按功能分類(lèi)整理:

一、核心啟動(dòng)與配置注解

  • @SpringBootApplication
    • 作用:Spring Boot 應(yīng)用的核心注解,用于標(biāo)記主啟動(dòng)類(lèi)。它是一個(gè)組合注解,等價(jià)于同時(shí)使用 @Configuration、@EnableAutoConfiguration 和 @ComponentScan。
    • 使用場(chǎng)景:必須添加在 Spring Boot 應(yīng)用的主啟動(dòng)類(lèi)上,是應(yīng)用啟動(dòng)的必要條件。
  • 示例
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

@Configuration

  • 作用:聲明當(dāng)前類(lèi)是一個(gè)配置類(lèi),相當(dāng)于 Spring 的 XML 配置文件。
  • 使用場(chǎng)景:用于定義和配置 Bean,通常配合 @Bean 注解一起使用。
  • 示例
@Configuration
public class AppConfig {
    @Bean
    public DataSource dataSource() {
        // 配置并返回一個(gè)數(shù)據(jù)源 Bean
        return new HikariDataSource();
    }
}
  • @EnableAutoConfiguration
    • 作用:?jiǎn)⒂?Spring Boot 的自動(dòng)配置機(jī)制,根據(jù)類(lèi)路徑和配置文件中的信息自動(dòng)配置 Spring 應(yīng)用。
    • 使用場(chǎng)景:通常與 @SpringBootApplication 一起使用,無(wú)需單獨(dú)使用。
  • @ComponentScan
    • 作用:自動(dòng)掃描指定包及其子包下的組件(如 @Component、@Service@Repository、@Controller 等),并將它們注冊(cè)為 Spring Bean。
    • 使用場(chǎng)景:通常與 @SpringBootApplication 一起使用,無(wú)需單獨(dú)使用。若需自定義組件掃描范圍,可通過(guò) basePackages 屬性指定。
  • 示例
@SpringBootApplication(scanBasePackages = "com.example.demo")
public class DemoApplication {
    // ...
}

二、組件注冊(cè)注解

  • @Component
    • 作用:通用的組件注解,用于標(biāo)記任何類(lèi)為 Spring 的組件。Spring 會(huì)自動(dòng)掃描并創(chuàng)建該類(lèi)的實(shí)例。
    • 使用場(chǎng)景:當(dāng)組件不屬于 Controller、Service、Repository 等特定層級(jí)時(shí)使用。
  • 示例
@Component
public class ToolUtil {
    public String formatStr(String str) {
        return str.trim().toUpperCase();
    }
}

@Service

  • 作用:標(biāo)記業(yè)務(wù)邏輯層(Service 層)的組件,是 @Component 的特化版本,語(yǔ)義更加明確。
  • 使用場(chǎng)景:用于封裝核心業(yè)務(wù)邏輯。
  • 示例
@Service
public class UserService {
    public User getUserById(Integer id) {
        // 實(shí)際場(chǎng)景中會(huì)調(diào)用 Repository 層查詢(xún)數(shù)據(jù)庫(kù)
        User user = new User();
        user.setId(id);
        user.setName("李四");
        return user;
    }
}

@Repository

  • 作用:標(biāo)記數(shù)據(jù)訪(fǎng)問(wèn)層(DAO 層)的組件,是 @Component 的特化版本。除了將類(lèi)注冊(cè)為 Bean 外,它還額外提供了持久化異常轉(zhuǎn)換的功能。
  • 使用場(chǎng)景:用于封裝數(shù)據(jù)訪(fǎng)問(wèn)邏輯,與數(shù)據(jù)庫(kù)交互。
  • 示例
@Repository
public interface UserRepository extends JpaRepository<User, Integer> {
    User findByName(String name);
}

@Controller

  • 作用:標(biāo)記控制層組件,用于接收 HTTP 請(qǐng)求并返回視圖或數(shù)據(jù)。
  • 使用場(chǎng)景:Web 層控制器類(lèi),處理用戶(hù)請(qǐng)求(如頁(yè)面跳轉(zhuǎn)、表單提交等)。
  • 示例
@Controller
@RequestMapping("/user")
public class UserController {
    @GetMapping("/info")
    public String userInfo(Model model) {
        model.addAttribute("username", "張三");
        return "user-info"; // 返回視圖名
    }
}

@RestController

  • 作用:組合注解,相當(dāng)于 @Controller + @ResponseBody。用于構(gòu)建 RESTful API,返回 JSON/XML 等數(shù)據(jù)格式,而非視圖。
  • 使用場(chǎng)景:前后端分離項(xiàng)目的接口層,提供 RESTful API(如移動(dòng)端接口、前端 AJAX 請(qǐng)求接口)。
  • 示例
@RestController
@RequestMapping("/api/user")
public class UserRestController {
    @GetMapping("/info")
    public User getUserInfo() {
        User user = new User();
        user.setId(1);
        user.setName("張三");
        return user; // 直接返回 User 對(duì)象,會(huì)自動(dòng)轉(zhuǎn)為 JSON
    }
}

三、依賴(lài)注入注解

  • @Autowired
    • 作用:自動(dòng)注入依賴(lài)的 Bean,Spring 會(huì)在 IoC 容器中查找匹配類(lèi)型的 Bean 并注入到目標(biāo)字段、構(gòu)造方法或 setter 方法中。
    • 使用場(chǎng)景:需要注入其他 Bean 依賴(lài)時(shí)(如 Service 層注入 Repository 層、Controller 層注入 Service 層)。
    • 示例
@RestController
public class UserRestController {
    private final UserService userService;
    @Autowired
    public UserRestController(UserService userService) {
        this.userService = userService;
    }
    @GetMapping("/info")
    public User getUserInfo() {
        return userService.getUserById(1);
    }
}

@Qualifier

  • 作用:與 @Autowired 一起使用,用于指定要注入的 Bean 的名稱(chēng)。當(dāng)存在多個(gè)相同類(lèi)型的 Bean 時(shí),可以使用 @Qualifier 來(lái)指定注入哪一個(gè)。
  • 使用場(chǎng)景:解決相同類(lèi)型 Bean 的歧義性注入問(wèn)題。
  • 示例
@RestController
public class UserRestController {
    private final UserService userService;
    @Autowired
    @Qualifier("userServiceImpl") // 指定注入的 Bean 名稱(chēng)
    public UserRestController(UserService userService) {
        this.userService = userService;
    }
    // ...
}

@Value

  • 作用:注入配置文件中的值,可以注入 String、int、longdouble、boolean 等類(lèi)型。
  • 使用場(chǎng)景:從配置文件中讀取配置值并注入到 Bean 的屬性中。
  • 示例
@Component
public class AppConfig {
    @Value("${server.port}")
    private int port;

    // ...
}

四、Web 開(kāi)發(fā)注解

  • @RequestMapping
    • 作用:映射 HTTP 請(qǐng)求到處理方法,可以用于類(lèi)和方法上。用于指定請(qǐng)求 URL 和 HTTP 方法(GET、POST、PUT、DELETE 等)。
    • 使用場(chǎng)景:處理 Web 請(qǐng)求,將請(qǐng)求映射到具體的處理方法上。
    • 示例
@RestController
@RequestMapping("/api/user")
public class UserRestController {
    @GetMapping("/info")
    public User getUserInfo() {
        // ...
    }
    @PostMapping("/create")
    public User createUser(@RequestBody User user) {
        // ...
    }
}

@GetMapping、@PostMapping、@PutMapping@DeleteMapping

  • 作用:分別用于映射 HTTP GET、POST、PUT、DELETE 請(qǐng)求到處理方法上。它們是 @RequestMapping 的特化,分別對(duì)應(yīng)不同的 HTTP 請(qǐng)求方法。
  • 使用場(chǎng)景:簡(jiǎn)化 RESTful API 的開(kāi)發(fā),直接對(duì)應(yīng) HTTP 方法。
  • 示例
@RestController
@RequestMapping("/api/user")
public class UserRestController {
    @GetMapping("/info")
    public User getUserInfo() {
        // ...
    }
    @PostMapping("/create")
    public User createUser(@RequestBody User user) {
        // ...
    }
}

@RequestParam

  • 作用:用于將請(qǐng)求參數(shù)綁定到 Controller 方法的參數(shù)上。
  • 使用場(chǎng)景:獲取 URL 查詢(xún)參數(shù)或表單提交的參數(shù)。
  • 示例
@GetMapping("/search")
public List<User> searchUsers(@RequestParam String name, @RequestParam(defaultValue = "10") int size) {
    // ...
}

@PathVariable

  • 作用:用于獲取請(qǐng)求路徑中的參數(shù),通常用于 RESTful 風(fēng)格的 API 上。
  • 使用場(chǎng)景:從 URL 路徑中提取參數(shù)值。
  • 示例
@GetMapping("/user/{id}")
public User getUserById(@PathVariable Long id) {
    // ...
}

@RequestBody

  • 作用:用于接收請(qǐng)求體中的 JSON 數(shù)據(jù),并將其綁定到 Controller 方法的參數(shù)上。
  • 使用場(chǎng)景:處理 POST、PUT 等請(qǐng)求中的 JSON 數(shù)據(jù)。
  • 示例
@PostMapping("/create")
public User createUser(@RequestBody User user) {
    // ...
}

@ResponseBody

  • 作用:表示該方法的返回結(jié)果直接寫(xiě)入 HTTP 響應(yīng)體中,返回?cái)?shù)據(jù)的格式為 application/json。通常與 @Controller 一起使用,若使用 @RestController 則無(wú)需使用此注解。
  • 使用場(chǎng)景:返回 JSON/XML 等數(shù)據(jù)格式,而非視圖。
  • 示例
@Controller
public class UserController {
    @GetMapping("/info")
    @ResponseBody
    public User getUserInfo() {
        User user = new User();
        user.setId(1);
        user.setName("張三");
        return user;
    }
}

到此這篇關(guān)于Java springboot里注解大全和使用指南(最新整理)的文章就介紹到這了,更多相關(guān) springboot注解使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 示例解析java重載Overloading與覆蓋Overriding

    示例解析java重載Overloading與覆蓋Overriding

    這篇文章主要介紹了java重載Overloading與覆蓋Overriding的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Java如何獲取當(dāng)前進(jìn)程ID以及所有Java進(jìn)程的進(jìn)程ID

    Java如何獲取當(dāng)前進(jìn)程ID以及所有Java進(jìn)程的進(jìn)程ID

    本篇文章主要介紹了Java如何獲取當(dāng)前進(jìn)程ID以及所有Java進(jìn)程的進(jìn)程ID,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 系統(tǒng)講解Java如何優(yōu)雅地打印日志

    系統(tǒng)講解Java如何優(yōu)雅地打印日志

    本文將介紹如何優(yōu)雅地打印日志,告別 System.out.println,使用專(zhuān)業(yè)的日志框架(Logback/Log4j2)來(lái)管理日志,讓你的日志更專(zhuān)業(yè)、更規(guī)范、更易于排查問(wèn)題
    2026-05-05
  • Java網(wǎng)絡(luò)編程基礎(chǔ)用法詳解

    Java網(wǎng)絡(luò)編程基礎(chǔ)用法詳解

    網(wǎng)絡(luò)編程是指編寫(xiě)運(yùn)行在多個(gè)設(shè)備(計(jì)算機(jī))的程序,這些設(shè)備都通過(guò)網(wǎng)絡(luò)連接起來(lái),本文將帶大家詳細(xì)了解Java的網(wǎng)絡(luò)編程,文中有相關(guān)的代碼示例,需要的朋友可以參考下
    2023-05-05
  • Mybatis使用@one和@Many實(shí)現(xiàn)一對(duì)一及一對(duì)多關(guān)聯(lián)查詢(xún)

    Mybatis使用@one和@Many實(shí)現(xiàn)一對(duì)一及一對(duì)多關(guān)聯(lián)查詢(xún)

    本文主要介紹了Mybatis使用@one和@Many實(shí)現(xiàn)一對(duì)一及一對(duì)多關(guān)聯(lián)查詢(xún),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • IDEA中database使用教程

    IDEA中database使用教程

    idea集成了一個(gè)數(shù)據(jù)庫(kù)管理工具,可以可視化管理很多種類(lèi)的數(shù)據(jù)庫(kù),本文主要介紹了IDEA中database使用教程,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-06-06
  • Java自定義異常與異常使用的最佳方式

    Java自定義異常與異常使用的最佳方式

    這篇文章主要介紹了Java自定義異常與異常使用的最佳方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java實(shí)現(xiàn)pdf文件截圖的方法【附PDFRenderer.jar下載】

    java實(shí)現(xiàn)pdf文件截圖的方法【附PDFRenderer.jar下載】

    這篇文章主要介紹了java實(shí)現(xiàn)pdf文件截圖的方法,結(jié)合實(shí)例形式分析了java基于PDFRenderer.jar進(jìn)行pdf文件截圖的相關(guān)操作技巧,并附帶PDFRenderer.jar文件供讀者下載使用,需要的朋友可以參考下
    2018-01-01
  • java中如何獲取時(shí)間戳的方法實(shí)例

    java中如何獲取時(shí)間戳的方法實(shí)例

    時(shí)間戳通常是一個(gè)字符序列,唯一地標(biāo)識(shí)某一刻的時(shí)間,所以下面這篇文章主要給大家介紹了關(guān)于java中如何獲取時(shí)間戳的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • SpringBoot實(shí)現(xiàn)驗(yàn)證碼的案例分享

    SpringBoot實(shí)現(xiàn)驗(yàn)證碼的案例分享

    驗(yàn)證碼可以有效防止其他人對(duì)某一個(gè)特定的注冊(cè)用戶(hù)用特定的程序,破解方式進(jìn)行不斷的登錄嘗試,我們其實(shí)很經(jīng)??吹?登錄一些網(wǎng)站其實(shí)是需要驗(yàn)證碼的,所以本文給大家分享了SpringBoot實(shí)現(xiàn)驗(yàn)證碼的案例,需要的朋友可以參考下
    2024-11-11

最新評(píng)論

张家川| 工布江达县| 榆社县| 宣恩县| 若羌县| 贞丰县| 资兴市| 宁南县| 南安市| 荣成市| 盘锦市| 通州区| 工布江达县| 铁岭市| 宝兴县| 惠安县| 竹山县| 都昌县| 孝感市| 调兵山市| 崇信县| 恩平市| 城口县| 宁夏| 新建县| 连州市| 萝北县| 桐庐县| 利川市| 浪卡子县| 武城县| 青龙| 策勒县| 秦皇岛市| 巨鹿县| 犍为县| 策勒县| 万源市| 仁怀市| 齐齐哈尔市| 乌兰察布市|