druid 手动指定数据源_SpringBoot整合Mybatis+Druid

1.SpringBoot 作为一款约定大于配置的微服务框架,得到了业界的大量推广和应用。对SpringBoot的学习使用可以有效的帮助开发简化开发流程,配置过程,部署过程。

2.数据库的交互是开发过程中很常见的一种业务,数据层的接入方式众多,JDBC,Spring JdbcTemplate,Hibernate,Mybatis等等。传统的JDBC因为模板代码众多,侵入式的事物操作极容易出现问题。老牌的Hibernate从对象的角度去看待数据库,从而在对象层面完全封装数据库操作,简化开发代码,提升开发效率。但也随之带来了定制化SQL使用困难,业务逻辑模型与数据库模型耦合度高,数据量大时性能损耗严重等一系列问题,导致大型互联网项目往往对其避之不及。而MyBatis作为一款轻量级、半自动化的ORM框架脱颖而出。SQL与代码的分离便于维护管理,逻辑标签控制SQL的拼接实现动态SQL,查询结果集与Java对象自动映射,可以编写原生SQL,方便SQL优化等优点让更多的开发选择它。

3.alibaba发布的Druid,号称JAVA语言中最好的数据库连接池,提供强大的监控和扩展功能,进一步提升开发人员的SQL优化效率。与其他数据库连接池的对比:

57cb2b61002c4fa9b3fdd9af938f27bc

纸上得来终觉浅,绝知此事要躬行。为了加深对以框架的理解运用,我将以上框架做一次整合运用。技术栈Spring, Spring Boot,Mybatis,Druid,Log4j2, Maven

搭 建 步 骤

第一步:Spring Boot的项目构建

采用maven项目管理工具,目录结构如下:

e4231faaa327403e927fda6143b2485c

第二步:添加依赖

Spring Boot官方文档中解释,在启用spring-boot-starter后会默认使用logback作为日志框架,本项目选用log4j2,因此需要全局exclude掉Spring Boot默认日志。

9eb393b9d794480fb7c9e4a4edf598f3

很多教学在spring-boot-starter-web处exclude,这种做法是错误的,会导致Spring Boot启动时发现多个SLF4J bingdings。

f1cf470aee9a4a4eaac8255dba2d5f69

Mybatis for Spring Boot 依赖。

cc05f27606c245469f0e533687fb3f0c

数据库驱动与数据库连接池依赖。

b8e3e275876845eaaf40a642d25104da

日志依赖

55a4b59c7e7a48e9bb824d14864e6302

第三步:启动组件扫描

选用Java注解+自动注入的方式配置Spring Bean,需要开启对特定包的组件扫描。

2ff609cebe2448b79632b189906500f7

第四步:配置数据源

使用Spring Boot整合Druid的方式,通过@ConfigurationProperties来做属性注入。Spring的事物管理配置非常方便,事物管理配置数据源即可。

6ced45746e8a4fdf9051d0e961a1ea04

同时在yml文件中添加数据源配置。StatviewConfig开启后可使用druid内置监控。

0d13359e3d624c35a8c1f8ab2f083dd8

第五步:配置Mybatis

配置mybatis的SqlSessionFactory。添加MapperScan标签的同时指定sqlSessionFactiory的引用。

c4b72932976245ea970ceea67a58fc9e

Mybatis的Mapper只能用接口定义,默认情况下需要在mapper interface上添加@Mapper标签。

第六步:测试

创建Usr对象并在数据库创建表结构。通过SpringMVC发起对UserService的调用,查询数据库中的user记录。最后查看监控和日志。

首先我们通过POSTMAN发起GET请求:

43b07d9a61dd4664abb90872c275a29e

接着查看Druid内置监。URL: http://localhost:8080/druid/index.html,可以发现Druid Monitor已经帮助我们记录了本次调用的SQL,防火墙统计信息,URL监控等数据。

73d62fcc80cd40c0823171b37ac33a41

最后查看控制台输出MyBatis的SQL日志

b57909b5c124488b8999891e3e11bf7e

OK 打完收工!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值