现在主流通用的技术栈,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 条评论) “” |