SpringBoot

软件152段聪

SpringBoot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。

该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

Spring Boot特点

1. 创建独立的Spring应用程序
2. 嵌入的Tomcat,无需部署WAR文件
3. 简化Maven配置
4. 自动配置Spring
5. 提供生产就绪型功能,如指标,健康检查和外部配置
6. 绝对没有代码生成和对XML没有要求配置

安装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命令。

要进行打包和分发的工程会依赖于像MavenGradle这样的构建系统。为了简化依赖图,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
原文地址:https://www.cnblogs.com/DCJAMES/p/7092850.html