0

@PostConstructメソッドがそれ自体の中でメソッドを呼び出す必要があるシングルトン Bean があり@Asynchronousます。this呼び出しが同期されるため、直接使用することはできません。@Inject円形なので自分ではできません。

4

2 に答える 2

3

自然なJava EEの方法をお勧めします:

@Singleton
public class AsyncSingletonBeanBean {

    @Resource
    private SessionContext sessionContext;

    @PostConstruct
    public void init() {
        AsyncSingletonBeanBean myBean = sessionContext.getBusinessObject(this.getClass());
        myBean.foo();
    }

    @Asynchronous
    public Future<String> foo() {
        return new AsyncResult<String>("Hello");
    }
}
于 2013-06-15T22:03:20.540 に答える