当前位置: 首页 > news >正文

SpringBoot整合第三方技术

整合第三方技术

1. 整合JUnit

1.2 SpringBoot整合JUnit

【第一步】添加整合junit起步依赖(可以直接勾选)

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency>

【第二步】编写测试类,默认自动生成了一个

@SpringBootTest
class Springboot07JunitApplicationTests {@Autowiredprivate BookService bookService;@Testpublic void testSave() {bookService.save();}
}

2. 基于SpringBoot实现SSM整合

问题导入

回忆一下Spring整合MyBatis的核心思想?

2.1 Spring整合MyBatis(复习)
  • SpringConfig
    • 导入JdbcConfig
    • 导入MyBatisConfig
@Configuration
@ComponentScan("com.itheima")
@PropertySource("classpath:jdbc.properties")
@Import({JdbcConfig.class, MyBatisConfig.class})
public class SpringConfig {}
  • JDBCConfig
    • 定义数据源(加载properties配置项:driver、url、username、password)
#jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring_db
jdbc.username=root
jdbc.password=itheima
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;@Beanpublic DataSource getDataSource() {DruidDataSource ds = new DruidDataSource();ds.setDriverClassName(driver);ds.setUrl(url);ds.setUsername(userName);ds.setPassword(password);return ds;}
}
  • MyBatisConfig
    • 定义SqlSessionFactoryBean
    • 定义映射配置
@Bean
public SqlSessionFactoryBean getSqlSessionFactoryBean(DataSource dataSource) {SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();ssfb.setTypeAliasesPackage("com.itheima.domain");ssfb.setDataSource(dataSource);return ssfb;
}
@Bean
public MapperScannerConfigurer getMapperScannerConfigurer() {MapperScannerConfigurer msc = new MapperScannerConfigurer();msc.setBasePackage("com.itheima.dao");return msc;
}
2.2 SpringBoot整合MyBatis
  • SpringBoot整合Spring(不存在)
  • SpringBoot整合SpringMVC(不存在)
  • SpringBoot整合MyBatis(主要)

①:创建新模块,选择Spring初始化,并配置模块相关基础信息

②:选择当前模块需要使用的技术集(MyBatis、MySQL)

③:设置数据源参数

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTCusername: rootpassword: roottype: com.alibaba.druid.pool.DruidDataSource

注意事项:

  1. SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区,或在MySQL数据库端配置时区解决此问题
jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC

④:定义数据层接口与映射配置

@Mapper
public interface UserDao {@Select("select * from tbl_book where id=#{id}")Book getById(Integer id);
}

⑤:测试类中注入dao接口,测试功能

@SpringBootTest
class Springboot08MybatisApplicationTests {@Autowiredprivate BookDao bookDao;@Testpublic void testGetById() {Book book = bookDao.getById(1);System.out.println(book);}
}
2.3 案例-SpringBoot实现ssm整合

【第一步】创建SpringBoot工程,添加druid依赖

<!-- todo 1 添加druid连接池依赖-->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.6</version>
</dependency>

【第二步】复制springmvc_ssm各种资源(主java类、页面、测试类)

【第三步】删除config包中的所有配置,在BookDao接口上加@Mapper注解

//todo 3 在BookDao接口上加@Mapper注解,让SpringBoot给接口创建代理对象
@Mapper
public interface BookDao {//...
}

【第四步】将application.properties修改成application.yml,配置端口号和连接参数

server:port: 80
# todo 4 配置数据库连接参数
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_dbusername: rootpassword: roottype: com.alibaba.druid.pool.DruidDataSource

【第五步】修改BookServiceTest配置类,进行配置

// todo 5 修改单元测试类,添加@SpringBootTest主键,修复@Test注解导包
@SpringBootTest
public class BookServiceTest {@Autowiredprivate BookService bookService;@Testpublic void testGetById(){Book book = bookService.getById(2); //传递参数1会抛出异常System.out.println(book);}@Testpublic void testGetAll(){List<Book> all = bookService.getAll();System.out.println(all);}
}

【第六步】在static目录中提供index.html页面,跳转到"pages/books.html"

<script>location.href="pages/books.html"
</script>

最后:运行引导类即可访问

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • PowerBi 柱形图,数据标签无法显示在端外
  • 基于STM32设计的防盗书包(华为云IOT)(216)
  • 大数据Flink(一百一十三):Flink Python写DataStreamAPI作业快速入门
  • PySpark
  • 面向Data+AI时代的数据湖创新与优化(附Iceberg案例)
  • 电脑错误mfc140.dll丢失怎么办?mfc140.dll丢失如何修复?
  • MySQL数据库安装(详细)—>Mariadb的安装(day21)
  • 印度再现超级大片,豪华阵容加顶级特效
  • 【GC】垃圾回收原理分析
  • 股票锁仓是唯一的盈利方法吗,不如试试程序交易做T
  • MySQL Workbench 的入门指南
  • 彻底解决 node/npm, Electron下载失败相关问题, 从底层源码详解node electron 加速配置
  • 【计算机组成原理】计算机系统层次结构
  • 代码随想录训练营day51|图论part2
  • 【React+Ts+Vite+AntDesign】从0到1基础项目搭建(动态路由)
  • 《剑指offer》分解让复杂问题更简单
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Docker 笔记(2):Dockerfile
  • echarts的各种常用效果展示
  • js算法-归并排序(merge_sort)
  • k个最大的数及变种小结
  • leetcode98. Validate Binary Search Tree
  • LintCode 31. partitionArray 数组划分
  • Making An Indicator With Pure CSS
  • OSS Web直传 (文件图片)
  • Otto开发初探——微服务依赖管理新利器
  • Windows Containers 大冒险: 容器网络
  • 从setTimeout-setInterval看JS线程
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 推荐一个React的管理后台框架
  • 微信公众号开发小记——5.python微信红包
  • 硬币翻转问题,区间操作
  • 白色的风信子
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 选择阿里云数据库HBase版十大理由
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #NOIP 2014#Day.2 T3 解方程
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (26)4.7 字符函数和字符串函数
  • (C++20) consteval立即函数
  • (C语言)共用体union的用法举例
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (六)DockerCompose安装与配置
  • (限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!
  • (转)JAVA中的堆栈
  • (转)ORM
  • (转)编辑寄语:因为爱心,所以美丽
  • .NET 4.0中的泛型协变和反变
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net 获取某一天 在当月是 第几周 函数
  • .NET 中让 Task 支持带超时的异步等待
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .sdf和.msp文件读取