2

@Transactional とアノテーションによるトランザクション管理 (tx:annotation-driven...) を使用しています。GenericApplicationContext を使用してアプリケーション コンテキストを作成し、そこからいくつかの Bean を取得するときに問題が発生します。

GenericApplicationContext ctx = new GenericApplicationContext();

// Load beans definitions 
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx);
xmlReader.loadBeanDefinitions(new ClassPathResource(CONTEXT_PATH));

// Register the datasource 
ctx.getBeanFactory().registerSingleton(CONTEXT_DATASOURCE_BEAN_NAME, dataSource);

// Get the service
ServiceInterface service = (ServiceInterface) ctx.getBean("service");

ServiceInterface のインスタンスを取得しましたが、トランザクションに関する情報を含むプロキシが必要です。

私が見逃したことを説明していただけますか?

4

1 に答える 1

0

ctx.getBean()の前にctx.refresh()を呼び出す必要があります。次に、BeanPostProcessorsが呼び出されます。

于 2012-11-07T07:45:52.617 に答える