@ -13,6 +13,7 @@ import com.dsideal.FengHuang.Interceptor.*;
import com.dsideal.FengHuang.LoginPerson.Controller.LoginPersonController ;
import com.dsideal.FengHuang.Menu.Controller.MenuController ;
import com.dsideal.FengHuang.Organization.Controller.OrganizationController ;
import com.dsideal.FengHuang.Plugin.SlaveDrudPlugin ;
import com.dsideal.FengHuang.Student.Controller.StudentController ;
import com.dsideal.FengHuang.StudentYd.Controller.StudentYdController ;
import com.dsideal.FengHuang.Teacher.Controller.TeacherController ;
@ -20,6 +21,7 @@ import com.dsideal.FengHuang.TeacherYd.Controller.TeacherYdController;
import com.dsideal.FengHuang.Util.FileUtil ;
import com.dsideal.FengHuang.Util.LogBackLogFactory ;
import com.dsideal.FengHuang.Util.PkUtil ;
import com.google.common.collect.Lists ;
import com.jfinal.config.* ;
import com.jfinal.kit.PropKit ;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin ;
@ -31,10 +33,14 @@ import com.jfinal.plugin.druid.IDruidStatViewAuth;
import com.jfinal.plugin.redis.RedisPlugin ;
import com.jfinal.server.undertow.UndertowServer ;
import com.jfinal.template.Engine ;
import org.apache.shardingsphere.api.config.masterslave.LoadBalanceStrategyConfiguration ;
import org.apache.shardingsphere.api.config.masterslave.MasterSlaveRuleConfiguration ;
import javax.servlet.http.Cookie ;
import javax.servlet.http.HttpServletRequest ;
import java.io.File ;
import java.util.HashMap ;
import java.util.Map ;
public class Start extends JFinalConfig {
@ -95,14 +101,12 @@ public class Start extends JFinalConfig {
}
/ * *
* 配 置 插 件
* /
@Override
public void configPlugin ( Plugins me ) {
DruidPlugin druidPlugin = new DruidPlugin ( PropKit . get ( "jdbcUrl" ) , PropKit . get ( "user" ) ,
PropKit . get ( "password" ) . trim ( ) , PropKit . get ( "driverClassName" ) ) ;
//最大连接池数量, 默认为8
/ *
功 能 : 创 建 数 据 库 链 接
* /
public DruidPlugin createDruidPlugin ( String url , String username , String password , String driverClass ) {
DruidPlugin druidPlugin = new DruidPlugin ( url , username , password , driverClass ) ;
//最大连接池数量
druidPlugin . setMaxActive ( 20 ) ;
//最小连接池数量
druidPlugin . setMinIdle ( 1 ) ;
@ -114,7 +118,6 @@ public class Start extends JFinalConfig {
druidPlugin . setTimeBetweenEvictionRunsMillis ( 60000 ) ;
//连接保持空闲而不被驱逐的最小时间
druidPlugin . setMinEvictableIdleTimeMillis ( 300000 ) ;
//建议配置为true, 不影响性能, 并且保证安全性。申请连接的时候检测, 如果空闲时间大于timeBetweenEvictionRunsMillis, 执行validationQuery检测连接是否有效。
druidPlugin . setTestWhileIdle ( true ) ;
//申请连接时执行validationQuery检测连接是否有效, 做了这个配置会降低性能。默认为true
@ -123,10 +126,38 @@ public class Start extends JFinalConfig {
druidPlugin . setTestOnReturn ( false ) ;
//数据监控
druidPlugin . addFilter ( new StatFilter ( ) ) ;
return druidPlugin ;
}
/ * *
* 配 置 插 件
* /
@Override
public void configPlugin ( Plugins me ) {
DruidPlugin dp1 = createDruidPlugin ( PropKit . get ( "master_jdbcUrl" ) , PropKit . get ( "master_user" ) , PropKit . get ( "master_password" ) . trim ( ) , PropKit . get ( "master_driverClassName" ) ) ;
DruidPlugin dp2 = createDruidPlugin ( PropKit . get ( "slave_jdbcUrl" ) , PropKit . get ( "slave_user" ) , PropKit . get ( "slave_password" ) . trim ( ) , PropKit . get ( "slave_driverClassName" ) ) ;
Map < String , DruidPlugin > drudMap = new HashMap < > ( ) ;
drudMap . put ( "ds_master" , dp1 ) ;
drudMap . put ( "ds_slave" , dp2 ) ;
//负载均衡算法
LoadBalanceStrategyConfiguration loadBalanceStrategyConfiguration = new LoadBalanceStrategyConfiguration ( "round_robin" ) ;
MasterSlaveRuleConfiguration masterSlaveRuleConfig =
new MasterSlaveRuleConfiguration (
"device_read_write" ,
"ds_master" ,
Lists . newArrayList ( "ds_slave" ) ,
loadBalanceStrategyConfiguration ) ;
SlaveDrudPlugin drudPlugin = new SlaveDrudPlugin ( masterSlaveRuleConfig , drudMap ) ;
me . add ( drudPlugin ) ;
ActiveRecordPlugin arp = new ActiveRecordPlugin ( "aGroup" , drudPlugin ) ;
arp . setDevMode ( PropKit . getBoolean ( "devMode" , false ) ) ;
//配置数据库方言
arp . setDialect ( new PostgreSqlDialect ( ) ) ;
me . add ( druidPlugin ) ;
// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin ( druidPlugin ) ;
//遍历sql目录下所有的sql文件
File sqlDir ;
String basePath = Start . class . getClassLoader ( ) . getResource ( "." ) . getPath ( ) ;
@ -142,8 +173,6 @@ public class Start extends JFinalConfig {
arp . setDialect ( new PostgreSqlDialect ( ) ) ;
//显示SQL语句
//arp.setShowSql(true);
//设置大小写不敏感工厂
//arp.setContainerFactory(new CaseInsensitiveContainerFactory(false));
//加载
me . add ( arp ) ;