科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件Struts Spring Hibernate组装web应用(4)

Struts Spring Hibernate组装web应用(4)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

这篇文章将讨论怎样组合几个著名的框架去做到松耦合的目的,怎样建立你的构架,怎样让你的各个应用层保持一致。富于挑战的是:组合这些框架使得每一层都以一种松耦合的方式彼此沟通,而与底层的技术无关。这篇文章将使用3种流行的开源框架来讨论组合框架的策略。

作者:网页教学网 来源:网页教学网 2007年8月31日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

既然我们已经配置了我们的容器服务beans和把它们连在了一起,我们需要把我们的业务服务对象和我们的DAO对象连在一起。然后,我们需要把这些对象连接到事务管理器。

这是在Spring配置文件里的样子:

<!-- ORDER SERVICE -->

<bean id="orderService"

 class="org.

springframework.

transaction.

interceptor.

TransactionProxyFactoryBean">

 <property name="transactionManager">

<ref local="myTransactionManager"/>

 </property>

 <property name="target">

<ref local="orderTarget"/>

 </property>

 <property name="transactionAttributes">

<props>

 <prop key="find*">

PROPAGATION_REQUIRED,readOnly,-OrderException

 </prop>

 <prop key="save*">

PROPAGATION_REQUIRED,-OrderException

</prop>

</props>

 </property>

</bean>

<!-- ORDER TARGET PRIMARY BUSINESS OBJECT:

Hibernate implementation -->

<bean id="orderTarget"

class="com.

meagle.

service.

spring.

OrderServiceSpringImpl">

 <property name="orderDAO">

<ref local="orderDAO"/>

 </property>

</bean>

<!-- ORDER DAO OBJECT -->

<bean id="orderDAO"

class="com.

meagle.

service.

dao.

hibernate.

OrderHibernateDAO">

 <property name="sessionFactory">

<ref local="mySessionFactory"/>

 </property>

</bean> 

图4是我们已经连在一起的东西的一个概览。它展示了每个对象是怎样相关联的和怎样被Spring设置进其它对象中。把这幅图和示例应用中的Spring配置文件对比查看它们之间的关系。

图4:这是Spring怎样将在这个配置的基础上装配beans。

这个例子使用一个TransactionProxyFactoryBean,它有一个为我们已经定义了的事务管理者准备的setter方法。这是一个有用的对象,它知道怎样处理声明的事务操作和你的服务对象。你可以通过transactionAttributes属性定义事务怎样被处理,transactionAttributes属性为方法名定义模式和它们怎样参与进一个事务。

TransactionProxyFactoryBean类也有一个为一个target准备的setter,target将是一个到我们的叫作orderTarget的业务服务对象的引用。 orderTarget bean定义使用哪个业务服务对象并有一个指向setOrderDAO()的属性。orderDAO bean将居于这个属性中,orderDAO bean是我们的和持久层交流的DAO对象。

还有一个关于Spring和bean要注意的是bean能以两种模式工作。这两种模式被定义为singleton和prototype。一个bean默认的模式是singleton,意味着一个共享的bean的实例将被管理。这是用于无状态操作--像一个无状态会话bean将提供的那样。当bean由Spring提供时,prototype模式允许创建bean的新实例。你应当只有在每一个用户都需要他们自己的bean的拷贝时才使用prototype模式。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章