Spring Boot 註解詳解

一、常用的Spring Boot 註解

Spring Boot 是一個快速創建 Spring 應用程序的框架,其基於 Spring 框架,可以輕鬆快捷地搭建生產級別的應用程序。在 Spring Boot 的開發過程中,使用註解可以大大簡化開發工作,以下是常用的 Spring Boot 註解:

  • @SpringBootApplication:標識 Spring Boot 應用的主類,兼有 @Configuration、@EnableAutoConfiguration、@ComponentScan 註解的功能。
  • @RestController:使一個類成為 REST 風格的 Spring MVC 控制器,等價於添加 @Controller 和 @ResponseBody 註解。
  • @RequestMapping:用於映射 HTTP 請求到控制器的處理方法上,可以用來設置 URL、請求參數、請求方法、請求頭等屬性。
  • @PathVariable:用於將 URI 模板變量映射到控制器處理方法的參數上。
  • @RequestParam:用於將請求參數映射到控制器處理方法的參數上。
  • @Autowired:用於自動注入 Spring Bean。
  • @Qualifier:在自動注入 Bean 的基礎上,按照 Bean 名稱或 qualifying annotation 進行限定。
  • @ConfigurationProperties:用於將配置文件中的屬性映射到 Bean 的屬性上。
  • @Bean:用於在 Spring 容器中註冊 Bean。
  • @Component:通用的 Spring 組件註解。

二、常用註解的使用示例

1、@RestController 和 @RequestMapping

以下示例展示了如何使用 @RestController 和 @RequestMapping 實現一個簡單的控制器,輸出 “Hello, World!”:

@RestController
public class GreetingController {

    @RequestMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }

}

2、@PathVariable 和 @RequestParam

以下示例展示了如何使用 @PathVariable 和 @RequestParam 處理 URL 上的參數,並輸出結果:

@RestController
public class UserController {

    @RequestMapping("/users/{id}")
    public String getUserInfo(@PathVariable Long id, @RequestParam String name) {
        return "User #" + id + " name is " + name;
    }

}

3、@Autowired 和 @Qualifier

以下示例展示了如何使用 @Autowired 和 @Qualifier 自動注入 Spring Bean,並通過限定名稱輸出 Bean 的屬性值:

@Component
public class User {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

@Service
public class UserService {

    @Autowired
    @Qualifier("user") // 限定名稱為 "user" 的 Bean
    private User user;

    public String sayHello() {
        return "Hello, " + user.getName() + "!";
    }

}

@Configuration
public class AppConfig {

    @Bean
    public User user() {
        User user = new User();
        user.setName("Tom");
        return user;
    }

}

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/hello")
    public String hello() {
        return userService.sayHello();
    }

}

4、@ConfigurationProperties 和 @Value

以下示例展示了如何使用 @ConfigurationProperties 將配置文件中的屬性映射到 Bean 的屬性上,並使用 @Value 註解輸出配置文件的屬性值:

@Configuration
@ConfigurationProperties(prefix = "my.config")
public class MyConfig {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

@RestController
public class MyController {

    @Autowired
    private MyConfig myConfig;

    @Value("${my.config.desc}")
    private String desc;

    @RequestMapping("/hello")
    public String hello() {
        return "Hello, " + myConfig.getName() + "! " + desc;
    }

}

三、小結

Spring Boot 通過註解的方式,極大地簡化了常規的配置工作,從而提高了開發效率。本文介紹了常用的 Spring Boot 註解,並且給出了相關的代碼示例,以幫助讀者更好地理解和使用 Spring Boot。

原創文章,作者:GCWXC,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/370019.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GCWXC的頭像GCWXC
上一篇 2025-04-18 13:40
下一篇 2025-04-18 13:40

相關推薦

發表回復

登錄後才能評論