java – 如何在类构造函数运行之前使用EJB 3.1注入Bean?
发布时间:2020-12-14 05:55:20 所属栏目:Java 来源:网络整理
导读:我有一个具有持久性单元的Facade.我需要Facade并在RoleController Conconstructor运行之前初始化它的依赖项,在EJB 3.1中是否可以这样做? 在Spring中,您只需将一些参数(preConstruction =“true”)添加到@configurable即可. 但在EJB中我无法找到一种方法,我
我有一个具有持久性单元的Facade.我需要Facade并在RoleController Conconstructor运行之前初始化它的依赖项,在EJB 3.1中是否可以这样做?
在Spring中,您只需将一些参数(preConstruction =“true”)添加到@configurable即可. 但在EJB中我无法找到一种方法,我总是得到一个NullPointer … @FacesConverter("rolesConverter") @Named("roleController") @SessionScoped @TransactionManagement(TransactionManagementType.CONTAINER) public class RoleController implements Serializable,Converter{ private List<Roles> listOfRoles; private List<Roles> listChoosenRoles; private DualListModel<Roles> listOfDualRoles; @EJB private RoleFacade roleFacade; public RoleController(){ listOfRoles = roleFacade.getListOfRoles(); listChoosenRoles = new ArrayList(); listOfDualRoles = new DualListModel<Roles>(listOfRoles,listChoosenRoles); } 解决方法
在构造函数中执行任何逻辑通常是一个坏主意(不仅在EJB运算符上).请改用
@PostConstruct :
@PostConstruct public init(){ listOfRoles = roleFacade.getListOfRoles(); listChoosenRoles = new ArrayList(); listOfDualRoles = new DualListModel<Roles>(listOfRoles,listChoosenRoles); } 使用此批注,容器将首先实例化EJB对象,JVM运行(空)构造函数,通过反射注入依赖关系的容器,当一切准备就绪时,调用所有以未指定的顺序使用@PostConstruct注释的方法.现在EJB已准备好为请求提供服务. 我认为一些容器/更新的EJB规范允许构造函数注入,但我从未使用它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |