简介
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的为了简化Spring的配置,核心思想是约定大于配置。在开发一个Web项目中只需要引入相关的依赖,而不需要繁琐的配置过程,当然在需要特定配置的地方,只需在配置文件中按照约定格式进行配置就能替代默认的配置,达到简化配置,快速开发的核心诉求。
Web开发
让我们来回顾下在SSH、SSM框架时代我们开发一个Web项目需要哪些开发步骤
-
配置Web.xml
-
配置Spring、SpringMvc
-
配置数据库连接文件 整合Herbnate或Mybatis的数据层操作
-
配置日志文件 配置完成Tomcat调试
可以看出,开发一个Web项目的配置还是比较繁琐的,而且当我们开发一个新的项目时相同的步骤还要继续重复。下面,让我们看看用SpringBoot来构建一个Web项目,相信你一定能体会到其中的便捷。
SpringBoot构建
构建一个SpringBoot的项目有多种方式,介绍以下三种并使用其中一种进行构建:
- 访问 http://start.spring.io/
- IDEA 构建SpringBoot项目
- 构建普通的maven项目,引入SpringBoot的相关依赖
IDEA构建(JDK1.8以上,IDEA,Maven3.0)
打开Idea-> new Project ->Spring Initializr ->填写group、artifact ->钩上web(开启web功能)->点下一步就行了。
SpringBoot目录结构
src--
main--
java--代码
com.root
controller--控制层
service--业务层
model--数据层
domain--实体层
ApplicationRun.java --主启动类
resources--资源
static--静态资源
template--动态模板
application.yml--配置文件,亦可放在config目录下
查看依赖(通过maven项目构建,只需引入相关)
<!--引入SpringBoot父依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.10.RELEASE</version>
</parent>
<!--引入Web和Test模块-->
<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>
控制层代码
@RestController
public class HelloWorldController {
@RequestMapping("/hello")
public String index() {
return "Hello World";
}
}
- RestController --直接返回json数据格式,默认使用jackson,相当于Controller+RequestMapping组合
- 直接浏览器访问localhost:8080/hello,就能看到结果
单元测试:
@RunWith(SpringRunner.class)和@SpringBootTest注解。
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloTests {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();
}
@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello World")));
}
}
此处应该看到SpringBoot的简便之处了吧:
- Spring的相关配置完全省略…
- Web相关配置完全省略…
- Tomcat配置完全省略,因为SpringBoot内置了tomcat…
结语
SpringBoot大幅简化Web项目开发,使开发人员能够专注于项目业务,非常适合快速迭代,契合当前流行的微服务趋势。后续我们还将继续介绍SpringBoot的其他功能,喜欢的可以点个心心。
参考资料:
纯洁的微笑: Springboot系列文章
方志朋: SpringBoot教程