SpringBoot入门篇

  • 添加依赖
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
  • 应用启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

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

}
  • 注解@SpringBootApplication说明

@SpringBootApplication是一个组合注解。

@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 {

}

@SpringBootConfiguration也是一个组合注解。

@Configuration:如果一个类上添加了@Configuration,代表是一个JavaConfig,可以充当Spring容器,相当于Spring的配置文件。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {

}

@EnableAutoConfiguration也是一个组合注解。

@AutoConfigurationPackage:表示将主配置类(即@SpringBootApplication 标注的类)所在的包及其子包里的所有类都纳入 Spring 容器。

@Import 注解,是 Spring 的底层注解。它给容器中导入一个了组件 (AutoConfigurationImportSelector.class)。

AutoConfigurationImportSelector 确定了导入哪些组件到选择器,这些组件会被自动添加到 Spring 容器。

可以看spring-boot-autoconfigure.jar 下 META-INF/spring.factories文件以及jar里面的自动配置相关类,这些自动配置类作用就是帮我们自动配置好,来达到简化开发、提供效率的目的。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {

}