SpringBoot3.0新特性:1、spring.factories文件废弃,自动配置包位置变化 2、Spring Native 快速体验 3、jakata api迁移 3、三方库的支持

这篇具有很好参考价值的文章主要介绍了SpringBoot3.0新特性:1、spring.factories文件废弃,自动配置包位置变化 2、Spring Native 快速体验 3、jakata api迁移 3、三方库的支持。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、SpringBoot3.0

1、spring.factories文件废弃,自动配置包位置变化

有自己写过starter包的友友们一定知道,一定用/META-INF/spring.factories文件定义发现自动配置,但是在springboot 2.7,这个文件就被弃用了,在springboot 3.0 就被彻底移除了。

比如之前定义的/META-INF/spring.factories文件:
springboot3.0新特性,SpringBoot3 新特性及JDK17新特性,spring,java,jvm
而现在 这个/META-INF/spring.factories并不是不存在了,只是在3.0之后外部自动配置类是不通过这种方式去配置了。而是通过META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件,既然他的路径有所改变,那么底层代码一定也是有改变的,相信大家都看过自动装配的原理,不知道的小伙伴可以去看看我之前的文章。

2、Spring Native

Spring Native 也是升级的一个重大特性,支持使用GraalVM将SpringBoot 的应用程序编译成本地可执行的镜像文件,可以显著提升启动速度、峰值性能以及减少内存使用。
我们传统的应用都是编译成字节码,然后通过JVM解释并最终编译成机器码来运行,而Spring Native则是通过AOT提前编译为机器码,在运行时直接静态编译成可执行文件,不依赖JVM。GraalVM的即时编译器和AOT编译器可以显著提高应用程序的性能。据测试,GraalVM的性能可以比传统的JVM高出20%-100%。
近几年来,Go语言火了,Go语言是一种编译型语言,我们需要先把Go代码直接编译成为一个二进制执行文件,比如windows上的exe文件,然后直接运行exe文件就能快速启动程序。
如果说,十年前,Spring是Java的春天,那现在GraalVM就是Java的救世主,Java要想不被Go挤掉,整个Java生态都要向GraalVM靠齐。

springboot3.0新特性,SpringBoot3 新特性及JDK17新特性,spring,java,jvm

快速体验

下载GRaalvm
https://github.com/graalvm/graalvm-ce-builds/releases
springboot3.0新特性,SpringBoot3 新特性及JDK17新特性,spring,java,jvm
下载之后解压安装。
配置
springboot3.0新特性,SpringBoot3 新特性及JDK17新特性,spring,java,jvm
配置完之后可以看下版本
springboot3.0新特性,SpringBoot3 新特性及JDK17新特性,spring,java,jvm
安装Native lmage工具
如果没有安装该工具,maven在打包的时候会自动下载,但建议提前安装打包工具。这一步由于会从github上下载资源、所以会比较久久可能会连接超时,所以需要多试几次。

gu install native-image

springboot3.0新特性,SpringBoot3 新特性及JDK17新特性,spring,java,jvm
到你项目根目录运行生成exe文件
时间可能会有点久
mvn -Pnative native:compile
springboot3.0新特性,SpringBoot3 新特性及JDK17新特性,spring,java,jvm
然后在输出目录就会生成exe文件,
springboot3.0新特性,SpringBoot3 新特性及JDK17新特性,spring,java,jvm
启动,性能加倍。

3、jakata api迁移

从Java EE APIs 到 Jakarta EE
Spring Boot 3开始,所有的Java EE Api都需要迁移到Jakarta EE上来。大部分用户需要修改import相关API的时候,要用jakarta替换javax。比如:原来引入javax.servlet.Filter的地方,需要替换为jakarta.servlet.Filter。但还有一些依赖Java EE API的第三方库,目前还没有得到很好的支持,所以在Spring Boot 3中暂时会先移除这类组件的支持(比如:EhCache 3、Infinispan、Jolokia、Pooled JMS等)。所以,目前的M1版本相较2.x版本来说,会有一些特性的缺失。当然大多数应该还只是暂时的,Spring Boot官方会等这些第三方库发布Jakarta兼容库之后再重新引入。

3、三方库的支持

Spring Boot 3.0 基于并需要 Spring Framework 6。

此版本中升级的其他 Spring 项目包括:

Spring AMQP 3.0.
Spring Batch 5.0.
Spring Data 2022.0.
Spring GraphQL 1.1.
Spring HATEOAS 2.0.
Spring Integration 6.0.
Spring Kafka 3.0.
Spring LDAP 3.0.
Spring REST Docs 3.0.
Spring Retry 2.0.
Spring Security 6.0 (see also what’s new).
Spring Session 2022.0.
Spring WS 4.0.
Spring Boot 3.0 已将所有依赖项从 Java EE 迁移到 Jakarta EE API。尽可能选择 Jakarta EE 10 兼容依赖项,包括:

Jakarta Activation 2.1
Jakarta JMS 3.1
Jakarta JSON 2.1
Jakarta JSON Bind 3.0
Jakarta Mail 2.1
Jakarta Persistence 3.1
Jakarta Servlet 6.0
Jakarta Servlet JSP JSTL 3.0
Jakarta Transaction 2.0
Jakarta Validation 3.0
Jakarta WebSocket 2.1
Jakarta WS RS 3.1
Jakarta XML SOAP 3.0
Jakarta XML WS 4.0
我们还尽可能升级到第三方 jar 的最新稳定版本。这里一些值得注意的依赖项升级包括:

Couchbase Client 3.4
Elasticsearch Client 8.5
Flyway 9
Groovy 4.0
Hibernate 6.1
Hibernate Validator 8.0
Jackson 2.14
Jersey 3.1
Jetty 11
jOOQ 3.16
Kotlin 1.7.20
Liquibase 4.13
Lettuce 6.2
Log4j 2.18
Logback 1.4
Micrometer 1.10
Micrometer Tracing 1.0
Neo4j Java Driver 5.2
Netty 4.1.77.Final
OkHttp 4.10
R2DBC 1.0
Reactor 2022.0
SLF4J 2.0文章来源地址https://www.toymoban.com/news/detail-686644.html

到了这里,关于SpringBoot3.0新特性:1、spring.factories文件废弃,自动配置包位置变化 2、Spring Native 快速体验 3、jakata api迁移 3、三方库的支持的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SpringBoot】一、SpringBoot3改变&新特性

    前言 本文适合具有springboot的基础的同学。 Java 17或更高版本 Gradle 7.5+或Maven 3.5+ SpringMVC 5.2 以后 允许我们使用函数式的方式,定义Web的请求处理流程。 Web请求处理的方式: @Controller + @RequestMapping:耦合式 (路由、业务耦合) 函数式Web:分离式(路由、业务分离) 场景:Us

    2024年02月10日
    浏览(22)
  • 【SpringBoot】一、SpringBoot3新特性与改变详细分析

    前言 本文适合具有springboot的基础的同学。 Java 17或更高版本 Gradle 7.5+或Maven 3.5+ SpringMVC 5.2 以后 允许我们使用函数式的方式,定义Web的请求处理流程。 Web请求处理的方式: @Controller + @RequestMapping:耦合式 (路由、业务耦合) 函数式Web:分离式(路由、业务分离) 场景:Us

    2024年02月12日
    浏览(32)
  • 【SpringBoot3】--03.数据访问、基础特性(外部化和内部外配置、整合JUnit)

    学习视频: 尚硅谷SpringBoot3视频 SpringBoot 整合 Spring 、 SpringMVC 、 MyBatis 进行 数据访问场景 开发 勾选之后会导入以下包 安装 MyBatisX 插件,帮我们生成Mapper接口的xml文件即可 在接口处 : Alt + 回车 必须把mapper的xml文件映射位置在配置文件定义! 而驼峰命名转换建议也开启 编

    2024年02月16日
    浏览(31)
  • Springboot3新特性:GraalVM Native Image Support和虚拟线程(从入门到精通)

    说明 :都知道,我是搞java的,最近搞c的算法和redis数据库比较多,所以对于以下文章,都是我自己这样认为的,各位看完之后,可尽情评论。 以往文章: Springboot3新特性:开发第一个 GraalVM 本机应用程序(完整教程)-CSDN博客 利用GraalVM将java文件变成exe可执行文件-CSDN博客 概述

    2024年01月16日
    浏览(54)
  • SpringBoot3自动配置原理

    遵循约定大约配置的原则,在boot程序启动后,起步依赖中的一些bean对象会自动注入到ioc容器 看一下我们前面写的代码有没有达到自动配置的效果呢? 没有自动,我们写了配置类,写了@Import注解,所以并没有达到自动配置的效果。那怎么办呢?接下来我们通过翻看源码的方

    2024年01月22日
    浏览(28)
  • spring.factories 文件配置详情

    在程序开发中,可能会出现包名不一样的情况(如:pom 依赖的很多的 jar),如何解决Spring Boot不能被默认路径扫描呢? 方法一:在 Spring Boot Application 主类上使用 @Import 注解。 方法二:使用 spring.factories 文件 方法一比较简单,在此就不做过多介绍,主要谈谈 spring.factories 使

    2024年02月01日
    浏览(21)
  • 【SpringBoot3】从重构HelloWorld看Spring的作用

    在我们学习一门新技术的时候,总是先运行出一个基本的程序来输出“Hello World”,如果成功了, 说明我们的开发环境基本就绪了,我们也像婴儿走路一样,能走第一步了。接下来我们就逐步改造一个最基本的HelloWorld来一步步分析Spring到底帮助我们做 了什么。 目录 第一步:

    2024年02月19日
    浏览(29)
  • Java --- springboot3依赖管理和自动配置机制

    目录 一、依赖管理机制 二、自动配置机制  三、自动配置流程 🚕 、为什么导入 starter-web 所有相关依赖都导入进来? ①、开发什么场景,导入什么 场景启动器。 ②、maven依赖传递原则。A-B-C: A就拥有B和C ③、导入 场景启动器。 场景启动器 自动把这个场景的所有核心依赖

    2024年02月07日
    浏览(46)
  • SpringBoot3文件管理

    目录 一、简介 二、工程搭建 1、工程结构 2、依赖管理 三、上传下载 1、配置管理 2、上传下载 四、Excel文件 1、Excel创建 2、Excel读取 3、解析监听 4、导入导出 五、参考源码 标签:上传.下载.Excel.导入.导出; 在项目中,文件管理是常见的复杂功能; 首先文件的类型比较多样

    2024年02月13日
    浏览(25)
  • SpringBoot3之配置文件(学习SpringBoot3的配置这一篇足够)

    1.1 SpringBoot3简介 SpringBoot 帮我们简单、快速地创建一个独立的、生产级别的 Spring 应用(说明:SpringBoot底层是Spring) ,大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术! SpringBoot的主要目标是: 为所有 Spring 开发提供更快速、可广泛访问的入

    2024年01月18日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包