2.1、运用Spring Boot
初始化目录结构
上图是一个名为readinglist项目初始化后的目录结构
build.gradle:Gradle构建说明文件,如果是maven的话就没有这个,因为是在书上截的图,所以有这个文件,我比较喜欢使用maven。
ReadingListApplication.java:应用程序的启动引导类也是主要的Spring配置类。
application.properties:用于配置应用Spring Boot 的属性。
ReadingListApplicationTests.java:一个基本的集成测试类。
2.1.1启动引导类
启动引导类在Spring Boot应用中有两个作用:配置和启动引导。首先这是Spring主要的配置类。虽然Spring Boot自动配置免除了很多Spring配置,但是还需要少量的配置来启动自动配置。
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开启了Spring的组件扫描和Spring的自动配置功能,实际上是将三个注解组合到了一起。
- Spring的@Configuration:标明该类使用基于java的配置,就是使用java类替代.xml配置
- Spring的@ComponentScan:启动组件扫描,就是自动扫包扫描那些@Bean @Controller @Service等等注解标注的方法或类到上下文
- Spring Boot的@EnableAutoConfiguration:书中作者称这个注解为Abraccadabra(咒语的意思),这个注解开启了Spring Boot的自动配置功能,不用再写成篇的配置了。
也就是说 @SpringBootApplication = @Configuration + @ComponentScan + @EnableAutoConfiguration 你说厉害不厉害
@SpringBootApplication只有在Spring Boot 1.2.0版本以及之后的版本才有,如果是之前的版本就只能写三个注解了。
2.1.2 集成测试类
一个Java程序员必须写测试,虽然我之前很少写!
Spring Boot 在构建项目的时候提供了测试的骨架
import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.web.WebAppConfiguration; @RunWith(SpringRunner.class)// SpringJUnit支持,由此引入Spring-Test框架支持! @SpringBootTest// 指定我们SpringBoot工程的Application启动类 @WebAppConfiguration // 由于是Web项目,Junit需要模拟ServletContext,因此我们需要给我们的测试类加 public class SpringBootDemo1ApplicationTests { @Test public void contextLoads() { } }
2.1.3配置应用程序属性
server.port=8080
以上代码在application.properties文件中配置,设置嵌入的Tomcat舰艇端口为8080,在应用启动之后Spring Boot 会默认加载(不需要哦欸之的)application.properties 并且根据文件中设置的属性设置应用程序。
2.1.4项目构建
目前比较常用的构建工具有Gradle和Maven,Gradle一直都没用过,我觉得Maven在依赖管理上来说更直观简单一些。
4.0.0
com.glp
spring-boot-demo
0.0.1-SNAPSHOT
jar
spring-boot-demo
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.4.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
2.2、起步依赖
2.3、自动配置