成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring Boot 3-啟動類詳解,你學會了嗎?

開發(fā) 前端
Spring Boot啟動類是構建Spring Boot應用程序的關鍵組成部分。它允許開發(fā)人員配置和管理應用程序的行為,同時簡化了應用程序的配置和部署過程。

Spring Boot是一個功能強大、靈活且易于使用的框架,它極大地簡化了Spring應用程序的開發(fā)和部署流程,使得開發(fā)人員能夠更專注于業(yè)務邏輯的實現(xiàn)。本文將詳細解釋這個啟動類的作用和功能。

Spring Boot啟動類

在Spring Boot中,啟動類是整個應用程序的入口點。一般是放在項目的根路徑下的(推薦放在項目的根路徑下)。它是一個標注了 @SpringBootApplication 注解的 Java 類,必須包含一個標準的 main 方法,在main方法中添加SpringApplication.run()方法,用于啟動 Spring Boot 應用程序。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class XjdocApplication {

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

啟動類上邊的@SpringBootApplication是 注解應用啟動的入口類,它自動開啟了許多有用的特性,如自動配置、組件掃描、籌劃配置類等,從而減少了開發(fā)人員的配置工作量。@SpringBootApplication是Spring Boot啟動類上的核心注解,是一個組合注解,源碼如下:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
  ...
}

他主要組合了以下3個注解:

  • @SpringBootConfiguration:表明被注解的類是一個配置類,用于定義應用程序的配置信息。
  • @EnableAutoConfiguration:開啟自動配置功能。
  • @ComponentScan:啟用組件掃描,使得Spring能夠自動發(fā)現(xiàn)和裝配一些組件

關系圖如下:

springbootApplication.pngspringbootApplication.png

注解@SpringBootConfiguration

@SpringBootConfiguration 是Spring Boot提供的特定注解之一,它用于指示一個類是Spring Boot應用程序的配置類。該注解組合了 @Configuration 注解,它表示被標注的類可以作為配置類用于配置應用程序的上下文。與 @Configuration 注解類似,它通常與其他注解一起使用,用于定義和管理應用程序的配置信息。源碼如下:

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Indexed;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
@Indexed
public @interface SpringBootConfiguration {
    @AliasFor(
        annotation = Configuration.class
    )
    boolean proxyBeanMethods() default true;
}

@Configuration 注解源碼如下:

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Component;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
    @AliasFor(
        annotation = Component.class
    )
    String value() default "";

    boolean proxyBeanMethods() default true;

    boolean enforceUniqueMethods() default true;
}

注解@EnableAutoConfiguration

@EnableAutoConfiguration 是Spring Boot框架中的一個重要注解,它允許應用程序根據(jù)類路徑中的依賴自動配置其組件。通過這個注解,Spring Boot可以根據(jù)應用程序的依賴關系自動配置各種組件。源碼如下:

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.context.annotation.Import;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
    String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";

    Class<?>[] exclude() default {};

    String[] excludeName() default {};
}

注解@ComponentScan

@ComponentScan 是Spring框架中的一個注解,用于指定Spring在哪些包中尋找組件。它會自動掃描并注冊指定包中的所有帶有 @Component 及其派生注解的類作為Spring的Bean。這樣可以方便地將自定義的類納入Spring的上下文中,使得它們可以被自動裝配和使用。下面是對 @ComponentScan 注解的詳細解釋:

  • 指定掃描包:@ComponentScan 注解允許開發(fā)人員指定要掃描的包路徑。在指定的包及其子包(默認當前目錄及所有子目錄)中,所有帶有 @Component 及其派生注解的類都將被自動注冊為Spring的Bean,這也是推薦把它放在項目根路徑下的原因。
  • 自動注冊組件:通過 @ComponentScan 注解,開發(fā)人員可以方便地將自定義的類納入Spring的上下文中,使得它們可以被自動裝配和使用。這樣可以提高開發(fā)效率,同時減少手動配置的工作量。
  • 定制掃描規(guī)則:@ComponentScan 注解還支持一些參數(shù)配置,允許開發(fā)人員定制掃描規(guī)則,如指定特定的注解、過濾規(guī)則等,以滿足特定的需求。

源碼如下:

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.beans.factory.support.BeanNameGenerator;
import org.springframework.core.annotation.AliasFor;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Documented
@Repeatable(ComponentScans.class)
public @interface ComponentScan {
  ...
}

總結

Spring Boot啟動類是構建Spring Boot應用程序的關鍵組成部分。它允許開發(fā)人員配置和管理應用程序的行為,同時簡化了應用程序的配置和部署過程。通過深入了解Spring Boot啟動類的功能和用法,開發(fā)人員可以更好地構建和管理復雜的Spring Boot應用程序。希望本文能夠幫助您更好地理解和使用Spring Boot啟動類。

責任編輯:武曉燕 來源: 修己xj
相關推薦

2024-01-02 07:04:23

2022-04-26 08:41:54

JDK動態(tài)代理方法

2024-01-02 12:05:26

Java并發(fā)編程

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2022-07-11 09:00:37

依賴配置文件Mybati

2022-07-08 08:17:48

Spring接口配置

2022-12-06 07:53:33

MySQL索引B+樹

2022-07-13 08:16:49

RocketMQRPC日志

2023-03-26 22:31:29

2022-06-27 08:16:34

JSON格式序列化

2023-03-09 07:38:58

static關鍵字狀態(tài)

2023-05-18 09:01:11

MBRGPT分區(qū)

2024-10-12 10:25:15

2024-08-12 08:12:38

2024-12-31 00:08:37

C#語言dynamic?

2024-09-10 10:34:48

2023-08-01 12:51:18

WebGPT機器學習模型

2023-05-05 08:29:15

Spring后臺服務器

2024-01-19 08:25:38

死鎖Java通信

2023-07-26 13:11:21

ChatGPT平臺工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久久久久久久久久久久久 | 精品婷婷 | 久久九九99| 在线视频 欧美日韩 | www.黄网| 中国一级特黄真人毛片 | 天堂一区二区三区四区 | 三级高清 | 特级黄一级播放 | 狠狠狠 | 日韩欧美亚洲 | 中文区中文字幕免费看 | 久久久久九九九女人毛片 | 亚洲视频在线观看 | 在线91| 日韩欧美一区二区在线播放 | 黑人巨大精品欧美一区二区一视频 | 亚洲精品日韩精品 | 午夜精品久久久久久久久久久久久 | 国产精品一区在线 | 欧美视频第二页 | 国产传媒 | 91伊人 | 国产精品一区一区 | 美国一级片在线观看 | 欧美日韩国产一区 | 久久99精品久久久久久 | 一区二区三区视频 | 国产精品99999 | 国产情侣一区 | a在线观看 | 国产九九av | 亚洲欧美日韩一区二区 | 中文字幕一区二区三区乱码图片 | 中文字幕在线一区 | 久久精品国产久精国产 | 欧美涩涩网 | 一区二区三区在线 | 欧 | 精品综合 | 人人看人人草 | 国产精品国产精品国产专区不卡 |