SpringBoot
软件152段聪
SpringBoot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
Spring Boot特点
安装Spring Boot
从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。简便起见,该框架也提供了命令行界面,它可以用来运行和测试Boot应用。框架的发布版本,包括集成的CLI(命令行界面),可以在Spring仓库中手动下载和安装。一种更为简便的方式是使用Groovy环境管理器,它会处理Boot版本的安装和管理。Boot及其CLI可以通过GVM的命令行gvm install springboot进行安装。在OS X上安装Boot可以使用Homebrew包管理器。为了完成安装,首先要使用brew tap pivotal/tap切换到Pivotal仓库中,然后执行brew install springboot命令。
要进行打包和分发的工程会依赖于像Maven或Gradle这样的构建系统。为了简化依赖图,Boot的功能是模块化的,通过导入Boot所谓的“starter”模块,可以将许多的依赖添加到工程之中。为了更容易地管理依赖版本和使用默认配置,框架提供了一个parent POM,工程可以继承它。
SpringBoot可以直接对操作数据库中的值进行验证:
表单验证 @Min(value=18,message="未成年") 加在实体Entity类的属性上,表示获取的值最小为18 @Valid Person person,BindingResult bindingResult Controller的 某一个方法上(作为参数),验证结果保存在BindingResult里可通过下面的方法来获取 if(bindingResult.hasErrors()){ System.out.println(bindingResult.getFieldError().getDefaultMessage());//获取到错误信息 ,当然,也可以返回给前端去,这里获取的值就是“未成年” return null; }
SpringBoot中同样可以对异常信息进行统一处理:
public void getAge(Integer id) throws Exception{ Person person = personRepository.findOne(id); Integer age=person.getAge(); if(age < 10 ){ //返回 你还在上小学吧 throw new PersonException(ResultEnum.PRIMARY_SCHOOL);//这里用了一个自定义异常,用到枚举来对返回的东西进行封装 }else if(age >= 10&& age<=16){ //返回 你可能还在上初中 throw new PersonException(ResultEnum.MIDDLE_SCHOOL); } }
自定义异常类来捕获异常,注意要继承RuntimeException :
package exception; import enums.ResultEnum; public class PersonException extends RuntimeException { private static final long serialVersionUID = 1L; private Integer code; public PersonException(ResultEnum resultEnum) { super(resultEnum.getMsg()); this.code=resultEnum.getCode(); } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } }
异常的统一管理(通过这个类来对异常进行统一管理,当产生异常可以返回给客户端json数据):
package cqvie.handle; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import entity.Result; import exception.PersonException; import utils.ResultUtil; @ControllerAdvice public class ExceptionHandle { private final static Logger logger= LoggerFactory.getLogger(ExceptionHandle.class); @ExceptionHandler(value=Exception.class) @ResponseBody public Result<?> handle(Exception e){ if(e instanceof PersonException){ return ResultUtil.error(((PersonException) e).getCode(), e.getMessage()); }else{ logger.error("【系统异常】{}",e); return ResultUtil.error(-1, "内置错误"); } } }
SpringBoot中没有xml来配置,默认用properties文件来配置,但是建议用yml文件配置(application.yml):
spring: profiles: active: dev 就像html中的include一样,可以通过spring profiles active来激活或导入另一个yml文件,如:application-dev.yml //对数据库的一些配置 datasource: username: root password: 123 driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/springboot jpa: database-platform: org.hibernate.dialect.MySQL5Dialect hibernate: ddl-auto: update show-sql: true