Spring Boot简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Spring Boot优点
简单、快速、方便,相比之前搭建Spring Web项目,我们需要配置各式各样的文件,有些甚至不需要。而现在随着业务规模扩大,部分功能需要单独分离出来,如果我这个项目仅仅只是需要每天推送一条新闻,如果我的项目仅仅是提供用户登录;我都需要这样折腾一遍! 但是如果使用 Spring Boot呢? 很简单,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套 web项目或者是构建一个业务单一的服务!Spring Boot搭建
1、访问http://start.spring.io/,填写相应的信息,点击Switch to the full version,可以选填更多。如下图:
2、点击Generate Project下载项目压缩包,然后使用开发工具导入,这里使用的是IDEA,导入后的项目结构如下图:
也可通过开发工具自动下载,如IDEA的步骤:File-->New-->Porject。如下图:
选择next,接下来的步骤就是设置项目名,路径,jdk和其他依赖组件之类的。选择dependencies时可以跳过,这里相当于在之后pom.xml里添加依赖包。
Spring Boot的基础结构共三个文件:
1.src/main/java 程序开发以及主程序入口
2.src/main/resources 配置文件
3.src/test/java 测试程序
养成良好的编码规范,建议的目录结果如下:com.example.myproject,所以本文的目录结构为:com.lyh.demo,其中具体可以细分:
3、这里采用默认的配置就好,运行DemoApplication后console输出结果如下:1.Application.java 建议放到跟目录下面,主要用于做一些框架配置
2.domain目录主要用于实体(Entity)与数据访问层(Repository)
3.service 层主要是业务类代码
4.controller 负责页面访问控制
4、这里只是测试下项目环境,毕竟我们是要弄WEB项目,接下来我们要在pom.xml添加Web模块
如下图:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
5、我们添加一个controller类,先在项目目录下添加一个controller包,然后新建一个 HelloWorldController类:
6、然后运行项目的主程序DemoApplication,看到console出现的日志: 7、 可以看到项目使用的是Tomcat,占用端口为8080,所以我们在浏览器访问: http://localhost:8080/helloWorldpackage com.lyh.demo.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController //@RestController的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了! public class HelloWorldController { @RequestMapping("/helloWorld") public String helloWorld(){ return "HelloWorld"; } }
单元测试
我们除了用浏览器测试还可以用mockmvc进行单元测试(什么是mockmvc?) 1、进入src/test/下的测试入口,使用mockmvc编写简单的http请求来测试,MockMvcResultHandlers.print()打印出执行结果,如下:2、 运行DemoApplicationTests,通过console可以看到相应的信息,如通过时间为215ms,返回状态码,header等信息。如下图:package com.lyh.demo; import com.lyh.demo.controller.HelloWorldController; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultHandlers; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @RunWith(SpringRunner.class) @SpringBootTest public class DemoApplicationTests { private MockMvc mvc; @Before public void set() throws Exception { mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build(); } @Test public void contextLoads() throws Exception { mvc.perform(MockMvcRequestBuilders.get("/helloWorld").accept(MediaType.APPLICATION_JSON)) .andExpect(MockMvcResultMatchers.status().isOk()) .andDo(MockMvcResultHandlers.print()) .andReturn(); } }
热部署
调试过程中我们需要不断的调试代码,如果修改代码一旦需要手动重启服务是非常麻烦的事情。Spring Boot非常贴心的给出了热部署的支持,在pom.xml中添加:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
总结
第一节的简单入门教程就到这里,这里我们可以发现,搭建一个Spring Web环境是不是非常快,不需要担心兼容性,版本问题,我们想要什么在配置文件添加个依赖就行。 GitHub地址: https://github/lyhkmm/spring-boot-examples/tree/master/spring-boot-demo更多推荐
Spring Boot(一)——入门环境搭建
发布评论