1 开始
创建 maven 工程,pom 中添加如下依赖。
1 | <parent> |
编写一个主程序,用来启动 Spring boot 应用。
1 | // 用来标注一个主程序,说明这是一个SpringBoot应用 |
编写相关的 Controller、Service。
1 | // 用来标注一个主程序,说明这是一个SpringBoot应用 |
简化部署。添加插件后,用 maven-lifecycle-package 打包。在 target 目录下可找到打包好的 jar 包。之后在命令行中用java -jar
命令即可启动。
1 | <build> |
2 详解
2.1 pom 文件
父项目
1
2
3
4
5<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.7.RELEASE</version>
</parent>spring-boot-starter-parent 还有一个父项目如下:
1
2
3
4
5
6<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.7.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>spring-boot-dependencies 这个项目中配置了项目对应的版本号。之后再引入依赖就不用写版本号了。
依赖
1
2
3
4<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>spring-boot-starter-web
spring-boot-starter:场景启动器。
帮助导入了 web 模块正常运行需要的依赖。
Spring Boot 将所有功能场景抽取出来,做成 starters(启动器)。只要在依赖中引入 starter 相关的场景,就能实现对应的功能。
2.2 主程序类
1 | // 用来标注一个主程序,说明这是一个SpringBoot应用 |
@SpringBootApplication 注解标志了程序从哪里开始。SpringBoot 会调用标有这个注解的类的 main 方法来启动 SpringBoot 应用。这个注解由下列这些注解组成。
1 | ({ElementType.TYPE}) |
其中:
@SpringBootConfiguration 标注在某个类上,表示这是一个 SpringBoot 的配置类。这个注解上有 @Configuration 注解,可以用来标识配置类。@Configuration 上有 @Component 注解,是 Spring 的组件。
@EnableAutoConfiguration:开启自动配置。以前需要配置的东西,现在 SpringBoot 帮我们配置。这个注解底层使用了 @Import ,给容器导入Registrar类。将主配置类的所在包及下面所有子包的所有组件配置到 Spring 容器中。
这个注解还使用了 @Import 导入了 EnableAutoConfigurationImportSelector 类。将需要的组件以全类名的方式返回,会给容器中导入很多自动配置类(xxxAutoConfiguration)。有了自动配置类,免去了我们手动编写配置注入功能组件的功能的工作。
J2EE的整体整合解决方案和自动配置都在 spring-boot-autoconfigure-1.5.7.RELEASE.jar 中。