springboot3.0的新特性

完整解读springboot3.0的新特性

原来javax包中的类搬到了jakarta的这个包下面,如果是springboot更老的版本,官方建议先升级到2.7,确认没有问题,再升级到3.0。springboot是在spring的基础上增加了一些自动化的配置,因此,springboot3.0对应的spring版本是6.0,而spring6.0是基于JDK17来进行开发的。所以,如果你要使用springboot3.0的话,你对应的JDK至少要升级到17以上。

  1. 它提供了一个叫做Graal VM的一个本地镜像的支持。简单来说,就是它可以不依赖java的虚拟机,而且有更好的CPU利用率和内存使用率。这样能够更加快速以及弹性平滑的去启动一个程序。
  2. log4j2的一个日志框架的支持。log4j2和log4j呢?虽然名字上只差一个数字,但是它的代码实现方式有很大的差异。log4j相比于logback来说呢,它的bug会更多一些,log4j2就吸取了前面两者的教训,相当于是重新开发出来的一个日志框架。因此呢,这也是springboot3.0对log4j2有更好的一个扩展支持。当然呢,这些实现都是实现了sl4j的一个日志门面标准接口,只要你的代码里面使用了sl4j进行的一个日志打印,那么你只需要去替换一个jar包,就能够实现无缝集成。
  3. 优化了一个注解,一个叫做@ConstrutorBinding的注解。它的主要作用是:相当于把当前上下文中的一些配置注册到一个普通的Bean里面,配置就可以把它当作成一个属性来使用了。在springboot3.0之前,这个注解,它只支持全量的参数构造方法,那如果说我们的需求是只需要注入部分参数,这个注解是不能支持的。所以这一次优化的点,就是可以去定义多个构造方法,从而能够去灵活的去指定构造器,这样我们使用起来就更方便了。

@ConstructorBinding已从org.springframework.boot.context.properties移动到org.springframework.boot.context.properties.bind包下

      4.springboot3.0的较大的特性,完善分布式链路追踪。springboot3.0从官方层面制定了一个标准化的解决方案,叫做Micrometer。根据官网的介绍,它是一个供应商相对中立的指标接口。Micrometer它采用的是一种非常流行的监控系统的设计理念,它可以去监控任意的java程序,而且呢,没有任何的依赖。我们可以把Micrometer理解成一套标准或者叫做Facade。那么在实际的开发中,我们一般是结合Prometheus来采集java进程中的一个指标数据。然后用Grafana来实现Dashboard的一个展示,这个呢,就相当于是一套比较完整的分布式链路追踪和流量指标的一个解决方案。

     5.其他的一些小优化。比如说JDBC的包,它可以让你去进行一些动态的替换,这样给你更多的弹性空间,让你去定制数据源的这一块的内容,还有比如说kafka和es的一些客户端,这样就可以在性能和可用性之间做一个相对个性化的权衡。

你可能感兴趣的:(log4j,java,spring)