漳州平台网站建设,wordpress创建子主题,wordpress外贸建站主题,网站seo注意事项一、整合JUnit
1、Spring 整合 JUnit
核心注解有两个#xff1a;
RunWith(SpringJUnit4ClassRunner.class) 是设置Spring专用于测试的类运行器#xff08;Spring程序执行程序有自己的一套独立的运行程序的方式#xff0c;不能使用JUnit提供的类运行方式#xff09;Conte…一、整合JUnit
1、Spring 整合 JUnit
核心注解有两个
RunWith(SpringJUnit4ClassRunner.class) 是设置Spring专用于测试的类运行器Spring程序执行程序有自己的一套独立的运行程序的方式不能使用JUnit提供的类运行方式ContextConfiguration(classes SpringConfig.class) 是用来设置Spring核心配置文件或配置类的就是加载Spring的环境所需具体的环境配置
//加载spring整合junit专用的类运行器
RunWith(SpringJUnit4ClassRunner.class)
//指定对应的配置信息
ContextConfiguration(classes SpringConfig.class)
public class DemoServiceTestCase {//注入你要测试的对象Autowiredprivate DemoService demoService;Testpublic void testGetById(){//执行要测试的对象对应的方法System.out.println(accountService.findById(2));}
}2、SpringBoot 整合 JUnit
SpringBoot直接简化了 RunWith(SpringJUnit4ClassRunner.class) 和 ContextConfiguration(classes SpringConfig.class) 这两个几乎固定的注解。
package com.ty;import com.ty.service.DemoService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;SpringBootTest
class SpringbootDemoApplicationTests {Autowiredprivate DemoService demoService;Testpublic void getByIdTest(){demoService.getById();}
}
注意
当然如果测试类 SpringbootDemoApplicationTests 所在的包目录与 SpringBoot启动类 SpringbootDemoApplication 不相同则启动时JUnit会找不到SpringBoot的启动类。报错 java.lang.IllegalStateException: Unable to find a SpringBootConfiguration, you need to use ContextConfiguration or SpringBootTest(classes...) with your test。 解决方法 将测试类 SpringbootDemoApplicationTests 所在的包目录与 SpringBoot启动类 SpringbootDemoApplication 调整一致或通过 SpringBootTest(classes SpringbootDemoApplication.class) 指定SpringBoot启动类。
二、整合MyBatis
1、Spring 整合 MyBatis 首选引入MyBatis的一系列 Jar dependenciesdependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.16/version/dependencydependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.6/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.47/version/dependency!--1.导入mybatis与spring整合的jar包--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion1.3.0/version/dependency!--导入spring操作数据库必选的包--dependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion5.2.10.RELEASE/version/dependency
/dependencies数据库连接信息配置 jdbc.drivercom.mysql.jdbc.Driver
jdbc.urljdbc:mysql://localhost:3306/spring_db?useSSLfalse
jdbc.usernameroot
jdbc.passwordroot定义mybatis专用的配置类 //定义mybatis专用的配置类
Configuration
public class MyBatisConfig {
// 定义创建SqlSessionFactory对应的beanBeanpublic SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){//SqlSessionFactoryBean是由mybatis-spring包提供的专用于整合用的对象SqlSessionFactoryBean sfb new SqlSessionFactoryBean();//设置数据源替代原始配置中的environments的配置sfb.setDataSource(dataSource);//设置类型别名替代原始配置中的typeAliases的配置sfb.setTypeAliasesPackage(com.itheima.domain);return sfb;}
// 定义加载所有的映射配置Beanpublic MapperScannerConfigurer mapperScannerConfigurer(){MapperScannerConfigurer msc new MapperScannerConfigurer();msc.setBasePackage(com.itheima.dao);return msc;}}Spring核心配置 Configuration
ComponentScan(com.itheima)
PropertySource(jdbc.properties)
public class SpringConfig {
}配置Bean Configuration
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(dataSource)public DataSource dataSource(){DruidDataSource ds new DruidDataSource();ds.setDriverClassName(driver);ds.setUrl(url);ds.setUsername(userName);ds.setPassword(password);return ds;}
}2、SpringBoot 整合 MyBatis
对比以上SpringBoot简单很多。 首先导入MyBatis对应的starter mybatis-spring-boot-starter 和 数据库驱动 mysql-connector-java dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.2.0/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.27/versionscoperuntime/scope/dependency配置数据源相关信息 spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/tyusername: rootpassword: 123驱动类过时提醒更换为com.mysql.cj.jdbc.Driver 配置Entity和Dao数据库SQL映射需要添加Mapper被容器识别到 package com.ty.entity;import lombok.Data;Data
public class TyUser {private Integer id;private String name;private Integer age;} package com.ty.dao;import com.ty.entity.TyUser;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Select;Mapperpublic interface DemoDao {Select(select * from ty_user where id #{id})public TyUser getById(Integer id);}通过测试类注入 DemoService 即可调用。 package com.ty;import com.ty.dao.DemoDao;
import com.ty.entity.TyUser;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;SpringBootTest
class SpringbootDemoApplicationTests {Autowiredprivate DemoDao demoDao;Testpublic void getByIdTestDao(){TyUser byId demoDao.getById(1);System.out.println(byId);}}三、整合MyBatis-Plus
MyBaitsPlus简称MP国人开发的技术符合中国人开发习惯 导入 mybatis_plus starter mybatis-plus-boot-starter dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.4.3/version
/dependency配置数据源相关信息 spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/tyusername: rootpassword: 123Dao 映射接口与实体类 package com.example.springboot_mybatisplus_demo.dao;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.springboot_mybatisplus_demo.entity.User;
import org.apache.ibatis.annotations.Mapper;Mapper
public interface DemoDao extends BaseMapperUser {
} 实体类名称与表名一致可自动映射。当表名有前缀时可在application.yml中配置表的通用前缀。 package com.example.springboot_mybatisplus_demo.entity;import lombok.Data;Data
public class User {private Integer id;private String name;private Integer age;
} mybatis-plus:global-config:db-config:table-prefix: ty_ #设置所有表的通用前缀名称为tbl_编写测试类注入DemoDao 即可调用 mybatis_plus 提供的一系列方法。继承的BaseMapper的接口中帮助开发者预定了若干个常用的API接口简化了通用API接口的开发工作。 package com.example.springboot_mybatisplus_demo;import com.example.springboot_mybatisplus_demo.dao.DemoDao;
import com.example.springboot_mybatisplus_demo.entity.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;SpringBootTest
class SpringbootMybatisplusDemoApplicationTests {Autowiredprivate DemoDao demoDao;Testpublic void getByIdTestDao(){User byId demoDao.selectById(1);System.out.println(byId);}}