zoukankan      html  css  js  c++  java
  • spring基于纯注解的声明式事务控制

    一、spring配置类

    package com.wuxi.configs;
    
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.Import;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
    
    @Configuration
    @ComponentScan("com.wuxi")
    @Import({JdbcConfig.class, TransactionCopnfig.class})
    @PropertySource("classpath:jdbc.properties")
    @EnableTransactionManagement
    public class SpringConfig {
    }

    二、jdbc配置类

      配置类

    package com.wuxi.configs;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.jdbc.datasource.DriverManagerDataSource;
    
    import javax.sql.DataSource;
    
    public class JdbcConfig {
        @Value("${jdbc.driver}")
        private String driver;
        @Value("${jdbc.url}")
        private String url;
        @Value("${jdbc.username}")
        private String username;
        @Value("${jdbc.password}")
        private String password;
    
        @Bean
        public JdbcTemplate jdbcTemplate(DataSource dataSource) {
            return new JdbcTemplate(dataSource);
        }
    
        @Bean
        public DataSource dataSource() {
            DriverManagerDataSource ds = new DriverManagerDataSource();
            ds.setDriverClassName(driver);
            ds.setUrl(url);
            ds.setUsername(username);
            ds.setPassword(password);
            return ds;
        }
    }

      properties配置文件

    jdbc.driver=com.mysql.cj.jdbc.Driver
    jdbc.url=jdbc:mysql://192.168.2.105:3306/ssm?characterEncoding=utf8&useSSL=false
    jdbc.username=root
    jdbc.password=123456

    三、事务配置类

    package com.wuxi.configs;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.jdbc.datasource.DataSourceTransactionManager;
    import org.springframework.transaction.PlatformTransactionManager;
    
    import javax.sql.DataSource;
    
    public class TransactionCopnfig {
        @Bean
        public PlatformTransactionManager transactionManager(DataSource dataSource) {
            return new DataSourceTransactionManager(dataSource);
        }
    }

    四、测试

    package com.wuxi.tests;
    
    import com.wuxi.configs.SpringConfig;
    import com.wuxi.services.AccountService;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(classes = SpringConfig.class)
    public class MySpringTest {
    
        @Autowired
        private AccountService as;
    
        @Test
        public void testTransfer() {
            as.transfer("aaa", "bbb", 100f);
        }
    }
  • 相关阅读:
    [js开源组件开发]ajax分页组件
    使用nodejs+express+socketio+mysql搭建聊天室
    [js开源组件开发]图片放大镜
    JY游戏之毁经典《扫雷》
    JY游戏之手游《打卡乐猫》
    [js开源组件开发]图片懒加载lazyload
    [js开源组件开发]js文本框计数组件
    [js开源组件开发]js轮播图片支持手机滑动切换
    [js开源组件开发]js手机联动选择日期 开源git
    [js开源组件开发]-手机端照片预览组件
  • 原文地址:https://www.cnblogs.com/linding/p/13670191.html
Copyright © 2011-2022 走看看