![](/img/trans.png)
[英]Spring Autowire Bean with multiple Interface Implementations, define Implementation in method
[英]I want to define a Spring Bean CLASS with NO Interface
我有一個擴展HibernateDaoSupport
的spring bean。 我希望將這個bean注入到我的控制器中,但我不希望它實現任何接口。 我只是想從我的其余代碼中引用具體的類(不是可以使用AopProxy?)有沒有人有辦法做到這一點?
<bean id="mySampleService" class="com.sample.MySampleService">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
@Autowired
private MySampleService mySampleService;
... getters and setters ....
我知道使用界面是一個好主意,這是IoC的重點,但請不要建議我使用界面。
如果要代理的類(在您的情況下通過事務代理)實現任何接口(在您的情況下由HibernateDaoSupport
實現的InitializingBean
),Spring默認使用基於JDK動態代理的代理策略。
因此,它創建了一個InitializingBean
類型的代理,顯然,它不能被注入到MySampleService
類型的字段中。
如果您不想使用接口,則可以通過使用proxy-target-class = "true"
聲明<tx:annotation-driven>
來覆蓋事務方面使用的策略。
也可以看看:
檢查以下內容。 確保您的類路徑上有CGLIB。
http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference/html/ch08s06.html
你可以在xml中編寫包括映射控制器在內的所有東西,然后你就不需要編寫接口了。 否則,使用注釋需要構建接口來代理它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.