Spring Boot框架技术

spring的优缺点

Spring的优点:

J2EE的轻量级代替品,为企业级Java开发提供了一种相对简单的方法,通过依赖注入(IOC)和面向切面编程(AOP),用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能

Spring的缺点:

1,Spring的组件代码是轻量级的,但它的配置却是重量级的。

2,基于Maven构建项目,可以帮助我们下载及管理项目中的依赖(jar包),但在项目中导入依赖,就需要我们在pom文件中添加很多依赖的坐标,项目的依赖管理也是一件耗时耗力的事情。

      在环境搭建时,需要分子要导入那些依赖的坐标,而且还需要分子导入预支有依赖关系的其他依赖的坐标。

Spring Boot让这一切成为了过去。

Spring Boot简介

Spring Boot是一个脚手架。能够快速的帮我们快速搭建Spring项目,实现技术的开箱即用,以提高开发效率。

脚手架:在项目开发前期,每次开始一个新项目,能够帮我们将必要的项目结构、所需依赖及文件提供好,帮我们省去很多繁琐的工作。使我们可以更加快速的进行项目开发。

Spring Boot核心的关键特性:

  • 起步依赖(Starter Dependency)
  • 自动配置(Auto Configuration)
  • 健康检查(Actator)-监控
  • 嵌入式服务(Tomcat,Jetty)

Spring Boot的两大核心功能:

1、起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。

2、自动配置:针对很多Spring应用程序常见的功能,能自动提供相关的配置

     1)Spring JdbcTemplate是不是在ClassPath里?如果是,并且有DataSource的Bean,则自动配置一个JdbcTemplate的Bean。

    2)Thymeleaf是不是在Classpath里?如果是,则配置Thymeleaf的模板解析器、视图解析器以及模板引擎。

总结:SpringBoot对上述Spring的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必再配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了西安航母周期

Spring Boot工程中的响应标准设计及实现

分析:

在基于C/S框架的编程模型中,客户端往往需要对服务端返回的数据基于状态的不同进行不同的处理。eg:正确的状态数据一种呈现方式,错误的状态另外一种呈现方式。即服务端响应数据的标准化设计油然而生。

响应标准设计:

在响应数据标准化设计时,首先响应数据进行分析(哪些数据要响应到客户端,对这些数据进行怎样的状态设计等)。假如现在响应的业务数据包含三部分:状态,消息,具体数据

/**
 * 基于此对象封装服务端响应到客户端的数据
 */
public class ResponseResult {
    /**响应状态码(有的人用code)*/
    private Integer state=1;//1表示ok,0表示error,.....
    /**状态码对应的信息*/
    private String message="ok";
    /**正确的响应数据*/
    private Object data;

    public ResponseResult(){}

    public ResponseResult(String message){//new ResponseResult("delete ok"),
        this.message=message;
    }
    public ResponseResult(Object data){//new ResponseResult(list);
        this.data=data;
    }
    public ResponseResult(Throwable e){//new ResponseResult(e);
        this.state=0;
        this.message=e.getMessage();
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }
}

响应数据的封装:

在Controller类的逻辑方法中进行正常的响应数据封装:

import com.cy.pj.common.pojo.ResponseResult;


@RestController
public class ArithmeticController {

      @RequestMapping("/doCompute/{n1}/{n2}")
      public ResponseResult doCompute(@PathVariable  Integer n1, @PathVariable Integer n2){
          Integer result=n1/n2;
          ResponseResult r=new ResponseResult("计算结果:"+result);
          r.setData(result);
          return r;
      }
}

在全局异常处理对象中进行异常响应数据的封装:

import com.cy.pj.common.pojo.ResponseResult;


@RestControllerAdvice
public class GlobalExceptionHandler {
      private static final Logger log= LoggerFactory.getLogger(GlobalExceptionHandler.class);//2
      @ExceptionHandler(ArithmeticException.class)
      public ResponseResult doHandleArithmeticException(ArithmeticException e){
          e.printStackTrace();
          log.info("exception {}",e.getMessage());
          return new ResponseResult(e);//封装异常结果
      }
}

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值