全注解方式整合spring+mybatis模拟springboot整合
来源:互联网 发布:web数据库建模工具 编辑:程序博客网 时间:2024/06/05 15:47
实习工作中的项目使用到了springboot。虽然springboot使用简单但是默认配置和注解挺多。如果boot想使用熟练前提要对ssm整合比较熟悉。以前开发习惯使用xml配置文件,但是使用boot后才发现注解才是王道。现在将spring+mybatis使用全注解完成整合,并且配置事务。文件中的注解与Xml进行了比对。直接上代码。
@Repositorypublic interface EmpDao {Emp selectById(String id);void addSalary(String id);void updateSalary(String id);}
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- EmpMapper.xml --><mapper namespace="cn.rjx.spring.smanno.EmpDao"><select id="selectById" resultType="cn.rjx.spring.smanno.Emp">select * from emp where id=#{id}</select><update id="addSalary">update emp set salary='6000' where id=#{id}</update><update id="updateSalary">update emp set salary='4000' where id=#{id}</update></mapper>
@Servicepublic class EmpService {@AutowiredEmpDao empDao;public Emp selectById(String id){return empDao.selectById(id);}@Transactional()public void accountChange() {empDao.addSalary("1");int a= 10/0;empDao.updateSalary("2");}}
@MapperScan(basePackages="cn.rjx.spring.smanno")/** * 替代:<!-- 配置扫描器 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- 扫描me.gacl.dao这个包以及它的子包下的所有映射接口类 --> <property name="basePackage" value="cn.rjx.spring.sm" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /></bean> * */@EnableTransactionManagement/** 替代: * <tx:annotation-driven transaction-manager="transactionManager" /> */@Configurationpublic class MybatisConfig {/** 替代 * <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="jdbc:mysql://localhost:3306/test" /> <property name="username" value="root" /> <property name="password" value="123456" /> </bean> */@Beanpublic DruidDataSource dataSource(){DruidDataSource dataSource=new DruidDataSource();dataSource.setUrl("jdbc:mysql://localhost:3306/test");dataSource.setUsername("root");dataSource.setPassword("123456");return dataSource;}/** <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 实例化sqlSessionFactory时需要使用上述配置好的数据源以及SQL映射文件 --> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:cn/rjx/spring/sm/*Mapper.xml" /> </bean> */@Beanpublic SqlSessionFactory sqlSessionFactory() throws Exception{final SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();sqlSessionFactory.setDataSource(dataSource());sqlSessionFactory.setMapperLocations(getResource("", "cn/rjx/spring/smanno/*Mapper.xml"));return sqlSessionFactory.getObject();}/** * 替代:<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean> */@Beanpublic PlatformTransactionManager transactionManager(){return new DataSourceTransactionManager(dataSource());}public Resource[] getResource(String basePackage, String pattern) throws IOException {String packageSearchPath = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + ClassUtils.convertClassNameToResourcePath(new StandardEnvironment().resolveRequiredPlaceholders(basePackage)) + "/" + pattern;Resource[] resources = new PathMatchingResourcePatternResolver().getResources(packageSearchPath);return resources;}}
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:cn/rjx/spring/smanno/bean.xml"}) //加载配置文件 @Component@ComponentScan(basePackages="cn.rjx.spring.smanno")/**替代: * <context:component-scan base-package="cn.rjx.spring.sm"></context:component-scan> */public class EmpAction {@AutowiredEmpService service;@Testpublic void test01(){Emp emp = service.selectById("1");System.out.println(emp);}@Testpublic void test02(){System.out.println("------");service.accountChange();}}
我的bean.xml只加入了测试的那个类,作为spring加载的入口
<bean id="empAction" class="cn.rjx.spring.smanno.EmpAction"></bean>
测试查询方法可用.事务可用!pom文件。
<dependencies><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.0.RELEASE</version></dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-test --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.0.0.RELEASE</version> <scope>test</scope></dependency> <!-- springAop --> <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>5.0.0.RELEASE</version></dependency><!-- spring事务 --><!-- https://mvnrepository.com/artifact/org.springframework/spring-tx --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>5.0.0.RELEASE</version></dependency><!-- spring整合mybatis --><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version></dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version></dependency><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>3.1.14</version></dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/druid --><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.4</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc 配置数据源需要--><dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.0.0.RELEASE</version></dependency> </dependencies>
阅读全文
0 0
- 全注解方式整合spring+mybatis模拟springboot整合
- spring + spring mvc + mybatis 整合项目 全注解方式
- springboot之整合mybatis-annotation(注解方式)
- 5.springboot整合mybatis(注解方式)
- springboot 注解方式整合mybatis (mysql数据库)
- springboot整合mybatis 注解实现
- springboot整合redis,注解方式
- springboot整合mybatis方式一
- spring&springmvc&mybatis整合注解
- springmvc+spring+hibernate 整合 annotation(全注解)方式
- Spring Boot系列之六 以注解方式整合MyBatis
- ehcache整合spring注解方式
- ehcache整合spring注解方式
- springMVC+hibernate+jdbc+mybatis整合 支持全注解方式 支持全配置方式
- springboot整合mybatis xml方式配置SQL
- springboot整合mybatis的三种方式
- spring 与 mybatis整合,mybatis注解不起作用
- Mybatis Ibatis Spring整合方式
- matlab libsvm svmtrain 完全禁止输出
- Unable to instantiate application 解决办法
- Python 初学者 入门 应该学习 python 2 还是 python 3?
- 【java】快速访问http网络请求框架QuickHttp的使用
- 手机版h5城市选择
- 全注解方式整合spring+mybatis模拟springboot整合
- 文章标题
- Android中往sd卡中读写数据
- Java内存模型
- 数据结构入门学习系列-2(算法的时间复杂度)
- 深搜专题小结
- iOS 数组倒序方法
- Android中的事件传递机制学习
- Oracle同一数据库的 的不同用户赋权语句