JAVA Spring学习笔记------Spring事务

事务在我看来,就是保证一个方法能够保持原子性

例如我们有一个方法,需要操作数据库,例如银行的转账操作,

需要对一个账号加同时对另一个账户减

如果不能保证原子性

那么就会造成只增不减的情况

这个时候需要用到事务来管理

如何完成对数据库操作的事务管理

首先需要将业务层接口的方法声明为事务

利用@Transactional 来声明

public interface UserService {
    @Transactional
    public List<User> getAll();
}

其次要在连接数据库的类中加入一个事务Bean

复制代码
 1 public class JdbcConfig {
 2     //首先我们定义一个方法来获得要管理的对象
 3     //然后我们通过@Bean来表示当前方法是的返回值是一个Bean
 4     @Bean
 5     public DataSource getDataSource(){
 6         DruidDataSource dataSource = new DruidDataSource();
 7         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
 8         dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/mp? useUnicode=true&amp;"+
 9                 "characterEncoding=utf8&amp;autoReconnect=true&amp;" +
10                 "allowMultiQuerie s=true&amp; useSSL=false");
11         dataSource.setUsername("root");
12         dataSource.setPassword("root");
13         return dataSource;
14     }
15 
16     @Bean
17     public PlatformTransactionManager platformTransactionManager(DataSource dataSource){
18         DataSourceTransactionManager transactionManager =
19                 new DataSourceTransactionManager(dataSource);
20         return transactionManager;
21 
22     }
23 
24 }
复制代码

最后需要在Spring配置类中说明开启了事务注释

复制代码
@Configuration
@ComponentScan("com.demo")
@Import({JdbcConfig.class, MybatisConfig.class})
//有注解开发的AOP
//@EnableAspectJAutoProxy
@EnableAspectJAutoProxy(proxyTargetClass = true)
@EnableTransactionManagement
public class SpringConfig {
}
复制代码

 

posted @   zzRh_5479  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示