Spring中使用注解的方式如何实现"Inner Bean的机制"?

bloodskyml 2008-07-06 03:03:44
Spring中有一个Inner Bean的机制,使子节点可以拥有父节点的全部属性。如果使用Annotation的方式,应该如何定义呢?
比如:
我先定义了一个DAO的模板:

<bean id="HibernateTemplateDAO"
class="com.sinotrans.base.dao.HibernateTemplateDAO" abstract="true"
lazy-init="true">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>


然后所有的DAO的类都只需要指定一个parent属性,就可以得到该模板中已经定义好的sessionFactory属性,如:

<bean id="userDAO" class="com.test.UserDAO" parent="HibernateTemplateDAO"></bean>


现在,我要将上面的UserDAO这个Bean,使用"注解的方式"应该如何定义它的parent?
我现在的定义如下:


@Repository
public class UserDAO{
//...
}

...全文
399 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltfgj 2011-05-18
  • 打赏
  • 举报
回复
我也想看看
xinyu4845 2010-10-13
  • 打赏
  • 举报
回复
我也想看看
bloodskyml 2008-07-06
  • 打赏
  • 举报
回复
是我对parent的理解有偏差了,多谢Landor2004 !
结贴
Landor2004 2008-07-06
  • 打赏
  • 举报
回复
你用annotation根本无需去配置xml文件,你说的用parent等方式,岂不是也是需要在xml中配置bean,
service中也是要声明类似的SessionFactory,而你使用annotation无需再配置xml文件,只需要在
SessionFactory上增加一行注释,和你说的parent相比,你觉得哪个简单灵活

用parent岂不是也要每个类都加上parent,那这样和里面加上一行
<property name="sessionFactory"><ref bean="sessionFactory"/></property>

有什么分别吗

而用注释的话,这些都可以省略
bloodskyml 2008-07-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Landor2004 的回复:]
似乎不支持你说的方法,而且也不需要,只能

Java code@Repository
public class UserDAO{
@Autowired
private SessionFactory sessionFactory;
......
}
[/Quote]

上述那个UserDAO,只是举个例子,可能是我没说清楚。
在Spring中,我经常要用到这种Inner Bean的机制(比如:给每个Service都加入事务处理等),
以前都是用:parent="xxx" ,直接获得父节点的全部属性,就不用每个Bean都去配置那些公用的属性了。
难道现在使用Annotation的方式,无法实现这种灵活的方式了吗?
wuyanteng1 2008-07-06
  • 打赏
  • 举报
回复
up
Landor2004 2008-07-06
  • 打赏
  • 举报
回复
似乎不支持你说的方法,而且也不需要,只能
@Repository
public class UserDAO{
@Autowired
private SessionFactory sessionFactory;
......
}

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧