概述
使用
@Service
,@Transactional
,@ManagedResource
,@Inject
等完成。)指南重点
@Repository
或@Service
注释的bean都必须具有接口Foo(Bar bar) {...}
)final class Foo
) 问题
@Transactional
@Service
,这需要在外观事务中包含多个服务(例如,2个应用程序组件上的Observer服务)@Qualifier
区分)beanRefContext.xml
文件来配置其内部应用程序上下文当我以前使用XML配置时,我能够执行上面提到的所有指导,但是当切换到注释时,看起来Spring似乎行为不端。
我的小组中的开发人员更喜欢注释配置(我似乎更容易编写和编写新代码),但我注意到他们为代码引入了所有类型的“黑客”,以防止处理Spring应用程序上下文失败。
问题
@Primary
或@Qualifier
的使用)@Transactional
@ManagedResource
答案 0 :(得分:3)
我想出了以下解决方案(问题#2和#3),以便能够执行我的设计指南并继续使用基于注释的配置:
ApplicationContext
beanRefContext.xml
上述步骤还使我能够减少Spring感知测试的执行时间(每个模块只加载一个bean的子集)。
作为一个实用指南(对于问题#1),如果一个接口有多个实现,我将@Primary
放在广泛使用的一个和其他客户端上,需要另一个实现,使用{{1}连接bean }}
答案 1 :(得分:1)
回答第2点) 您可以使用AspectJ而不是CGLib。