zoukankan      html  css  js  c++  java
  • 【Springboot项目启动异常】项目启动,数据库连接异常

    今天使用Springboot 整合 MybatisPlus 准备写一个Demo,在项目启动时,频繁出错,在此记录整个问题的解决过程

    问题如下图

     人工翻译一遍,主要意思就是没有检测到数据库驱动,也就是说没有检测到数据源相关的配置,

    首先检查maven和yml文件,是否有引入相关的依赖和对数据源的配置,但是查看maven 和 yml ,检查后发现并没有问题,如下图所示

    maven配置

     yml配置文件

     检查完以后发现并没有问题,这时首先排查是否是mybatis-plus的配置问题,于是按照官方的推荐配置去配置mybatis-plus,,如下:

     再次启动项目,仍然报同样的错误,,,启动失败;

    这时百度发现是否是Spring-data-jdbc 和mybatis 冲突的原因导致,结果发现maven 配置中并没有相关spring-data相关的依赖,因此排除这个因素

    然后使用低版本的mybatisplus版本以及druid连接池的版本,发现不起作用,仍然会出现这个问题

    最后回归到问题的本质原因是没有配置数据库相关的信息,再次检查相关的maven依赖

     发现druid连接池相关的依赖的scope 这里有疑问,这里使用的是provided,

    这里补充一下maven 依赖scope各个配置:

      • compile
        默认scope为compile,表示为当前依赖参与项目的编译、测试和运行阶段,属于强依赖。打包之时,会达到包里去。
      • test
        该依赖仅仅参与测试相关的内容,包括测试用例的编译和执行,比如定性的Junit。
      • runtime
        依赖仅参与运行周期中的使用。一般这种类库都是接口与实现相分离的类库,比如JDBC类库,在编译之时仅依赖相关的接口,在具体的运行之时,才需要具体的mysql、oracle等等数据的驱动程序。
        此类的驱动都是为runtime的类库。(但是runtime引入的jar包中的类,项目代码里不能直接用,用了无法通过编译,只能通过反射之类的方式来用。)
      • provided
        该依赖在打包过程中,不需要打进去,这个由运行的环境来提供,比如tomcat或者基础类库等等,事实上,该依赖可以参与编译、测试和运行等周期,与compile等同。区别在于打包阶段进行了exclude操作。
      • system
        使用上与provided相同,不同之处在于该依赖不从maven仓库中提取,而是从本地文件系统中提取,其会参照systemPath的属性进行提取依赖。
      • import
        这个是maven2.0.9版本后出的属性,import只能在dependencyManagement的中使用,能解决maven单继承问题,import依赖关系实际上并不参与限制依赖关系的传递性。

    很显然,,是这里出现了问题,去掉这个scope后,再次启动,项目正常启动:

  • 相关阅读:
    使用url_for()时,会自动调用转换器的to_url()方法
    自定义flask转换器
    flask自有转换器:int、float、path。默认string
    flask中重定向所涉及的反推:由视图函数反推url
    mysqldump 命令使用
    PIX 防火墙
    MySQL 常用show 语句
    防火墙与入侵检测技术
    mysql DQL语言操作
    mysql 视图
  • 原文地址:https://www.cnblogs.com/july-sunny/p/13530023.html
Copyright © 2011-2022 走看看