概述
Spring 作为一个轻量级的容器,在 Java EE 开发中得到了广泛的应用,但是 Spring 的配置烦琐 雕肿,在和各种第三方框架进行整合时代码量都非常大,并且整合的代码大多是重复的,为了便开 发者能够快速上手 Spri吨,利用 Spring 框架快速搭建 Java EE 项目, Spring Boot 应运而生。
用SpringBoot开发项目的好处
- 提供一个快速的 Spring 项目搭建渠道。
- 开箱即用,很少的Spring 配直就能运行一个JavaEE项目。
- 提供了生产级的服务监控方案。
- 内嵌服务器,可以快速部署。
- 提供了一系列非功能性的通用配置。
- 纯Java配置,没有代码生成,也不需要XML配置。
开发第一个SpringBoot程序
项目构建:
1.添加依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.0.RELEASE</version> </parent>
spring-boot-starter-parent 是一个特殊的 Starter, 提供了一些 Maven 的默认配置,同时还提供了 dependency-management,可以便开发者在引入其他依赖时不必输入版本号,方便依赖管理。Spring Boot 中提供的 Starter 非常多这些 Starter 主要为第三方库提供自动配置,例如要开发一个 Web 项目,就可以先引入一个 Web 的 Starter,代码如下:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
2.写个控制器返回HelloWord测试下
@RestController public class HelloController { @GetMapping("/hello") public String hello() { return "hello spring boot"; } }
在控制器中提供了一个“/hello”接口,此时需要配置包扫描才能将 HelloController注册到 Spring MVC 容器中,因此在 App 类上面再添加一个注解@ComponentScan 进行包扫描,代码如下:
@SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class,args); } }
3.打包启动
在生产环境中,也可以通过这样的方式来 运行一个 Spring Boot 应用。要将 Spring Boot 打成 jar 包运行,首先需要添加一个 plugin 到 pom.xml 文件中,代码如下:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-pluginmavenplug</artifactId> </dependency>
然后用mvc package命令进行打包,打包完成后,在项目的 target目录下会生成一个jar文件,通过java -jar命令直接启动这个jar文件
不使用spring-boot-stater-parent
spring-boot-starter-parent 虽然方便,但是读者在公司中开发微服务项目或者多模块项目时一般 需要使用公司自己的 parent, 这个时候如果还想进行项目依赖版本的统一管理,就需要使用 dependencyManagement来实现了。添加如下代码到 pom.xml 文件中 :
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.2.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
此时,就可以不用继承 spring-boot-starter-parent 了,但是 Java 的版本、编码的格式等都需要 开发者手动配置。
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
如果是通过普通Maven项目配置成的Spring Boot 项目,那么在pom.xml文件中加入如下配置即可:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties>
@SpringBootApplication 实际上是一个组合注解
- @SpringBootConfiguration 的功能就是表明这是一个配置 类,开发者可以在这个类中配置 Bean
- @EnableAutoConfiguration 表示开启自动化配置
- @ComponentScan完成包扫描,也是Spring中的功能
- @ComponentScan 注解,除了扫描@Service, @Repository、@Component、 @Controller和@RestController等之外,也会扫描@Configuration注解的类
- @ConfigurationProperties 中的 prefix 属性描述了要加载的配置文件的前缀