Guice 7.0.0 发布,Google 的 IoC 容器
Guice 7.0.0 现已发布。Guice 是 Google 开发的轻量级依赖注入框架,目标是使开发和调试更容易,更快速。具体更新内容包括:
自 Guice 5.1.0 以来的变化
JEE Jakarta Transition
Guice 7.0 仅支持jakarta.inject
、jakarta.servlet
和 jakarta.persistence
命名空间。它不支持javax.inject
、javax.servlet
和javax.persistence
。更多详情可查看: Jarkata EE blog post、Eclipse Foundation blog post、Jakarta EE Wikipedia article 以及 Oracle blog post。
Guice 6.0 与 Guice 7.0 一起发布,旨在帮助用户将他们的代码迁移到 jakarta 命名空间。Guice 6.0 继续全面支持javax.inject
命名空间,同时也基本支持jakarta.inject
命名空间。Guice 6.0 唯一不支持的jakarta.inject
部是bind(..).toProvider
方法。
Guice 6.0 的 servlet 和 persist 扩展分别只支持javax.servlet
和 javax.persistence
命名空间。如果需要与jakarta.servlet
或jakarta.persistence
兼容,要使用 Guice 7.0。
Guice 7.0 移除了对javax.inject
、javax.servlet
和javax.persistence
的支持。除了命名空间的变化,Guice 6.0 和 Guice 7.0 是相同的。
Details
Guice 6.0 和 Guice 7.0 除了支持的命名空间 ( javax
vs jakarta
) 之外,其他都是相同的,并且是同时发布的。因此,这是一份自 5.1.0(而不是 6.0.0)而来的变更日志。
有关完整的更改列表,参阅 https://github.com/google/guice/compare/5.1.0...7.0.0 。
Guice Core
- 添加
jakarta.inject
支持。(#1630、#1679、#1490、#1383) - 支持 Java 21(通过将 ASM 更新到 9.5 和其他更改)。(#1671、#1657、#1654)
- 改进 Azul 等 JVM 上的 AOP 支持。(#1672)
- 修复与递归加载即时绑定相关的死锁或崩溃。(#1633、#78、 #1389、#1394)
- 设为
PrivateModule.binder()
非私有,以允许子类自定义,例如调用skipSources
。(#1569、#1525) - 修复单例锁周期检测中的 endloop loop(可能 OOM)。(#1635、#1510)
- 修复测试以在 Windows 上通过,尽管行分隔符不同。( #1213 )
- 对 OSGi 元数据的改进。(#1173 #1050、#1049、#1708)
- 将 JSR305 依赖项标记为可选(因为它在运行时不需要)。(#1172)
- 修复
Binder.requestInjection(TypeLiteral<T>, T)
以使用TypeLiteral
。(#1071) - 当具体类型由其
@ProvidedBy
注解提供时,尊重其范围注解 。(#251、#1319) - 添加一种方法来判断一个类是否被 Guice“enhanced”,并检索原始类。(#1340、#187)
- 确保引用 JIT 绑定时,
bind(...)
语句的顺序无关紧要。(#700、#1650) - 直接在
Matcher
中实现Matcher.and
和Matcher.or
作为默认方法,这样就不需要AbstractMatcher
子类了。(#1716、#1177) - 将 error_prone_annotations 依赖项标记为可选。(#1739)
Servlet
Persist
Persist 有许多变化,其中一些是向后不兼容的。值得注意的是:EntityManager
的注入不再隐式启动工作单元(因为这导致泄漏)。用户可以通过构建带有JpaPersistOptions
的JpaPersistModule
,将setAutoBeginWorkOnEntityManagerCreation
设置为"true",从而选择加入 legacy behavior。
- EntityManager provisioning 不再自动启动一个工作单元。(#739、#997、#730、#985、#959、#731)
- 忽略多个 start/stop 调用,而不是抛出异常。(#1214、#972、#598)
- 支持手动启动 rollbacks。(#1137、#1136)
- 不要在事务中包装对象定义的方法(例如:toString、finalize、equals、hashCode)。(#958、#788)
Struts2
Guice 7.0+ 不包含 struts2 扩展,因为 struts2 不支持jakarta.servlet
命名空间。
详情可查看更新说明。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
CudaText 1.194.0 发布,跨平台的文本编辑器
CudaText 是一个跨平台的文本编辑器,用 Object Pascal 编写。它是开源项目,启动速度相当快,它可以通过 Python 插件进行扩展,借助 EControl 引擎还带来了功能丰富的语法分析器。 CudaText 1.194.0 正式发布,更新内容如下: drag&drop add:现在可以将文本块从一个 ui-tab 拖放到另一个,而无需使用 2+ groups:拖动 ui-tabs 区域 add:允许将单行选择拖放到单行字段中(控制台输入,代码树过滤器) add:拖放文本:拖动到另一个 ui-tab 时也会显示拖放标记 add:ui-tab 的拖放:拖动到另一个 tab 组时也会显示拖放标记 add:词法分析器的变化被记录到宏中 add:Project Manager 支持旧的 Python 3.4 add:lexers C/C++:突出显示非法数字后缀 add:lexer Batch:许多改进 更多详情可查看:https://cudatext.github.io/history.txt
- 下一篇
GNU Shepherd 0.1 发布,系统服务管理器
GNU Shepherd 是一个用 Guile 编写的服务管理器,负责管理系统上运行的守护进程群。 它可以用作“init”系统(PID 1),也可以被非特权用户用来管理每个用户的守护进程——例如,tor、privoxy、mcron。它支持多种守护进程启动机制,包括 inetd 和 systemd 风格的套接字激活。 GNU Shepherd 0.10 已发布,GNU Shepherd 0.10 版本最大的改动是区分“启动”和“停止”中间服务状态,“启动”和“停止”操作将在服务已经启动/停止时阻塞。 此版本的其他改动: Shepherd 现在可以并行启动服务 新的“ herd log”和“herd graph”子命令 现在可以对 herd 输出进行着色 对内部代码进行了重大修改 在公告邮件中可阅读更多更新信息。 GNU Shepherd 目前被 GNU Guix 项目使用,在 Guix 系统上作为 PID 1 运行,但它也可以在其他平台上用于管理用户守护进程。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器