1.什么是spring boot
首先,对于初学者可能会说,spring boot到底是什么?Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
说白了,spring boot就是一些库的集合,方便我们用java构建项目时的启动,并且简化代码,让程序员不用自己去定义大量的模板。那我们要学习这个工具又该怎么入手?
2.快速实例入门
(1)项目结构简介
通过观察日志可以发现更多的默认配置
2) pom.xml文件简介
此文件引入了三个模块分别是starter、starter-test)、starter-web,如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
<swagger.version>2.7.0</swagger.version>
<google.guava>23.0</google.guava>
<commons-lang3>3.7</commons-lang3>
<fastjson.version>1.2.41</fastjson.version>
<quartz.version>2.3.0</quartz.version>
<druid.version>1.1.6</druid.version>
<poi.version>3.17</poi.version>
</properties>
<dependencies>
<!-- spring boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
(3)编写controller类
某项目的controller类的部分代码:
package com.myqm.controller.sysfun;
import java.util.List;
import javax.validation.Valid;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull;
import org.apache.poi.ss.usermodel.Workbook;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.myqm.pojo.ResultResponse;
import com.myqm.pojo.base.BaseRecord;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import com.myqm.controller.base.BaseController;
import com.myqm.pojo.PageTableData;
import com.myqm.pojo.sysfun.SysLogs;
import com.myqm.pojo.sysfun.Hello;
import com.myqm.vo.sysfun.HelloQuery;
import com.myqm.service.sysfun.HelloService;
@Api(tags = "Hello")
@RestController
@Validated
@RequestMapping("/api/hello")
public class HelloController extends BaseController {
@Autowired
public HelloService helloService;
@ApiOperation(value="新增记录")
@PostMapping(value="/add")
@PreAuthorize("hasAuthority('hello:add')")
public ResultResponse<String> save(
@ApiParam(required = true, value = "添加Hello")
@Valid @RequestBody Hello record) {
return super.addOperateResult(helloService.save(record), record.getId());
}
......
(4)测试用例的编写
某项目的部分测试用例编写,如下:
package com.myqm.dao.sysfun;
import com.myqm.pojo.sysfun.Dict;
import com.myqm.vo.sysfun.QueryDict;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import static org.junit.Assert.*;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class DictDaoTest {
@Autowired
DictDao testObject;
/**
* 测试保存
*/
@Transactional
@Test
public void testSave() {
Dict t = new Dict();
t.setK("b");
t.setVal("b");
t.setType("2");
testObject.save(t);
Dict result = testObject.getById(t.getId());
assertNotEquals(result,null);
}