lombok使用步骤:1.安装lombok插件2.添加lombok依赖3.在对应的上使用lombok提供的注解classes由lombok提供注意:@Data这个注解描述一个类时,会在编译期为这个类生成get、set、toString、hashCode、equals等方法@ToString提供重写的t??oString方法@Setter提供set方法@Getter提供get方法@Slf4j:当lombok在一个类上找到这个注解时,会为这个类创建一个log对象,它的变量是log@AllArgsConstructor提供一个全参构造函数@NoArgsConstructor提供一个无参构造函数,底层使用字节码技术增强类文件。lombok的优缺点:优点:1.可以自动生成构造方法,get,set等方法。一定程度上提高开发效率2.让代码变得简洁,不需要过多关注对应的方法3.修改属性时,也简化了为这些生成的getter/setter方法的维护特性。缺点:1.要求开发者安装相应的插件。合作开发者除了自己安装插件外,还需要安装插件,非常具有侵入性。2、可读性降低,很多代码都没有了。给调试带来一定的问题。比如,很难知道某个类的get方法被哪些类引用了。4、目前JDK版本每六个月升级一次,但lombok是第三方工具,由开源团队维护,升级速度无法保证。因此,如果我们需要升级到新版本的JDK,如果其中的特性在Lombok中不支持的话,就会受到影响。另一个可能的问题是,Lombok本身的升级也会受到限制。因为一个应用可能依赖多个jar包,而每个jar包可能依赖不同版本的Lombok,这就导致应用中需要进行版本仲裁,而我们知道jar包版本仲裁不是那么容易的。而且出问题的概率也很高。5、当我们使用@Data定义一个类时,它会自动为我们生成equals()方法。但是如果你只使用@Data而不是@EqualsAndHashCode(callSuper=true),@EqualsAndHashCode(callSuper=false)将被默认。此时生成的equals()方法只会比较子类的属性,不会考虑父类继承的Attributes中的属性,不管父类属性访问权限是否开放。这可能会导致意想不到的结果。热部署实现(动态更新)在SpringBoot项目中,默认设置了一个监听器,通过监听器监听代码的变化。发现变化后,启动类加载器重新加载变化的类或配置。此操作具有性能优势,并且比重新启动整个服务器更快。添加依赖的实现步骤:org.springframework.bootspring-boot-devtoolsruntime依赖下载完成后,他们可以重启reload项目,那么当我们修改src/main/java目录下的java文件或者修改src/main/resources目录下的配置文件时,你的web服务器会默认重启,但是修改后的testclass或html文件不会会自动重启和部署。热部署缺点缺点:占用内存健康检查SpringBoot项目提供对项目整体运行环境的监控,提供Bean对象及Bean之间依赖关系的检查,提供Web请求中url映射关系的分析检查,提供对项目的监控连接池、线程池、jvm等参数。添加健康检查实现的依赖:org.springframework.bootspring-boot-starter-actuator启动项目,在项目中输入如下地址browser:(SpringBoot默认有有限的监控选项)http://localhost/actuator如果想查看更多的actuator选项,可以在springboot的配置文件application.properties中加入如下语句:management.endpoints.web。exposure.include=*然后,重启服务器,基于访问http://localhost/actuator地址...全局异常处理处理规范:捕获异常时,必须完全匹配抛出的异常,否则捕获的异常是抛出异常的父类型。避免直接抛出RuntimeException,更不要抛出Exception或Throwable,使用具有业务意义的自定义异常(如ServiceException)。捕获到异常后,必须对其进行处理(例如日志记录)。如果你不想处理它,你需要向它的调用者抛出一个异常。最外层的逻辑必须处理异常并将其转换为用户可以理解的内容。避免重复代码(Don'tRepeatYourself),即DAY原则。异常处理方法:1.try{}catch(){}代码量大,可重复性差,难以维护。2.在Controller类中定义一个或多个异常处理方法。所有的异常处理方法都需要用@ExceptionHandler来描述,并声明它所描述的方法可以处理的异常类型。缺点是它只能处理当前Controller类中各种方法中出现的RuntimeException异常或者其子类类型的异常。3.在控制逻辑层包com.cy.pj.goods.controller;importlombok.extern.slf4j.Slf4j;importorg.springframework.web.bind.annotation.ControllerAdvice中定义全局异常处理类和异常处理方法;importorg.springframework.web.bind.annotation.ExceptionHandler;importorg.springframework.web.bind.annotation.ResponseBody;@Slf4j@ControllerAdvice//这个注解描述的类是一个全局的异常处理类,可以是多个异常在这个类中定义的处理方法返回新的JsonResult(e.getMessage());}@ExceptionHandler(IllegalArgumentException.class)@ResponseBodypublicJsonResultdoHandleException(IllegalArgumentExceptione){log.error("IllegalArgumentException.exception{}",e.getMessage());返回新的JsonResult(e.getMessage());}}如果Controller类中有异常处理方法,那么一定要遵循局部优先的原则,Controller类中的异常处理方法如果全局异常处理类中有多个异常处理方法,并且一个方法的异常处理方法是另一个方法的子类类型,那么当异常发生时,将使用子类类型的方法来处理响应式标准设计