Spring 使用事务配置启动
Spring boot with transactional configuration
我是 Spring Boot 新手。我试图使用 Spring Boot with hibernate 和 mysql DB。我试图搜索如何使用 spring 引导来使用 spring 的事务配置。在你有 xml 文件的普通 spring 应用程序中,你使用 aop 定义事务如下
<!-- this is the service object that we want to make transactional -->
<bean id="fooService" class="x.y.service.DefaultFooService"/>
<!--the transactional advice (what 'happens'; see the
<aop:advisor/>bean below)-->
<tx:advice id="txAdvice" transaction-manager="txManager">
<!--the transactional semantics...-->
<tx:attributes>
<!--all methods starting with 'get' are read-only-->
<tx:method name="get*" read-only="true"/>
<!--other methods use the default transaction settings (see below)-->
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<!--ensure that the above transactional advice runs for any execution
of an operation defined by the FooService interface-->
<aop:config>
<aop:pointcut id="fooServiceOperation" expression="execution(* x.y.service.FooService.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation"/>
</aop:config>
<!--don't forget the DataSource-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@rj-t42:1521:elvis"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</bean>
<!--similarly, don't forget the PlatformTransactionManager-->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
使用以上配置,您可以要求 spring 将只读事务附加到仅 get* 方法,并将默认事务附加到所有其他方法。
如何使用 Spring Boot 实现这一点(在使用通配符的方法上定义事务 aop)?
尝试在 google 上搜索此内容,但找不到任何内容。 :(
请指导我找到解决方案或任何已有的 link。
谢谢
根据参考文档,您可以这样做
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}
在这种情况下,您可以完全禁用配置。
Link 这里
http://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-auto-configuration.html
正如 M. Deinum 评论的那样,如果您不能跳过 xml 配置,那么您可以使用 @ImportResource
注释并提供您的 xml 文件名来使用它。 xml 应该在类路径上可用。
我是 Spring Boot 新手。我试图使用 Spring Boot with hibernate 和 mysql DB。我试图搜索如何使用 spring 引导来使用 spring 的事务配置。在你有 xml 文件的普通 spring 应用程序中,你使用 aop 定义事务如下
<!-- this is the service object that we want to make transactional -->
<bean id="fooService" class="x.y.service.DefaultFooService"/>
<!--the transactional advice (what 'happens'; see the
<aop:advisor/>bean below)-->
<tx:advice id="txAdvice" transaction-manager="txManager">
<!--the transactional semantics...-->
<tx:attributes>
<!--all methods starting with 'get' are read-only-->
<tx:method name="get*" read-only="true"/>
<!--other methods use the default transaction settings (see below)-->
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<!--ensure that the above transactional advice runs for any execution
of an operation defined by the FooService interface-->
<aop:config>
<aop:pointcut id="fooServiceOperation" expression="execution(* x.y.service.FooService.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation"/>
</aop:config>
<!--don't forget the DataSource-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@rj-t42:1521:elvis"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</bean>
<!--similarly, don't forget the PlatformTransactionManager-->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
使用以上配置,您可以要求 spring 将只读事务附加到仅 get* 方法,并将默认事务附加到所有其他方法。
如何使用 Spring Boot 实现这一点(在使用通配符的方法上定义事务 aop)?
尝试在 google 上搜索此内容,但找不到任何内容。 :(
请指导我找到解决方案或任何已有的 link。
谢谢
根据参考文档,您可以这样做
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}
在这种情况下,您可以完全禁用配置。
Link 这里
http://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-auto-configuration.html
正如 M. Deinum 评论的那样,如果您不能跳过 xml 配置,那么您可以使用 @ImportResource
注释并提供您的 xml 文件名来使用它。 xml 应该在类路径上可用。