开发者社区> 问答> 正文

DruidDataSourceFactory.createDataSource 不能读取配置文件na

prop: name=test url=jdbc:mysql://localhost:3306/test username=root password=123456

DruidDataSource dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(prop);

通过DruidDataSourceFactory.createDataSource创建的DruidDataSource,在DruidStatView看到是没有生效的

原提问者GitHub用户Kumhy

展开
收起
山海行 2023-07-05 21:56:59 179 0
4 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    可以尝试以下几个解决方案:

    检查配置文件路径
    首先需要检查配置文件路径是否正确。确保配置文件在classpath下,且路径正确。如果配置文件不在classpath下,需要使用绝对路径指定配置文件的路径。

    确认配置文件格式
    Druid数据源支持多种配置文件格式,例如properties、yaml、json等。需要确认配置文件的格式是否正确,并且符合Druid数据源的配置要求。例如,如果使用properties格式的配置文件,需要按照键值对的方式设置配置参数。

    确认配置文件内容
    需要确认配置文件中配置参数的名称和值是否正确。例如,配置文件中的配置参数名称应该与Druid数据源配置参数的名称一致,否则可能会导致无法正确读取配置参数。

    确认配置参数是否完整
    需要确认配置文件中的配置参数是否完整。Druid数据源有一些必须的配置参数,例如url、username、password等,如果这些参数没有设置或者设置不正确,可能会导致无法正确创建数据源。

    使用代码方式设置配置参数
    如果无法通过配置文件设置配置参数,可以尝试使用代码方式设置配置参数。可以创建一个Properties对象,设置数据源的配置参数,然后将该Properties对象传递给DruidDataSourceFactory.createDataSource方法。

    2023-07-30 09:36:21
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    根据您提供的信息,您使用了DruidDataSourceFactory.createDataSource方法创建了DruidDataSource,并将配置文件中的属性传递给了该方法。然而,在DruidStatView中没有看到生效。

    请确保您的配置文件的格式正确,并且文件名为na.properties。另外,确保该配置文件位于正确的位置,即DruidDataSourceFactory.createDataSource方法可以找到它。

    另外,请确保您的代码中没有其他地方对DruidDataSource的配置进行了修改。可能存在其他地方的代码修改了DruidDataSource的属性,导致配置文件中的属性被覆盖。

    如果以上步骤都正确,并且问题仍然存在,请尝试手动创建DruidDataSource,并将属性逐个设置,以确保属性的正确生效。例如:

    DruidDataSource dataSource = new DruidDataSource();
    dataSource.setUrl("jdbc:mysql://localhost:3306/test");
    dataSource.setUsername("root");
    dataSource.setPassword("123456");
    // 设置其他属性...
    

    通过上述方式创建的DruidDataSource应该可以在DruidStatView中看到生效。

    如果问题仍然存在,请提供更多的代码和错误信息,以便我能更好地帮助您解决问题。

    2023-07-11 16:10:02
    赞同 展开评论 打赏
  • 问题已修复,请用新版本 https://github.com/alibaba/druid/releases/tag/1.1.14

    原回答者GitHub用户wenshao

    2023-07-06 12:30:20
    赞同 展开评论 打赏
  • 如果您使用 DruidDataSourceFactory.createDataSource 创建 DruidDataSource,但是在 DruidStatView 中查看发现未生效,可能有以下几种情况:

    Druid 监控没有开启 需要在应用程序中显式地开启 Druid 监控,即使用 DruidDataSource.setFilters 方法配置监控功能。示例代码如下:

    DruidDataSource dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(prop); dataSource.setFilters("stat,wall"); 复制 配置文件未正确加载 DruidDataSourceFactory.createDataSource 方法的第一个参数为 Properties 类型的配置文件,需要确认配置文件已正确加载,并且配置属性的键名与值均正确。请尝试在代码中输出配置属性,确认其有效性。

    应用程序访问权限问题 依据您所给出的配置文件中的 URL,判断您使用的是本地数据库,检查数据库访问权限是否设置正确。请确保您的应用程序拥有访问对应数据库的权限,否则 Druid 监控页面将无法显示正确信息。

    Druid 程序版本和配置文件不匹配 请确认您使用的 Druid 程序版本与配置文件的格式相匹配。如果您使用的是较老版本的 Druid,有可能无法识别配置文件各项属性。请升级 Druid 程序到最新版本,或者更新配置属性名称以适合您使用的版本。

    2023-07-06 09:16:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载