------------------------------------------------------------------
来源:优快云发布会员:新书城收集整理发布时间:2006-10-14人气:148
传统的:
1<beanid="dataSource"destroy-method="close">
2<propertyname="driverClassName"value="oracle.jdbc.driver.OracleDriver"/>
3<propertyname="url"value="jdbc:oracle:thin:@127.0.0.1:1521:dev"/>
4<propertyname="username"value="kaktos"/>
5<propertyname="password"value="kaktos"/>
6</bean>
7
8<beanid="txManager"
9class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
10<propertyname="dataSource"ref="dataSource"/>
11</bean>
12
13<beanid="businessBean"
14class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
15<propertyname="transactionManager"ref="txManager"/>
16<propertyname="target"ref="businessBeanTarget"/>
17<propertyname="transactionAttributes">
18<props>
19<propkey="*">PROPAGATION_REQUIRED</prop>
20</props>
21</property>
22</bean>
23
24<beanid="businessBeanTarget">
25<propertyname="dataSource"ref="dataSource"/>
24 </bean>
这样做的弊端就是不得不为每个需要事务的bean做一次声明,如果所有的bean都基本上有一致的配置,这样就太繁琐啦。
下面是第二种方式:
1<beans>
2<beanid="dataSource"destroy-method="close">
3<propertyname="driverClassName"value="oracle.jdbc.driver.OracleDriver"/>
4<propertyname="url"value="jdbc:oracle:thin:@127.0.0.1:1521:dev"/>
5<propertyname="username"value="kaktos"/>
6<propertyname="password"value="kaktos"/>
7</bean>
8
9<beanid="txManager"
10class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
11<propertyname="dataSource"ref="dataSource"/>
12</bean>
13
14<beanid="matchAllWithPropReq"
15class="org.springframework.transaction.interceptor.MatchAlwaysTransactionAttributeSource">
16<propertyname="transactionAttribute"value="PROPAGATION_REQUIRED"/>
17</bean>
18
19<beanid="matchAllTxInterceptor">
20<propertyname="transactionManager"ref="txManager"/>
21<propertyname="transactionAttributeSource"ref="matchAllWithPropReq"/>
22</bean>
23
24<beanid="autoProxyCreator"
25class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
26<propertyname="interceptorNames">
27<list>
28<idreflocal="matchAllTxInterceptor"/>
29</list>
30</property>
31<propertyname="beanNames">
32<list>
33<idreflocal="businessBean"/>
34</list>
35</property>
36</bean>
37
38<!--mybeans-->
39<beanid="businessBean">
40<propertyname="dataSource"ref="dataSource"/>
41</bean>
42</beans>
BeanNameAutoProxyCreator会在applicationcontext初始化后自动为beanNames属性中的bean建立proxy。
来源:优快云发布会员:新书城收集整理发布时间:2006-10-14人气:148
传统的:
1<beanid="dataSource"destroy-method="close">
2<propertyname="driverClassName"value="oracle.jdbc.driver.OracleDriver"/>
3<propertyname="url"value="jdbc:oracle:thin:@127.0.0.1:1521:dev"/>
4<propertyname="username"value="kaktos"/>
5<propertyname="password"value="kaktos"/>
6</bean>
7
8<beanid="txManager"
9class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
10<propertyname="dataSource"ref="dataSource"/>
11</bean>
12
13<beanid="businessBean"
14class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
15<propertyname="transactionManager"ref="txManager"/>
16<propertyname="target"ref="businessBeanTarget"/>
17<propertyname="transactionAttributes">
18<props>
19<propkey="*">PROPAGATION_REQUIRED</prop>
20</props>
21</property>
22</bean>
23
24<beanid="businessBeanTarget">
25<propertyname="dataSource"ref="dataSource"/>
24 </bean>
这样做的弊端就是不得不为每个需要事务的bean做一次声明,如果所有的bean都基本上有一致的配置,这样就太繁琐啦。
下面是第二种方式:
1<beans>
2<beanid="dataSource"destroy-method="close">
3<propertyname="driverClassName"value="oracle.jdbc.driver.OracleDriver"/>
4<propertyname="url"value="jdbc:oracle:thin:@127.0.0.1:1521:dev"/>
5<propertyname="username"value="kaktos"/>
6<propertyname="password"value="kaktos"/>
7</bean>
8
9<beanid="txManager"
10class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
11<propertyname="dataSource"ref="dataSource"/>
12</bean>
13
14<beanid="matchAllWithPropReq"
15class="org.springframework.transaction.interceptor.MatchAlwaysTransactionAttributeSource">
16<propertyname="transactionAttribute"value="PROPAGATION_REQUIRED"/>
17</bean>
18
19<beanid="matchAllTxInterceptor">
20<propertyname="transactionManager"ref="txManager"/>
21<propertyname="transactionAttributeSource"ref="matchAllWithPropReq"/>
22</bean>
23
24<beanid="autoProxyCreator"
25class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
26<propertyname="interceptorNames">
27<list>
28<idreflocal="matchAllTxInterceptor"/>
29</list>
30</property>
31<propertyname="beanNames">
32<list>
33<idreflocal="businessBean"/>
34</list>
35</property>
36</bean>
37
38<!--mybeans-->
39<beanid="businessBean">
40<propertyname="dataSource"ref="dataSource"/>
41</bean>
42</beans>
BeanNameAutoProxyCreator会在applicationcontext初始化后自动为beanNames属性中的bean建立proxy。
1224

被折叠的 条评论
为什么被折叠?



