首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Spring Boot 核心註解完整指南:從入門到實戰

     編輯:Java 綜合教學

Web 開發核心註解

@RestController 與 @RequestMapping

@RestController 是一個組合註解(stereotype),等同於 @Controller + @ResponseBody,告訴 Spring 該類處理 Web 請求並直接以字串形式回傳結果。@RequestMapping 提供路由資訊,將 HTTP 請求映射到特定方法。

@RestController
@RequestMapping("/")
public class Example {
    @GetMapping
    public String home() {
        return "Hello World";
    }
}
註:這兩個是 Spring MVC 註解,非 Spring Boot 專屬。

@EnableAutoConfiguration:自動配置核心

根據專案引入的 jar 依賴自動推測並配置 Spring。例如引入 spring-boot-starter-web 會自動配置 Tomcat 與 Spring MVC。可透過 exclude 屬性排除特定自動配置類:

@Configuration
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
public class MyConfiguration { }

配置類相關註解

@Configuration 與 @Bean

  • @Configuration:標註配置類,等同於 XML 中的 <beans>。
  • @Bean:標註方法,等同於 XML 中的 <bean>,方法回傳值註冊為 Bean。

Spring Boot 推薦基於 Java 的配置。若必須用 XML,可用 @ImportResource 載入。

@ComponentScan:組件掃描

自動掃描並註冊 @Component、@Service、@Repository、@Controller 等 Bean。若應用類放在根套件下,無需參數即可自動掃描。

@SpringBootApplication:一站式啟動註解

組合 @Configuration、@EnableAutoConfiguration、@ComponentScan(預設屬性),極大簡化主類宣告:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

屬性綁定與配置進階

@ConfigurationProperties:類型安全屬性綁定

@Component
@ConfigurationProperties(prefix = "connection")
public class ConnectionSettings {
    private String username;
    private InetAddress remoteAddress;
    // getters/setters
}

注入使用:@Autowired private ConnectionSettings connection;

也可用於 @Bean 方法綁定第三方元件屬性。支援 JSR-303 驗證(如 @NotNull)。

@EnableConfigurationProperties:啟用配置屬性

標註於 @Configuration 類,自動將 @ConfigurationProperties Bean 納入環境屬性配置,或直接列出屬性類快速註冊。

其他常用註解

@Component vs @Bean

  • @Component:類別層級,自動掃描裝配,不使用 CGLIB 代理(直接操作原始物件)。等同於 @Service、@Controller、@Repository。
  • @Bean:方法層級,顯式聲明 Bean 生成邏輯,常用於整合第三方庫或 Web Service 取得的類別。

@Profile:環境隔離

限制 @Component 或 @Configuration 載入時機。配合 spring.profiles.active(如 dev,hsqldb)指定生效環境。

@Configuration
@Profile("production")
public class ProductionConfiguration { }
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved