当前位置: 首页 > 工具软件 > Weld > 使用案例 >

Weld(CDI)教程

袁弘化
2023-12-01

-- 简介

CDI - Context Dependency Injection 上下文依赖注入:Java EE 6中定义的规范标准,编号:JSR-299。定义了一系列简化Java开发的功能。CDI已经超出一个框架的定义,升华到一种开发模型。这个开发模型不会去限制你必须将代码分为几层,不限制你必须写ORM、持久化、业务代码等,甚至不限制你到底是开发WEB程序还是客户端程序。

CDI的思想来源于几个开源项目:Seam、Guice、Spring However。不过CDI在集合了这几个框架的有点之外,克服了各自的缺点。

CDI只是一个标准(Java Community Process - JCP),不是一个具体的框架,不同的应用服务器有其自己的实现,比如JBoss AS的CDI名叫Weld。

 

-- 注入

既然名称叫做上下文依赖注入,那么首先看看到底是怎么注入的。

 

-- 往哪里注入(3种)

1 public class Checkout {
2 private final ShoppingCart cart;
3
4 @Inject
5 public Checkout(ShoppingCart cart) {
6 this.cart = cart;
7 }
8 }

↑ 注入到构造方法。一个类只能有一个注入的构造方法

1 public class Checkout {
2 private ShoppingCart cart;
3
4 @Inject
5 void setShoppingCart(ShoppingCart cart) {
6 this.cart = cart;
7 }
8 }

 

1 public class Checkout {
2 private @Inject ShoppingCart cart;
3 }

↑ 注入到类属性。不需要getter与setter!

 

-- 注入的顺序:
1)构造方法
2)类属性
3)方法注入
4)@PostConstruct

 

-- 会话范围
1)@RequestScoped
2)@SessionScoped
3)@ApplicationScoped
4)@ConversationScoped
前三种可以在任何servlet中使用,conversation只能在JSF中使用。

转载于:https://www.cnblogs.com/TonyLee/archive/2012/01/02/2309745.html

 类似资料: