Spring Boot+JFinal之ActiveRecordPlugin+Druid及监控+多数据源

现在主流通用的技术栈,Spring Boot+Druid+MyBatis,或者JFinal+Druid+ActiveRecord。

我遇到的情况呢,Druid这个没什么说的,必须用,还要整合监控页面;要用Spring Boot,因为可以很丝滑地升级为Spring Cloud。但是又贪图ActiveRecord的简便和灵活,所以才有了这么一个缝合怪。

毕竟项目特殊一点,不推荐大家在实际工作中这么用(其实这么做也没啥问题,,,),本文只是做一下记录,网上这种做法的资料我没看到有。


0、相关jar包的maven配置就不放了。

1、多数据源配置。

在src/main/resources/dbcfg增加多个数据源配置文件。

db_cfg_main.properties

db_cfg_user.properties

具体的配置就不放了,按照Druid的来就行。

2、ActiveRecordPlugin加载多数据源。

SpringBoot启动类,增加:

@Bean
public static void loadAllDruidConfig() throws Exception {
Resource[] rs = new PathMatchingResourcePatternResolver().getResources("dbcfg/db_cfg_*.properties");
for (Resource resource : rs) {
String configName = StringUtils.delete(StringUtils.stripFilenameExtension(resource.getFilename()),
"db_cfg_");
//configName很重要,后续使用ActiveRecord操作不同数据库时要用
log.info("加载数据源:{}", configName);
Properties pro = new Properties();
pro.load(resource.getInputStream());
DruidDataSource dds = (DruidDataSource) DruidDataSourceFactory.createDataSource(pro);
dds.setFilters("stat,wall");//加载监控用过滤器
ActiveRecordPlugin arp = new ActiveRecordPlugin(configName, dds);
arp.setDbProFactory(new DbProExtFactory());
arp.start();
}

3、配置Druid监控

@Bean
public ServletRegistrationBean StatViewServlet() {
StatViewServlet statViewServlet = new StatViewServlet();
ServletRegistrationBean srb = new ServletRegistrationBean(statViewServlet,
"/druid/*");
srb.addInitParameter("loginUsername", "admin");
srb.addInitParameter("loginPassword", "admin");
return srb;
}

访问 http://localhost:8080/druid/index.html 输入用户名密码即可访问。

4、使用ActiveRecord操作DB

ActiveRecord默认的DB是main,Db.use().find("select * from order");

如果使用其他数据源,例如user:Db.use("user").find("select * from user");

详细使用可参考JFinal相关文档。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章