我有一个看起来像这样的课程:
@Named
public class TableView {
@PersistenceContext protected EntityManager em;
@Resource protected UserTransaction utx;
当然,我可以在构建我的bean时得到一个实例:
@Inject private TableView view;
我认为CDI可以填写 EntityManager 和 UserTransaction 。但是,在我的用户类被实例化后,我有时想要另一个TableView实例,所以我该如何获取它?显然
TableView anotherView = new TableView();
不起作用,因为 em 和 utx 将为null。那么如何通过进行注射来获得新的工作实例?
答案 0 :(得分:1)
Instance
界面应该满足您的需求:
Instance<TableView> tableViewInstance;
TableView anotherView = tableViewInstance.get();
但正如评论中所述,您的观点不应该/知道交易和实体经理。