Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
guns-vip
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenjunxiong
guns-vip
Commits
21abc766
Commit
21abc766
authored
May 21, 2017
by
fsn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
搞定druid监控
parent
2a338e4a
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
331 additions
and
364 deletions
+331
-364
pom.xml
+2
-2
src/main/java/com/stylefeng/guns/GunsApplication.java
+0
-1
src/main/java/com/stylefeng/guns/GunsServletInitializer.java
+55
-0
src/main/java/com/stylefeng/guns/config/ControllerAopConfig.java
+0
-24
src/main/java/com/stylefeng/guns/config/MybatisPlusConfig.java
+12
-44
src/main/java/com/stylefeng/guns/config/OtherConfigs.java
+5
-7
src/main/java/com/stylefeng/guns/config/web/DruidMonitorConfig.java
+1
-1
src/main/java/com/stylefeng/guns/config/web/ShiroConfig.java
+1
-1
src/main/java/com/stylefeng/guns/config/web/SpringMvcConfig.java
+2
-4
src/main/java/com/stylefeng/guns/core/beetl/BeetlConfiguration.java
+1
-2
src/main/java/com/stylefeng/guns/core/listener/ConfigListener.java
+1
-1
src/main/java/com/stylefeng/guns/modular/system/service/impl/RoleServiceImpl.java
+0
-1
src/main/java/project/config/datasource/DataSourceConfig.java
+129
-129
src/main/java/project/config/web/ControllerAopConfig.java
+0
-26
src/main/java/project/config/web/SpringMvcConfig.java
+119
-119
src/main/java/project/config/web/WebAppInitializer.java
+2
-1
src/main/resources/application.yml
+1
-1
No files found.
pom.xml
View file @
21abc766
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
<groupId>
com.stylefeng
</groupId>
<groupId>
com.stylefeng
</groupId>
<artifactId>
guns
</artifactId>
<artifactId>
guns
</artifactId>
<version>
1.0.0-SNAPSHOT
</version>
<version>
1.0.0-SNAPSHOT
</version>
<packaging>
j
ar
</packaging>
<packaging>
w
ar
</packaging>
<name>
guns
</name>
<name>
guns
</name>
<description>
guns 的spring boot版本
</description>
<description>
guns 的spring boot版本
</description>
...
@@ -99,7 +99,7 @@
...
@@ -99,7 +99,7 @@
<dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<groupId>
com.alibaba
</groupId>
<artifactId>
druid
</artifactId>
<artifactId>
druid
</artifactId>
<version>
1.0.
2
1
</version>
<version>
1.0.
3
1
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.apache.shiro
</groupId>
<groupId>
org.apache.shiro
</groupId>
...
...
src/main/java/com/stylefeng/guns/GunsApplication.java
View file @
21abc766
...
@@ -10,7 +10,6 @@ public class GunsApplication {
...
@@ -10,7 +10,6 @@ public class GunsApplication {
protected
final
static
Logger
logger
=
LoggerFactory
.
getLogger
(
GunsApplication
.
class
);
protected
final
static
Logger
logger
=
LoggerFactory
.
getLogger
(
GunsApplication
.
class
);
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
GunsApplication
.
class
,
args
);
SpringApplication
.
run
(
GunsApplication
.
class
,
args
);
logger
.
info
(
"GunsApplication is sussess!"
);
logger
.
info
(
"GunsApplication is sussess!"
);
...
...
src/main/java/com/stylefeng/guns/GunsServletInitializer.java
0 → 100644
View file @
21abc766
package
com
.
stylefeng
.
guns
;
import
com.alibaba.druid.support.http.StatViewServlet
;
import
com.stylefeng.guns.core.listener.ConfigListener
;
import
com.stylefeng.guns.core.util.xss.XssFilter
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.boot.builder.SpringApplicationBuilder
;
import
org.springframework.boot.web.support.SpringBootServletInitializer
;
import
org.springframework.web.context.request.RequestContextListener
;
import
javax.servlet.*
;
import
java.util.EnumSet
;
/**
* Guns Web程序启动类
*
* @author fengshuonan
* @date 2017-05-21 9:43
*/
public
class
GunsServletInitializer
extends
SpringBootServletInitializer
{
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
GunsServletInitializer
.
class
);
@Override
public
void
onStartup
(
ServletContext
servletContext
)
throws
ServletException
{
//用来非Controller层获取HttpServletRequest
servletContext
.
addListener
(
RequestContextListener
.
class
);
servletContext
.
addListener
(
ConfigListener
.
class
);
logger
.
info
(
"初始化ConfigListener成功!"
);
//防止xss攻击的filter
FilterRegistration
.
Dynamic
xssFilter
=
servletContext
.
addFilter
(
"xssSqlFilter"
,
new
XssFilter
());
xssFilter
.
addMappingForUrlPatterns
(
EnumSet
.
of
(
DispatcherType
.
REQUEST
),
false
,
"/*"
);
logger
.
info
(
"初始化XssFilter成功!"
);
try
{
ServletRegistration
.
Dynamic
dynamic
=
servletContext
.
addServlet
(
"DruidStatView"
,
StatViewServlet
.
class
);
dynamic
.
addMapping
(
"/druid/*"
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"初始化druid监控出错!"
,
e
);
}
logger
.
info
(
"初始化DruidMonitor成功!"
);
super
.
onStartup
(
servletContext
);
}
@Override
protected
SpringApplicationBuilder
configure
(
SpringApplicationBuilder
builder
)
{
return
builder
.
sources
(
GunsApplication
.
class
);
}
}
src/main/java/com/stylefeng/guns/config/ControllerAopConfig.java
deleted
100644 → 0
View file @
2a338e4a
package
com
.
stylefeng
.
guns
.
config
;
import
com.stylefeng.guns.core.intercept.SessionInterceptor
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
/**
* 保留类,如果控制器需要些aop在这里写
*
* @author fengshuonan
* @date 2016年11月12日 下午4:48:10
*/
@Configuration
public
class
ControllerAopConfig
{
/**
* session的拦截器,用在非controller层调用session
*/
@Bean
public
SessionInterceptor
sessionInterceptor
()
{
return
new
SessionInterceptor
();
}
}
src/main/java/com/stylefeng/guns/config/MybatisPlusConfig.java
View file @
21abc766
package
com
.
stylefeng
.
guns
.
config
;
package
com
.
stylefeng
.
guns
.
config
;
import
com.alibaba.druid.pool.DruidDataSource
;
import
com.alibaba.druid.pool.DruidDataSource
;
import
com.baomidou.mybatisplus.entity.GlobalConfiguration
;
import
com.baomidou.mybatisplus.enums.DBType
;
import
com.baomidou.mybatisplus.enums.DBType
;
import
com.baomidou.mybatisplus.enums.IdType
;
import
com.baomidou.mybatisplus.plugins.PaginationInterceptor
;
import
com.baomidou.mybatisplus.plugins.PaginationInterceptor
;
import
com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean
;
import
com.stylefeng.guns.core.util.ResKit
;
import
org.apache.ibatis.plugin.Interceptor
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.mybatis.spring.mapper.MapperScannerConfigurer
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.core.io.ClassPathResource
;
import
project.config.datasource.DataSourceConfigTemplate
;
import
org.springframework.core.io.Resource
;
import
org.springframework.jdbc.datasource.DataSourceTransactionManager
;
import
org.springframework.transaction.annotation.EnableTransactionManagement
;
import
javax.sql.DataSource
;
/**
/**
* MybatisPlus配置
* MybatisPlus配置
...
@@ -28,6 +17,7 @@ import javax.sql.DataSource;
...
@@ -28,6 +17,7 @@ import javax.sql.DataSource;
*/
*/
@Configuration
@Configuration
@MapperScan
(
basePackages
=
{
"com.stylefeng.guns.modular.*.dao"
,
"com.stylefeng.guns.persistence.dao"
})
@MapperScan
(
basePackages
=
{
"com.stylefeng.guns.modular.*.dao"
,
"com.stylefeng.guns.persistence.dao"
})
@ConfigurationProperties
(
prefix
=
"jdbc"
)
public
class
MybatisPlusConfig
{
public
class
MybatisPlusConfig
{
private
String
url
;
private
String
url
;
...
@@ -38,7 +28,7 @@ public class MybatisPlusConfig {
...
@@ -38,7 +28,7 @@ public class MybatisPlusConfig {
* mybatis-plus分页插件
* mybatis-plus分页插件
*/
*/
@Bean
@Bean
public
PaginationInterceptor
paginationInterceptor
(
DataSource
dataSource
)
{
public
PaginationInterceptor
paginationInterceptor
()
{
PaginationInterceptor
paginationInterceptor
=
new
PaginationInterceptor
();
PaginationInterceptor
paginationInterceptor
=
new
PaginationInterceptor
();
paginationInterceptor
.
setDialectType
(
DBType
.
MYSQL
.
getDb
());
paginationInterceptor
.
setDialectType
(
DBType
.
MYSQL
.
getDb
());
//paginationInterceptor.setOptimizeType(Optimize.JSQLPARSER.getOptimize());
//paginationInterceptor.setOptimizeType(Optimize.JSQLPARSER.getOptimize());
...
@@ -46,48 +36,26 @@ public class MybatisPlusConfig {
...
@@ -46,48 +36,26 @@ public class MybatisPlusConfig {
}
}
/**
/**
*
事务管理, 声明式事务的开启
*
druid数据库连接池
*/
*/
@Bean
@Bean
(
initMethod
=
"init"
)
public
DataSourceTransactionManager
transactionManager
(
DataSource
dataSource
)
{
public
DruidDataSource
dataSource
()
{
DataSourceTransactionManager
manager
=
new
DataSourceTransactionManager
();
DruidDataSource
dataSource
=
new
DruidDataSource
();
manager
.
setDataSource
(
dataSource
);
dataSource
.
setUrl
(
this
.
url
.
trim
());
return
manager
;
dataSource
.
setUsername
(
this
.
username
.
trim
());
}
dataSource
.
setPassword
(
this
.
password
);
DataSourceConfigTemplate
.
config
(
dataSource
);
/**
return
dataSource
;
* 第三方数据库连接池的配置
*/
//@Bean(initMethod = "init")
//public DruidDataSource dataSource() {
// DruidDataSource dataSource = new DruidDataSource();
// dataSource.setUrl(this.url);
// dataSource.setUsername(this.username);
// dataSource.setPassword(this.password);
// DataSourceConfigTemplate.config(dataSource);
// return dataSource;
//}
public
String
getUrl
()
{
return
url
;
}
}
public
void
setUrl
(
String
url
)
{
public
void
setUrl
(
String
url
)
{
this
.
url
=
url
;
this
.
url
=
url
;
}
}
public
String
getUsername
()
{
return
username
;
}
public
void
setUsername
(
String
username
)
{
public
void
setUsername
(
String
username
)
{
this
.
username
=
username
;
this
.
username
=
username
;
}
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
this
.
password
=
password
;
}
}
...
...
src/main/java/com/stylefeng/guns/config/OtherConfigs.java
View file @
21abc766
...
@@ -2,13 +2,13 @@ package com.stylefeng.guns.config;
...
@@ -2,13 +2,13 @@ package com.stylefeng.guns.config;
import
com.google.code.kaptcha.impl.DefaultKaptcha
;
import
com.google.code.kaptcha.impl.DefaultKaptcha
;
import
com.google.code.kaptcha.util.Config
;
import
com.google.code.kaptcha.util.Config
;
import
com.stylefeng.guns.core.intercept.SessionInterceptor
;
import
net.sf.ehcache.CacheManager
;
import
net.sf.ehcache.CacheManager
;
import
org.springframework.cache.ehcache.EhCacheCacheManager
;
import
org.springframework.cache.ehcache.EhCacheCacheManager
;
import
org.springframework.cache.ehcache.EhCacheManagerFactoryBean
;
import
org.springframework.cache.ehcache.EhCacheManagerFactoryBean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.core.io.ClassPathResource
;
import
project.config.web.beetl.BeetlConfiguration
;
import
java.util.Properties
;
import
java.util.Properties
;
...
@@ -58,12 +58,10 @@ public class OtherConfigs {
...
@@ -58,12 +58,10 @@ public class OtherConfigs {
}
}
/**
/**
*
beetl的配置
*
session的拦截器,用在非controller层调用session
*/
*/
@Bean
(
initMethod
=
"init"
)
@Bean
public
BeetlConfiguration
beetlConfiguration
()
{
public
SessionInterceptor
sessionInterceptor
()
{
BeetlConfiguration
beetlConfiguration
=
new
BeetlConfiguration
();
return
new
SessionInterceptor
();
beetlConfiguration
.
setConfigFileResource
(
new
ClassPathResource
(
"beetl.properties"
));
return
beetlConfiguration
;
}
}
}
}
src/main/java/
project/config/web/monitor
/DruidMonitorConfig.java
→
src/main/java/
com/stylefeng/guns/config/web
/DruidMonitorConfig.java
View file @
21abc766
package
project
.
config
.
web
.
monitor
;
package
com
.
stylefeng
.
guns
.
config
.
web
;
import
com.alibaba.druid.pool.DruidDataSource
;
import
com.alibaba.druid.pool.DruidDataSource
;
import
com.alibaba.druid.support.spring.stat.BeanTypeAutoProxyCreator
;
import
com.alibaba.druid.support.spring.stat.BeanTypeAutoProxyCreator
;
...
...
src/main/java/com/stylefeng/guns/config/ShiroConfig.java
→
src/main/java/com/stylefeng/guns/config/
web/
ShiroConfig.java
View file @
21abc766
package
com
.
stylefeng
.
guns
.
config
;
package
com
.
stylefeng
.
guns
.
config
.
web
;
import
com.stylefeng.guns.core.shiro.ShiroDbRealm
;
import
com.stylefeng.guns.core.shiro.ShiroDbRealm
;
import
org.apache.shiro.codec.Base64
;
import
org.apache.shiro.codec.Base64
;
...
...
src/main/java/com/stylefeng/guns/config/SpringMvcConfig.java
→
src/main/java/com/stylefeng/guns/config/
web/
SpringMvcConfig.java
View file @
21abc766
package
com
.
stylefeng
.
guns
.
config
;
package
com
.
stylefeng
.
guns
.
config
.
web
;
import
com.stylefeng.guns.core.beetl.BeetlConfiguration
;
import
org.beetl.ext.spring.BeetlSpringViewResolver
;
import
org.beetl.ext.spring.BeetlSpringViewResolver
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.EnableAspectJAutoProxy
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.web.servlet.config.annotation.EnableWebMvc
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
;
import
project.config.web.beetl.BeetlConfiguration
;
/**
/**
* spring mvc配置类
* spring mvc配置类
...
...
src/main/java/
project/config/web
/beetl/BeetlConfiguration.java
→
src/main/java/
com/stylefeng/guns/core
/beetl/BeetlConfiguration.java
View file @
21abc766
package
project
.
config
.
web
.
beetl
;
package
com
.
stylefeng
.
guns
.
core
.
beetl
;
import
com.stylefeng.guns.core.beetl.ShiroExt
;
import
com.stylefeng.guns.core.util.ToolUtil
;
import
com.stylefeng.guns.core.util.ToolUtil
;
import
org.beetl.ext.spring.BeetlGroupUtilConfiguration
;
import
org.beetl.ext.spring.BeetlGroupUtilConfiguration
;
...
...
src/main/java/com/stylefeng/guns/core/listener/ConfigListener.java
View file @
21abc766
...
@@ -23,7 +23,7 @@ import java.util.Map;
...
@@ -23,7 +23,7 @@ import java.util.Map;
public
class
ConfigListener
implements
ServletContextListener
{
public
class
ConfigListener
implements
ServletContextListener
{
private
static
Map
<
String
,
String
>
conf
=
new
HashMap
<
String
,
String
>();
private
static
Map
<
String
,
String
>
conf
=
new
HashMap
<>();
public
static
Map
<
String
,
String
>
getConf
()
{
public
static
Map
<
String
,
String
>
getConf
()
{
return
conf
;
return
conf
;
...
...
src/main/java/com/stylefeng/guns/modular/system/service/impl/RoleServiceImpl.java
View file @
21abc766
...
@@ -45,7 +45,6 @@ public class RoleServiceImpl implements IRoleService {
...
@@ -45,7 +45,6 @@ public class RoleServiceImpl implements IRoleService {
//删除角色
//删除角色
this
.
roleMapper
.
deleteById
(
roleId
);
this
.
roleMapper
.
deleteById
(
roleId
);
// 删除该角色所有的权限
// 删除该角色所有的权限
this
.
roleDao
.
deleteRolesById
(
roleId
);
this
.
roleDao
.
deleteRolesById
(
roleId
);
}
}
...
...
src/main/java/project/config/datasource/DataSourceConfig.java
View file @
21abc766
package
project
.
config
.
datasource
;
//
package project.config.datasource;
//
import
com.alibaba.druid.pool.DruidDataSource
;
//
import com.alibaba.druid.pool.DruidDataSource;
import
com.baomidou.mybatisplus.entity.GlobalConfiguration
;
//
import com.baomidou.mybatisplus.entity.GlobalConfiguration;
import
com.baomidou.mybatisplus.plugins.PaginationInterceptor
;
//
import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
import
com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean
;
//
import com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean;
import
com.stylefeng.guns.core.util.ResKit
;
//
import com.stylefeng.guns.core.util.ResKit;
import
org.apache.ibatis.plugin.Interceptor
;
//
import org.apache.ibatis.plugin.Interceptor;
import
org.mybatis.spring.mapper.MapperScannerConfigurer
;
//
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import
org.springframework.context.EnvironmentAware
;
//
import org.springframework.context.EnvironmentAware;
import
org.springframework.context.annotation.Bean
;
//
import org.springframework.context.annotation.Bean;
import
org.springframework.context.annotation.Configuration
;
//
import org.springframework.context.annotation.Configuration;
import
org.springframework.context.annotation.PropertySource
;
//
import org.springframework.context.annotation.PropertySource;
import
org.springframework.core.env.Environment
;
//
import org.springframework.core.env.Environment;
import
org.springframework.core.io.ClassPathResource
;
//
import org.springframework.core.io.ClassPathResource;
import
org.springframework.core.io.Resource
;
//
import org.springframework.core.io.Resource;
import
org.springframework.jdbc.datasource.DataSourceTransactionManager
;
//
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import
org.springframework.transaction.annotation.EnableTransactionManagement
;
//
import org.springframework.transaction.annotation.EnableTransactionManagement;
//
import
javax.sql.DataSource
;
//
import javax.sql.DataSource;
//
/**
/
//
**
* 数据源配置
//
* 数据源配置
*
//
*
* @author fengshuonan
//
* @author fengshuonan
* @date 2016年11月12日 下午4:55:09
//
* @date 2016年11月12日 下午4:55:09
*/
//
*/
@Configuration
//
@Configuration
@EnableTransactionManagement
//
@EnableTransactionManagement
@PropertySource
(
"classpath:jdbc.properties"
)
//
@PropertySource("classpath:jdbc.properties")
public
class
DataSourceConfig
implements
EnvironmentAware
{
//
public class DataSourceConfig implements EnvironmentAware {
//
private
Environment
em
;
//
private Environment em;
//
/**
//
/**
* 扫描所有mybatis的接口
//
* 扫描所有mybatis的接口
*
//
*
* @author fengshuonan
//
* @author fengshuonan
*/
//
*/
@Bean
//
@Bean
public
MapperScannerConfigurer
mappers
()
{
//
public MapperScannerConfigurer mappers() {
MapperScannerConfigurer
mapperScannerConfigurer
=
new
MapperScannerConfigurer
();
//
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
mapperScannerConfigurer
.
setBasePackage
(
"com.stylefeng.guns.modular.*.dao;com.stylefeng.guns.persistence.dao"
);
//
mapperScannerConfigurer.setBasePackage("com.stylefeng.guns.modular.*.dao;com.stylefeng.guns.persistence.dao");
mapperScannerConfigurer
.
setSqlSessionFactoryBeanName
(
"sqlSessionFactory"
);
//
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
return
mapperScannerConfigurer
;
//
return mapperScannerConfigurer;
}
//
}
//
/**
//
/**
* spring和MyBatis整合
//
* spring和MyBatis整合
*
//
*
* @author fengshuonan
//
* @author fengshuonan
*/
//
*/
@Bean
//
@Bean
public
MybatisSqlSessionFactoryBean
sqlSessionFactory
(
DataSource
dataSource
,
GlobalConfiguration
globalConfig
)
{
//
public MybatisSqlSessionFactoryBean sqlSessionFactory(DataSource dataSource, GlobalConfiguration globalConfig) {
MybatisSqlSessionFactoryBean
sqlSessionFactory
=
new
MybatisSqlSessionFactoryBean
();
//
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory
.
setDataSource
(
dataSource
);
//
sqlSessionFactory.setDataSource(dataSource);
sqlSessionFactory
.
setConfigLocation
(
new
ClassPathResource
(
"mybatis-config.xml"
));
//
sqlSessionFactory.setConfigLocation(new ClassPathResource("mybatis-config.xml"));
Resource
[]
classPathResources
=
ResKit
.
getClassPathResources
(
"classpath*:com/stylefeng/guns/**/mapping/*.xml"
);
//
Resource[] classPathResources = ResKit.getClassPathResources("classpath*:com/stylefeng/guns/**/mapping/*.xml");
sqlSessionFactory
.
setMapperLocations
(
classPathResources
);
//
sqlSessionFactory.setMapperLocations(classPathResources);
//
//以下为mybatis-plus配置
//
//以下为mybatis-plus配置
PaginationInterceptor
paginationInterceptor
=
new
PaginationInterceptor
();
//
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor
.
setDialectType
(
"mysql"
);
//
paginationInterceptor.setDialectType("mysql");
sqlSessionFactory
.
setPlugins
(
new
Interceptor
[]{
paginationInterceptor
});
//
sqlSessionFactory.setPlugins(new Interceptor[]{paginationInterceptor});
sqlSessionFactory
.
setGlobalConfig
(
globalConfig
);
//
sqlSessionFactory.setGlobalConfig(globalConfig);
return
sqlSessionFactory
;
//
return sqlSessionFactory;
}
//
}
//
/**
//
/**
* mybatis-plus的配置
//
* mybatis-plus的配置
*
//
*
* @author fengshuonan
//
* @author fengshuonan
* @date 2017年2月22日 下午3:39:28
//
* @date 2017年2月22日 下午3:39:28
*/
//
*/
@Bean
//
@Bean
public
GlobalConfiguration
globalConfig
()
{
//
public GlobalConfiguration globalConfig() {
GlobalConfiguration
globalConfig
=
new
GlobalConfiguration
();
//
GlobalConfiguration globalConfig = new GlobalConfiguration();
/**
//
/**
* AUTO->`0`("数据库ID自增")
//
* AUTO->`0`("数据库ID自增")
* INPUT->`1`(用户输入ID")
//
* INPUT->`1`(用户输入ID")
* ID_WORKER->`2`("全局唯一ID")
//
* ID_WORKER->`2`("全局唯一ID")
* UUID->`3`("全局唯一ID")
//
* UUID->`3`("全局唯一ID")
*/
//
*/
globalConfig
.
setIdType
(
1
);
//
globalConfig.setIdType(1);
globalConfig
.
setDbType
(
"mysql"
);
//
globalConfig.setDbType("mysql");
//
/**
//
/**
* 全局表为下划线命名设置
//
* 全局表为下划线命名设置
*/
//
*/
globalConfig
.
setDbColumnUnderline
(
false
);
//
globalConfig.setDbColumnUnderline(false);
//
return
globalConfig
;
//
return globalConfig;
}
//
}
//
/**
//
/**
* 事务管理, 声明式事务的开启
//
* 事务管理, 声明式事务的开启
*
//
*
* @author fengshuonan
//
* @author fengshuonan
*/
//
*/
@Bean
//
@Bean
public
DataSourceTransactionManager
transactionManager
(
DataSource
dataSource
)
{
//
public DataSourceTransactionManager transactionManager(DataSource dataSource) {
DataSourceTransactionManager
manager
=
new
DataSourceTransactionManager
();
//
DataSourceTransactionManager manager = new DataSourceTransactionManager();
manager
.
setDataSource
(
dataSource
);
//
manager.setDataSource(dataSource);
return
manager
;
//
return manager;
}
//
}
//
/**
//
/**
* 第三方数据库连接池的配置
//
* 第三方数据库连接池的配置
*
//
*
* @author fengshuonan
//
* @author fengshuonan
* @Date 2017/4/27 17:24
//
* @Date 2017/4/27 17:24
*/
//
*/
@Bean
(
initMethod
=
"init"
)
//
@Bean(initMethod = "init")
public
DruidDataSource
dataSource
()
{
//
public DruidDataSource dataSource() {
DruidDataSource
dataSource
=
new
DruidDataSource
();
//
DruidDataSource dataSource = new DruidDataSource();
dataSource
.
setUrl
(
em
.
getProperty
(
"jdbc.url"
).
trim
());
//
dataSource.setUrl(em.getProperty("jdbc.url").trim());
dataSource
.
setUsername
(
em
.
getProperty
(
"jdbc.username"
).
trim
());
//
dataSource.setUsername(em.getProperty("jdbc.username").trim());
dataSource
.
setPassword
(
em
.
getProperty
(
"jdbc.password"
).
trim
());
//
dataSource.setPassword(em.getProperty("jdbc.password").trim());
//
DataSourceConfigTemplate
.
config
(
dataSource
);
//
DataSourceConfigTemplate.config(dataSource);
return
dataSource
;
//
return dataSource;
}
//
}
//
@Override
//
@Override
public
void
setEnvironment
(
Environment
environment
)
{
//
public void setEnvironment(Environment environment) {
this
.
em
=
environment
;
//
this.em = environment;
}
//
}
//
}
//
}
src/main/java/project/config/web/ControllerAopConfig.java
deleted
100644 → 0
View file @
2a338e4a
package
project
.
config
.
web
;
import
com.stylefeng.guns.core.intercept.SessionInterceptor
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.EnableAspectJAutoProxy
;
/**
* 保留类,如果控制器需要些aop在这里写
*
* @author fengshuonan
* @date 2016年11月12日 下午4:48:10
*/
@Configuration
@EnableAspectJAutoProxy
public
class
ControllerAopConfig
{
/**
* session的拦截器,用在非controller层调用session
*/
@Bean
public
SessionInterceptor
sessionInterceptor
()
{
return
new
SessionInterceptor
();
}
}
src/main/java/project/config/web/SpringMvcConfig.java
View file @
21abc766
package
project
.
config
.
web
;
//
package project.config.web;
//
import
org.beetl.ext.spring.BeetlSpringViewResolver
;
//
import org.beetl.ext.spring.BeetlSpringViewResolver;
import
org.hibernate.validator.HibernateValidator
;
//
import org.hibernate.validator.HibernateValidator;
import
org.springframework.context.annotation.*
;
//
import org.springframework.context.annotation.*;
import
org.springframework.context.support.ReloadableResourceBundleMessageSource
;
//
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import
org.springframework.core.io.ClassPathResource
;
//
import org.springframework.core.io.ClassPathResource;
import
org.springframework.http.MediaType
;
//
import org.springframework.http.MediaType;
import
org.springframework.http.converter.ByteArrayHttpMessageConverter
;
//
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
import
org.springframework.http.converter.StringHttpMessageConverter
;
//
import org.springframework.http.converter.StringHttpMessageConverter;
import
org.springframework.validation.Validator
;
//
import org.springframework.validation.Validator;
import
org.springframework.validation.beanvalidation.LocalValidatorFactoryBean
;
//
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
import
org.springframework.web.multipart.MultipartResolver
;
//
import org.springframework.web.multipart.MultipartResolver;
import
org.springframework.web.multipart.support.StandardServletMultipartResolver
;
//
import org.springframework.web.multipart.support.StandardServletMultipartResolver;
import
org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer
;
//
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import
org.springframework.web.servlet.config.annotation.EnableWebMvc
;
//
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
//
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
;
//
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import
project.config.web.beetl.BeetlConfiguration
;
//
import project.config.web.beetl.BeetlConfiguration;
//
import
java.nio.charset.Charset
;
//
import java.nio.charset.Charset;
import
java.util.ArrayList
;
//
import java.util.ArrayList;
import
java.util.List
;
//
import java.util.List;
//
/**
/
//
**
* spring mvc配置类
//
* spring mvc配置类
*
//
*
* @author fengshuonan
//
* @author fengshuonan
* @date 2016年11月12日 下午5:03:32
//
* @date 2016年11月12日 下午5:03:32
*/
//
*/
@Configuration
//
@Configuration
@EnableWebMvc
//
@EnableWebMvc
@ComponentScan
(
basePackages
=
{
"com.stylefeng.guns.**.controller"
,
"com.stylefeng.guns.common.controller"
})
//
@ComponentScan(basePackages = {"com.stylefeng.guns.**.controller", "com.stylefeng.guns.common.controller"})
@EnableAspectJAutoProxy
//
@EnableAspectJAutoProxy
@Import
({
ControllerAopConfig
.
class
})
//
@Import({ControllerAopConfig.class})
public
class
SpringMvcConfig
extends
WebMvcConfigurerAdapter
{
//
public class SpringMvcConfig extends WebMvcConfigurerAdapter {
//
// beetl的配置
//
// beetl的配置
@Bean
(
initMethod
=
"init"
)
//
@Bean(initMethod = "init")
public
BeetlConfiguration
beetlConfiguration
()
{
//
public BeetlConfiguration beetlConfiguration() {
BeetlConfiguration
beetlConfiguration
=
new
BeetlConfiguration
();
//
BeetlConfiguration beetlConfiguration = new BeetlConfiguration();
beetlConfiguration
.
setConfigFileResource
(
new
ClassPathResource
(
"beetl.properties"
));
//
beetlConfiguration.setConfigFileResource(new ClassPathResource("beetl.properties"));
return
beetlConfiguration
;
//
return beetlConfiguration;
}
//
}
//
// beetl的视图解析器
//
// beetl的视图解析器
@Bean
//
@Bean
public
BeetlSpringViewResolver
beetlViewResolver
()
{
//
public BeetlSpringViewResolver beetlViewResolver() {
BeetlSpringViewResolver
beetlSpringViewResolver
=
new
BeetlSpringViewResolver
();
//
BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
beetlSpringViewResolver
.
setConfig
(
beetlConfiguration
());
//
beetlSpringViewResolver.setConfig(beetlConfiguration());
beetlSpringViewResolver
.
setContentType
(
"text/html;charset=UTF-8"
);
//
beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");
beetlSpringViewResolver
.
setOrder
(
0
);
//
beetlSpringViewResolver.setOrder(0);
return
beetlSpringViewResolver
;
//
return beetlSpringViewResolver;
}
//
}
//
// 配置静态资源的处理,对静态资源的请求转发到servlet容器中默认的servlet上(对静态资源的请求不做处理)
//
// 配置静态资源的处理,对静态资源的请求转发到servlet容器中默认的servlet上(对静态资源的请求不做处理)
@Override
//
@Override
public
void
configureDefaultServletHandling
(
DefaultServletHandlerConfigurer
configurer
)
{
//
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer
.
enable
();
//
configurer.enable();
}
//
}
//
// 文件上传用的resolver
//
// 文件上传用的resolver
@Bean
//
@Bean
public
MultipartResolver
multipartResolver
()
{
//
public MultipartResolver multipartResolver() {
return
new
StandardServletMultipartResolver
();
//
return new StandardServletMultipartResolver();
}
//
}
//
// 校验器的配置
//
// 校验器的配置
@Bean
//
@Bean
public
LocalValidatorFactoryBean
validator
(
ReloadableResourceBundleMessageSource
messageSource
)
{
//
public LocalValidatorFactoryBean validator(ReloadableResourceBundleMessageSource messageSource) {
LocalValidatorFactoryBean
localValidatorFactoryBean
=
new
LocalValidatorFactoryBean
();
//
LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
localValidatorFactoryBean
.
setProviderClass
(
HibernateValidator
.
class
);
//
localValidatorFactoryBean.setProviderClass(HibernateValidator.class);
localValidatorFactoryBean
.
setValidationMessageSource
(
messageSource
);
//
localValidatorFactoryBean.setValidationMessageSource(messageSource);
return
localValidatorFactoryBean
;
//
return localValidatorFactoryBean;
}
//
}
//
// 国际化消息资源文件配置(本系统中主要用于显示/错误消息定制)
//
// 国际化消息资源文件配置(本系统中主要用于显示/错误消息定制)
@Bean
//
@Bean
public
ReloadableResourceBundleMessageSource
messageSource
()
{
//
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource
messageSource
=
new
ReloadableResourceBundleMessageSource
();
//
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource
.
setBasenames
(
"classpath:org/hibernate/validator/ValidationMessages"
);
//
messageSource.setBasenames("classpath:org/hibernate/validator/ValidationMessages");
messageSource
.
setUseCodeAsDefaultMessage
(
false
);
//
messageSource.setUseCodeAsDefaultMessage(false);
messageSource
.
setDefaultEncoding
(
"UTF-8"
);
//
messageSource.setDefaultEncoding("UTF-8");
messageSource
.
setCacheSeconds
(
60
);
//
messageSource.setCacheSeconds(60);
return
messageSource
;
//
return messageSource;
}
//
}
//
// 配置全局的验证器实例
//
// 配置全局的验证器实例
@Override
//
@Override
public
Validator
getValidator
()
{
//
public Validator getValidator() {
return
this
.
validator
(
messageSource
());
//
return this.validator(messageSource());
}
//
}
//
// 配置spring mvc的拦截器
//
// 配置spring mvc的拦截器
@Override
//
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
//
public void addInterceptors(InterceptorRegistry registry) {
//
}
//
}
//
//
//
@Bean
//
@Bean
public
ByteArrayHttpMessageConverter
byteMsgConverter
()
{
//
public ByteArrayHttpMessageConverter byteMsgConverter() {
return
new
ByteArrayHttpMessageConverter
();
//
return new ByteArrayHttpMessageConverter();
}
//
}
//
@Bean
//
@Bean
public
StringHttpMessageConverter
stringHttpMessageConverter
()
{
//
public StringHttpMessageConverter stringHttpMessageConverter() {
StringHttpMessageConverter
stringHttpMessageConverter
=
new
StringHttpMessageConverter
(
//
StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(
Charset
.
forName
(
"UTF-8"
));
//
Charset.forName("UTF-8"));
List
<
MediaType
>
list
=
new
ArrayList
<
MediaType
>();
//
List<MediaType> list = new ArrayList<MediaType>();
list
.
add
(
MediaType
.
TEXT_PLAIN
);
//
list.add(MediaType.TEXT_PLAIN);
stringHttpMessageConverter
.
setSupportedMediaTypes
(
list
);
//
stringHttpMessageConverter.setSupportedMediaTypes(list);
return
stringHttpMessageConverter
;
//
return stringHttpMessageConverter;
}
//
}
//
//
//
}
//
}
src/main/java/project/config/web/WebAppInitializer.java
View file @
21abc766
//package project.config.web;
//package project.config.web;
//
//
//import com.alibaba.druid.support.http.StatViewServlet;
//import com.alibaba.druid.support.http.StatViewServlet;
//import com.stylefeng.guns.config.web.SpringMvcConfig;
//import com.stylefeng.guns.core.listener.ConfigListener;
//import com.stylefeng.guns.core.listener.ConfigListener;
//import com.stylefeng.guns.core.util.xss.XssFilter;
//import com.stylefeng.guns.core.util.xss.XssFilter;
//import project.config.root.RootSpringConfig;
//import org.springframework.web.context.request.RequestContextListener;
//import org.springframework.web.context.request.RequestContextListener;
//import org.springframework.web.filter.CharacterEncodingFilter;
//import org.springframework.web.filter.CharacterEncodingFilter;
//import org.springframework.web.filter.DelegatingFilterProxy;
//import org.springframework.web.filter.DelegatingFilterProxy;
//import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
//import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
//import project.config.root.RootSpringConfig;
//
//
//import javax.servlet.*;
//import javax.servlet.*;
//import javax.servlet.ServletRegistration.Dynamic;
//import javax.servlet.ServletRegistration.Dynamic;
...
...
src/main/resources/application.yml
View file @
21abc766
#app
#app
server
:
server
:
port
:
80
80
port
:
80
#spring
#spring
spring
:
spring
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment