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

代备案网站郑州网站推广方案

代备案网站,郑州网站推广方案,wordpress调用分类文章,群晖外网访问wordpress时格式变完首先探究此问题并无什么实际意义,纯属是个人好奇使然,也顺带熟悉了一下Springboot 数据库连接的相关问题,本人纯小白说的不对的地方恳请大佬指正!! 关于HikariDataSource (null)的误解 问题的发现 Value("${myba…

首先探究此问题并无什么实际意义,纯属是个人好奇使然,也顺带熟悉了一下Springboot 数据库连接的相关问题,本人纯小白说的不对的地方恳请大佬指正!!

关于HikariDataSource (null)的误解

问题的发现

 @Value("${mybatis-plus.mapper-locations}")private String[] mapperLocationPatterns;@Beanpublic SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean factory = new MybatisSqlSessionFactoryBean();factory.setDataSource(dataSource);factory.setMapperLocations();ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();List<Resource> resources = new ArrayList<>();for (String pattern : mapperLocationPatterns) {Collections.addAll(resources, resolver.getResources(pattern.trim()));}factory.setMapperLocations(resources.toArray(new Resource[0]));return factory.getObject();}

上图是自己手写的 sqlSessionFactory 然后调试过程中,在读取数据源的时候意外发现

dataSource = HikariDataSource (null) 第一眼我就被误解了误以为数据源映射失败了所以传了个空值,可是定睛一瞧却发现它实际上是创建成功了的,对象属性一个没少,只是它的名字里有个null

接下来就来谈谈这个容易误导人的null 到底说的是什么

首先讲解这个问题前要清楚,自动配置类往往在我们自己定义的@Configuration类之前先创建bean 于是根据这个我们很容易找到 dataSouce 实际上是依赖于 Hikari 创建的(关于Hikari知道他是个jdbc连接池就行,把它看作Druid也行,他是Springboot2.0以后默认的连接池)

于是我们可以在这个类(DataSourceConfiguration.class)里面找到 Hikari 下面的dataSource方法如下图

进一步的我们跳到 HikariDataSource 类里面继续找,感觉已经离目标很近了

还记得dataSource = HikariDataSource (null) 他是这么显示的,那么可以看出是他的类名叫这个于是锁定 toString()方法

终于找到了, 很显然为null的就是 这个pool 那么这个poll 是什么呢它为什么会显示null呢,继续寻找生成poll的方法于是

也就是说在Bean 加载过程中数据库只不过是把相关配置加载到了DataSource 但实际上并没有进行数据库连接 在项目正式启动完毕后 才向数据库发起第一次请求,并给他赋了初始值

可以看到此时括号内就不是null 而是数据库连接池的名字了,那么通过这个连接池也就可以查询到当前数据库的状态,比如当前连接数等等

当然你要是不想让他叫这个默认的名字也可以在配置文件中自己起一个比如“hhh”

总结一下

在spring创建dataSource bean 的时候只是将相关配置载入进去但并没有实施数据库连接(懒加载用来节省资源)因此这个时候 呈现的是一个没有数据库连接池的 dataSource (null)在项目全部加载完以后 再创建数据库连接池并发起连接数据库请求

一种mybaits-Plus mapper映射失败的容易被忽视的原因

大多数mapper映射失败的原因都是路径名称写没写对啊,文件放的位置对不对啊,参数对不对啊,但还有一种原因容易被人忽视。

那就是如果你自己写了 sqlSessionFactory的配置, 原本它是由Springboot 自动配置的所以他会自动去 你的配置文件里面找相关资源,但你自己写了sqlSessionFactory 的bean配置就需要像我这里一样自己手动配置一下 MapperLocations

http://www.dtcms.com/wzjs/165905.html

相关文章:

  • 网站域名怎么缴费营销网站建设哪家快
  • 自己的网站如何做快照劫持seo品牌优化百度资源网站推广关键词排名
  • 深圳网站制作公司信息今日国际新闻大事件
  • 做网站框架浏览时怎么变长网站可以自己做吗
  • 无需登录免费观看的直播seo交互论坛
  • 资源库网站建设网络运营培训课程
  • 网站开发知识版权seo运营是什么
  • 耒阳市古雍网站建设店反向链接查询
  • 网站没有关键词如何建网站不花钱
  • 东莞网站推广哪家好威海seo优化公司
  • 怎样做网站维护广州网站优化价格
  • 网站是用php还是asp 怎么区别软文素材网站
  • wordpress文字数据库windows优化大师要会员
  • 创建网站代码西安网站优化培训
  • 做废钢推广网站使用网站模板快速建站
  • 做seo必须有自己网站吗交换链接营销案例
  • 宿迁建设局网站好搜自然seo
  • 做网站最便宜要多少钱如何写软文
  • 前端开发主要做什么seo怎么做?
  • 漳州开发区人才网seo网站排名优化软件是什么
  • 哪个网站兼职做图好希爱力双效片副作用
  • 成都房地产管理局关键词长尾词优化
  • 北京做网站开发公司哪家好关键词的作用
  • 湛江网站建设湛江sem托管公司
  • 石家庄商城网站建设十大中文网站排名
  • 设计制作费税率在线排名优化
  • 建筑工程挂网甩浆余姚seo智能优化
  • 广州中企动力网站制作人民日报评网络暴力
  • 网站加速器quickq怎样优化网站排名靠前
  • wordpress视频播放器插件下载佛山网站优化