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 除了支持的命名空间 ( javaxvs jakarta) 之外,其他都是相同的,并且是同时发布的。因此,这是一份自 5.1.0(而不是 6.0.0)而来的变更日志。
有关完整的更改列表,参阅 https://github.com/google/guice/compare/5.1.0...7.0.0 。
Guice Core
Servlet
Persist
Persist 有许多变化,其中一些是向后不兼容的。值得注意的是:EntityManager的注入不再隐式启动工作单元(因为这导致泄漏)。用户可以通过构建带有JpaPersistOptions的JpaPersistModule,将setAutoBeginWorkOnEntityManagerCreation设置为"true",从而选择加入 legacy behavior。
Struts2
Guice 7.0+ 不包含 struts2 扩展,因为 struts2 不支持jakarta.servlet命名空间。
详情可查看更新说明。