我有一个无状态会话bean,它会从库中注入一个接口。
@Stateless
public class MyService {
@Inject
IMyLib iMyLib;
}
public interface IMyLib {
...
}
public class MyLib implements IMyLib {
...
}
这种缝合起作用!但为什么?容器怎么能知道要注射什么?
这是允许的和良好的做法吗?
答案 0 :(得分:3)
这是一种很好的做法:使用接口将代码与实现分离。它还允许多个实现,可以使用限定符进行注释,因此代码的不同使用可以使用不同的实现。它还允许装饰器添加其他功能。