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
可以尝试以下几个解决方案:
检查配置文件路径
首先需要检查配置文件路径是否正确。确保配置文件在classpath下,且路径正确。如果配置文件不在classpath下,需要使用绝对路径指定配置文件的路径。
确认配置文件格式
Druid数据源支持多种配置文件格式,例如properties、yaml、json等。需要确认配置文件的格式是否正确,并且符合Druid数据源的配置要求。例如,如果使用properties格式的配置文件,需要按照键值对的方式设置配置参数。
确认配置文件内容
需要确认配置文件中配置参数的名称和值是否正确。例如,配置文件中的配置参数名称应该与Druid数据源配置参数的名称一致,否则可能会导致无法正确读取配置参数。
确认配置参数是否完整
需要确认配置文件中的配置参数是否完整。Druid数据源有一些必须的配置参数,例如url、username、password等,如果这些参数没有设置或者设置不正确,可能会导致无法正确创建数据源。
使用代码方式设置配置参数
如果无法通过配置文件设置配置参数,可以尝试使用代码方式设置配置参数。可以创建一个Properties对象,设置数据源的配置参数,然后将该Properties对象传递给DruidDataSourceFactory.createDataSource方法。
根据您提供的信息,您使用了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中看到生效。
如果问题仍然存在,请提供更多的代码和错误信息,以便我能更好地帮助您解决问题。
问题已修复,请用新版本 https://github.com/alibaba/druid/releases/tag/1.1.14
原回答者GitHub用户wenshao
如果您使用 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 程序到最新版本,或者更新配置属性名称以适合您使用的版本。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。