• 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
  • 相关阅读:
    228. Summary Ranges
    324. Wiggle Sort II
    42. Trapping Rain Water
    工作之后
    279. Perfect Squares
    391. Perfect Rectangle
    351. Android Unlock Patterns
    246. Strobogrammatic Number
    [LeetCode] 75. Sort Colors Java
    [Java] 80. Remove Duplicates from Sorted Array II Java
  • 原文地址:https://www.cnblogs.com/DCJAMES/p/7092850.html
Copyright © 2020-2023  润新知