Spring Boot入门Hello World项目探究
一、Hello World项目探究
1、Pom文件
父项目:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.20.RELEASE</version> </parent>
它的父项目是:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.5.20.RELEASE</version> <relativePath>../../spring-boot-dependencies</relativePath> </parent>
它来真正管理Spring Boot应用里面的所有依赖版本。
它是Spring Boot的版本仲裁中心
以后我们导入依赖默认是不需要写版本(没有在dependencies里面管理的依赖,自然要声明版本号)
2、导入了一个依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
spring-boot-starter-web
spring-boot-starter:Spring Boot场景启动器,帮我们导入了Web模块正常运行所依赖的组件
Spring Boot将所有的功能场景都抽取出来,做成一个个starter(启动器),只要在项目里面引入这些starter的相关场景的所有依赖都会
导入进来,要使用什么功能,就导入什么场景的启动器。
2、主程序类,主入口类
/** * @SpringBootApplication 来标注一个主程序类,说明这是一个Spring boot应用 * */ @SpringBootApplication public class MainApplication { public static void main(String[] args) { //启动spring boot应用 SpringApplication.run(MainApplication.class,args); } }
@SpringBootApplication:Spring Boot应用标注在某个类上,说明这个类是Spring Boot的主配置类,Spring Boot就应该运行这个类的main方法
来启动Spring Boot应用
@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:这个注解标注在某个类上表示这个类是Spring Boot的启动类
@Configuration:配置类上来标注这个注解
配置类----配置文件,配置类也是容器中的一个组件,@Component
@EnableAutoConfiguration:开启自动配置功能
以前我们需要配置的东西,现在都由Spring Boot帮我们自动配置,@EnableAutoConfiguration帮助我们告诉Spring Boot开启自动配置功能,这样
自动配置才能生效