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