问题描述
用 IDEA 搭建 JFinal Demo 项目,使用 druid 访问数据库,相应的 maven 依赖配置,JFinal 插件都配置了,但IDEA启动调试的时候报错:
[com.alibaba.druid.pool.DruidDataSource] - {dataSource-1} init error
1、pom.xml 依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>jianbao.blog</groupId>
<artifactId>jianbao-blog</artifactId>
<version>1.0.0</version>
<name>jianbao-blog</name>
<url></url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<jfinal.version>3.5</jfinal.version>
</properties>
<!-- 使用阿里 maven 库 -->
<repositories>
<repository>
<id>ali-maven</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<!-- JFinal Web 框架 -->
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
<version>${jfinal.version}</version>
</dependency>
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<!-- 数据库连接池 druid(依赖下面的 MySQL JDBC 驱动)-->
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<!-- MySQL JDBC 驱动 -->
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
</dependencies>
<build>
<finalName>jianbao-blog</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++-->
</plugins>
</pluginManagement>
</build>
</project>
2、config 配置
package blog.jianbao.config;
import blog.jianbao.model._MappingKit;
import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.wall.WallFilter;
import com.jfinal.config.*;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.template.Engine;
public class AppConfig extends JFinalConfig {
@Override
public void configConstant(Constants me) {
// 加载少量必要配置,随后可用 Prokit.get(...)获取值
PropKit.use("config.properties");
me.setDevMode(PropKit.getBoolean("devMode", false));
}
@Override
public void configRoute(Routes me) {
me.add(new RoutesConfig());
}
/**
* 设置 模板引擎
*/
@Override
public void configEngine(Engine me) {
// devMode 配置为 true,将支持模板实时热加载
me.setDevMode(true);
}
/**
* 配置 插件
*/
@Override
public void configPlugin(Plugins me) {
// 配置 druid 数据库连接池插件
DruidPlugin druidPlugin = createDruidPlugin();
// 配置 druid 监控
druidPlugin.addFilter(new StatFilter()); // 监控 /druid/index.html
WallFilter wall = new WallFilter(); // 防SQL注入
wall.setDbType("mysql");
druidPlugin.addFilter(wall);
druidPlugin.setMaxActive(1200);
druidPlugin.setTestOnBorrow(true);
druidPlugin.setTestOnReturn(true);
me.add(druidPlugin);
// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
arp.setShowSql(true);
_MappingKit.mapping(arp);
me.add(arp);
}
public static DruidPlugin createDruidPlugin() {
//db_jdbcUrl=jdbc:mysql://localhost:3306/jianbao-blog?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
//db_user = root
//db_password = 123456
return new DruidPlugin(PropKit.get("db_jdbcUrl"), PropKit.get("db_user"), PropKit.get("db_password").trim());
}
/**
* 配置 全局拦截器
*/
@Override
public void configInterceptor(Interceptors me) {
}
/**
* 配置 处理器
*/
@Override
public void configHandler(Handlers me) {
}
}
问题解决
主要是 IDEA 调试时,没有配置好 maven依赖 打包,如下图所示:
