Commit 21abc766 by fsn

搞定druid监控

parent 2a338e4a
......@@ -6,7 +6,7 @@
<groupId>com.stylefeng</groupId>
<artifactId>guns</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<packaging>war</packaging>
<name>guns</name>
<description>guns 的spring boot版本</description>
......@@ -99,7 +99,7 @@
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.21</version>
<version>1.0.31</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
......
......@@ -10,7 +10,6 @@ public class GunsApplication {
protected final static Logger logger = LoggerFactory.getLogger(GunsApplication.class);
public static void main(String[] args) {
SpringApplication.run(GunsApplication.class, args);
logger.info("GunsApplication is sussess!");
......
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);
}
}
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();
}
}
package com.stylefeng.guns.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.baomidou.mybatisplus.entity.GlobalConfiguration;
import com.baomidou.mybatisplus.enums.DBType;
import com.baomidou.mybatisplus.enums.IdType;
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.mapper.MapperScannerConfigurer;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
import project.config.datasource.DataSourceConfigTemplate;
/**
* MybatisPlus配置
......@@ -28,6 +17,7 @@ import javax.sql.DataSource;
*/
@Configuration
@MapperScan(basePackages = {"com.stylefeng.guns.modular.*.dao","com.stylefeng.guns.persistence.dao"})
@ConfigurationProperties(prefix = "jdbc")
public class MybatisPlusConfig {
private String url;
......@@ -38,7 +28,7 @@ public class MybatisPlusConfig {
* mybatis-plus分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor(DataSource dataSource) {
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor.setDialectType(DBType.MYSQL.getDb());
//paginationInterceptor.setOptimizeType(Optimize.JSQLPARSER.getOptimize());
......@@ -46,48 +36,26 @@ public class MybatisPlusConfig {
}
/**
* 事务管理, 声明式事务的开启
* druid数据库连接池
*/
@Bean
public DataSourceTransactionManager transactionManager(DataSource dataSource) {
DataSourceTransactionManager manager = new DataSourceTransactionManager();
manager.setDataSource(dataSource);
return manager;
}
/**
* 第三方数据库连接池的配置
*/
//@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;
@Bean(initMethod = "init")
public DruidDataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(this.url.trim());
dataSource.setUsername(this.username.trim());
dataSource.setPassword(this.password);
DataSourceConfigTemplate.config(dataSource);
return dataSource;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
......
......@@ -2,13 +2,13 @@ package com.stylefeng.guns.config;
import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import com.stylefeng.guns.core.intercept.SessionInterceptor;
import net.sf.ehcache.CacheManager;
import org.springframework.cache.ehcache.EhCacheCacheManager;
import org.springframework.cache.ehcache.EhCacheManagerFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import project.config.web.beetl.BeetlConfiguration;
import java.util.Properties;
......@@ -58,12 +58,10 @@ public class OtherConfigs {
}
/**
* beetl的配置
* session的拦截器,用在非controller层调用session
*/
@Bean(initMethod = "init")
public BeetlConfiguration beetlConfiguration() {
BeetlConfiguration beetlConfiguration = new BeetlConfiguration();
beetlConfiguration.setConfigFileResource(new ClassPathResource("beetl.properties"));
return beetlConfiguration;
@Bean
public SessionInterceptor sessionInterceptor() {
return new SessionInterceptor();
}
}
package project.config.web.monitor;
package com.stylefeng.guns.config.web;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.spring.stat.BeanTypeAutoProxyCreator;
......
package com.stylefeng.guns.config;
package com.stylefeng.guns.config.web;
import com.stylefeng.guns.core.shiro.ShiroDbRealm;
import org.apache.shiro.codec.Base64;
......
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.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.core.io.ClassPathResource;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import project.config.web.beetl.BeetlConfiguration;
/**
* spring mvc配置类
......
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 org.beetl.ext.spring.BeetlGroupUtilConfiguration;
......
......@@ -23,7 +23,7 @@ import java.util.Map;
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() {
return conf;
......
......@@ -45,7 +45,6 @@ public class RoleServiceImpl implements IRoleService {
//删除角色
this.roleMapper.deleteById(roleId);
// 删除该角色所有的权限
this.roleDao.deleteRolesById(roleId);
}
......
package project.config.datasource;
import com.alibaba.druid.pool.DruidDataSource;
import com.baomidou.mybatisplus.entity.GlobalConfiguration;
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.mapper.MapperScannerConfigurer;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
/**
* 数据源配置
*
* @author fengshuonan
* @date 2016年11月12日 下午4:55:09
*/
@Configuration
@EnableTransactionManagement
@PropertySource("classpath:jdbc.properties")
public class DataSourceConfig implements EnvironmentAware {
private Environment em;
/**
* 扫描所有mybatis的接口
*
* @author fengshuonan
*/
@Bean
public MapperScannerConfigurer mappers() {
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
mapperScannerConfigurer.setBasePackage("com.stylefeng.guns.modular.*.dao;com.stylefeng.guns.persistence.dao");
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
return mapperScannerConfigurer;
}
/**
* spring和MyBatis整合
*
* @author fengshuonan
*/
@Bean
public MybatisSqlSessionFactoryBean sqlSessionFactory(DataSource dataSource, GlobalConfiguration globalConfig) {
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource);
sqlSessionFactory.setConfigLocation(new ClassPathResource("mybatis-config.xml"));
Resource[] classPathResources = ResKit.getClassPathResources("classpath*:com/stylefeng/guns/**/mapping/*.xml");
sqlSessionFactory.setMapperLocations(classPathResources);
//以下为mybatis-plus配置
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor.setDialectType("mysql");
sqlSessionFactory.setPlugins(new Interceptor[]{paginationInterceptor});
sqlSessionFactory.setGlobalConfig(globalConfig);
return sqlSessionFactory;
}
/**
* mybatis-plus的配置
*
* @author fengshuonan
* @date 2017年2月22日 下午3:39:28
*/
@Bean
public GlobalConfiguration globalConfig() {
GlobalConfiguration globalConfig = new GlobalConfiguration();
/**
* AUTO->`0`("数据库ID自增")
* INPUT->`1`(用户输入ID")
* ID_WORKER->`2`("全局唯一ID")
* UUID->`3`("全局唯一ID")
*/
globalConfig.setIdType(1);
globalConfig.setDbType("mysql");
/**
* 全局表为下划线命名设置
*/
globalConfig.setDbColumnUnderline(false);
return globalConfig;
}
/**
* 事务管理, 声明式事务的开启
*
* @author fengshuonan
*/
@Bean
public DataSourceTransactionManager transactionManager(DataSource dataSource) {
DataSourceTransactionManager manager = new DataSourceTransactionManager();
manager.setDataSource(dataSource);
return manager;
}
/**
* 第三方数据库连接池的配置
*
* @author fengshuonan
* @Date 2017/4/27 17:24
*/
@Bean(initMethod = "init")
public DruidDataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(em.getProperty("jdbc.url").trim());
dataSource.setUsername(em.getProperty("jdbc.username").trim());
dataSource.setPassword(em.getProperty("jdbc.password").trim());
DataSourceConfigTemplate.config(dataSource);
return dataSource;
}
@Override
public void setEnvironment(Environment environment) {
this.em = environment;
}
}
//package project.config.datasource;
//
//import com.alibaba.druid.pool.DruidDataSource;
//import com.baomidou.mybatisplus.entity.GlobalConfiguration;
//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.mapper.MapperScannerConfigurer;
//import org.springframework.context.EnvironmentAware;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.PropertySource;
//import org.springframework.core.env.Environment;
//import org.springframework.core.io.ClassPathResource;
//import org.springframework.core.io.Resource;
//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
//import org.springframework.transaction.annotation.EnableTransactionManagement;
//
//import javax.sql.DataSource;
//
///**
// * 数据源配置
// *
// * @author fengshuonan
// * @date 2016年11月12日 下午4:55:09
// */
//@Configuration
//@EnableTransactionManagement
//@PropertySource("classpath:jdbc.properties")
//public class DataSourceConfig implements EnvironmentAware {
//
// private Environment em;
//
// /**
// * 扫描所有mybatis的接口
// *
// * @author fengshuonan
// */
// @Bean
// public MapperScannerConfigurer mappers() {
// MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
// mapperScannerConfigurer.setBasePackage("com.stylefeng.guns.modular.*.dao;com.stylefeng.guns.persistence.dao");
// mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
// return mapperScannerConfigurer;
// }
//
// /**
// * spring和MyBatis整合
// *
// * @author fengshuonan
// */
// @Bean
// public MybatisSqlSessionFactoryBean sqlSessionFactory(DataSource dataSource, GlobalConfiguration globalConfig) {
// MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
// sqlSessionFactory.setDataSource(dataSource);
// sqlSessionFactory.setConfigLocation(new ClassPathResource("mybatis-config.xml"));
// Resource[] classPathResources = ResKit.getClassPathResources("classpath*:com/stylefeng/guns/**/mapping/*.xml");
// sqlSessionFactory.setMapperLocations(classPathResources);
//
// //以下为mybatis-plus配置
// PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// paginationInterceptor.setDialectType("mysql");
// sqlSessionFactory.setPlugins(new Interceptor[]{paginationInterceptor});
// sqlSessionFactory.setGlobalConfig(globalConfig);
// return sqlSessionFactory;
// }
//
// /**
// * mybatis-plus的配置
// *
// * @author fengshuonan
// * @date 2017年2月22日 下午3:39:28
// */
// @Bean
// public GlobalConfiguration globalConfig() {
// GlobalConfiguration globalConfig = new GlobalConfiguration();
// /**
// * AUTO->`0`("数据库ID自增")
// * INPUT->`1`(用户输入ID")
// * ID_WORKER->`2`("全局唯一ID")
// * UUID->`3`("全局唯一ID")
// */
// globalConfig.setIdType(1);
// globalConfig.setDbType("mysql");
//
// /**
// * 全局表为下划线命名设置
// */
// globalConfig.setDbColumnUnderline(false);
//
// return globalConfig;
// }
//
// /**
// * 事务管理, 声明式事务的开启
// *
// * @author fengshuonan
// */
// @Bean
// public DataSourceTransactionManager transactionManager(DataSource dataSource) {
// DataSourceTransactionManager manager = new DataSourceTransactionManager();
// manager.setDataSource(dataSource);
// return manager;
// }
//
// /**
// * 第三方数据库连接池的配置
// *
// * @author fengshuonan
// * @Date 2017/4/27 17:24
// */
// @Bean(initMethod = "init")
// public DruidDataSource dataSource() {
// DruidDataSource dataSource = new DruidDataSource();
// dataSource.setUrl(em.getProperty("jdbc.url").trim());
// dataSource.setUsername(em.getProperty("jdbc.username").trim());
// dataSource.setPassword(em.getProperty("jdbc.password").trim());
//
// DataSourceConfigTemplate.config(dataSource);
// return dataSource;
// }
//
// @Override
// public void setEnvironment(Environment environment) {
// this.em = environment;
// }
//
//}
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();
}
}
package project.config.web;
import org.beetl.ext.spring.BeetlSpringViewResolver;
import org.hibernate.validator.HibernateValidator;
import org.springframework.context.annotation.*;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.core.io.ClassPathResource;
import org.springframework.http.MediaType;
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.validation.Validator;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
import org.springframework.web.multipart.MultipartResolver;
import org.springframework.web.multipart.support.StandardServletMultipartResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import project.config.web.beetl.BeetlConfiguration;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
/**
* spring mvc配置类
*
* @author fengshuonan
* @date 2016年11月12日 下午5:03:32
*/
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"com.stylefeng.guns.**.controller", "com.stylefeng.guns.common.controller"})
@EnableAspectJAutoProxy
@Import({ControllerAopConfig.class})
public class SpringMvcConfig extends WebMvcConfigurerAdapter {
// beetl的配置
@Bean(initMethod = "init")
public BeetlConfiguration beetlConfiguration() {
BeetlConfiguration beetlConfiguration = new BeetlConfiguration();
beetlConfiguration.setConfigFileResource(new ClassPathResource("beetl.properties"));
return beetlConfiguration;
}
// beetl的视图解析器
@Bean
public BeetlSpringViewResolver beetlViewResolver() {
BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
beetlSpringViewResolver.setConfig(beetlConfiguration());
beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");
beetlSpringViewResolver.setOrder(0);
return beetlSpringViewResolver;
}
// 配置静态资源的处理,对静态资源的请求转发到servlet容器中默认的servlet上(对静态资源的请求不做处理)
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
// 文件上传用的resolver
@Bean
public MultipartResolver multipartResolver() {
return new StandardServletMultipartResolver();
}
// 校验器的配置
@Bean
public LocalValidatorFactoryBean validator(ReloadableResourceBundleMessageSource messageSource) {
LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
localValidatorFactoryBean.setProviderClass(HibernateValidator.class);
localValidatorFactoryBean.setValidationMessageSource(messageSource);
return localValidatorFactoryBean;
}
// 国际化消息资源文件配置(本系统中主要用于显示/错误消息定制)
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasenames("classpath:org/hibernate/validator/ValidationMessages");
messageSource.setUseCodeAsDefaultMessage(false);
messageSource.setDefaultEncoding("UTF-8");
messageSource.setCacheSeconds(60);
return messageSource;
}
// 配置全局的验证器实例
@Override
public Validator getValidator() {
return this.validator(messageSource());
}
// 配置spring mvc的拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
}
@Bean
public ByteArrayHttpMessageConverter byteMsgConverter() {
return new ByteArrayHttpMessageConverter();
}
@Bean
public StringHttpMessageConverter stringHttpMessageConverter() {
StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(
Charset.forName("UTF-8"));
List<MediaType> list = new ArrayList<MediaType>();
list.add(MediaType.TEXT_PLAIN);
stringHttpMessageConverter.setSupportedMediaTypes(list);
return stringHttpMessageConverter;
}
}
//package project.config.web;
//
//import org.beetl.ext.spring.BeetlSpringViewResolver;
//import org.hibernate.validator.HibernateValidator;
//import org.springframework.context.annotation.*;
//import org.springframework.context.support.ReloadableResourceBundleMessageSource;
//import org.springframework.core.io.ClassPathResource;
//import org.springframework.http.MediaType;
//import org.springframework.http.converter.ByteArrayHttpMessageConverter;
//import org.springframework.http.converter.StringHttpMessageConverter;
//import org.springframework.validation.Validator;
//import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
//import org.springframework.web.multipart.MultipartResolver;
//import org.springframework.web.multipart.support.StandardServletMultipartResolver;
//import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
//import org.springframework.web.servlet.config.annotation.EnableWebMvc;
//import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
//import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
//import project.config.web.beetl.BeetlConfiguration;
//
//import java.nio.charset.Charset;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * spring mvc配置类
// *
// * @author fengshuonan
// * @date 2016年11月12日 下午5:03:32
// */
//@Configuration
//@EnableWebMvc
//@ComponentScan(basePackages = {"com.stylefeng.guns.**.controller", "com.stylefeng.guns.common.controller"})
//@EnableAspectJAutoProxy
//@Import({ControllerAopConfig.class})
//public class SpringMvcConfig extends WebMvcConfigurerAdapter {
//
// // beetl的配置
// @Bean(initMethod = "init")
// public BeetlConfiguration beetlConfiguration() {
// BeetlConfiguration beetlConfiguration = new BeetlConfiguration();
// beetlConfiguration.setConfigFileResource(new ClassPathResource("beetl.properties"));
// return beetlConfiguration;
// }
//
// // beetl的视图解析器
// @Bean
// public BeetlSpringViewResolver beetlViewResolver() {
// BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
// beetlSpringViewResolver.setConfig(beetlConfiguration());
// beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");
// beetlSpringViewResolver.setOrder(0);
// return beetlSpringViewResolver;
// }
//
// // 配置静态资源的处理,对静态资源的请求转发到servlet容器中默认的servlet上(对静态资源的请求不做处理)
// @Override
// public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
// configurer.enable();
// }
//
// // 文件上传用的resolver
// @Bean
// public MultipartResolver multipartResolver() {
// return new StandardServletMultipartResolver();
// }
//
// // 校验器的配置
// @Bean
// public LocalValidatorFactoryBean validator(ReloadableResourceBundleMessageSource messageSource) {
// LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
// localValidatorFactoryBean.setProviderClass(HibernateValidator.class);
// localValidatorFactoryBean.setValidationMessageSource(messageSource);
// return localValidatorFactoryBean;
// }
//
// // 国际化消息资源文件配置(本系统中主要用于显示/错误消息定制)
// @Bean
// public ReloadableResourceBundleMessageSource messageSource() {
// ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
// messageSource.setBasenames("classpath:org/hibernate/validator/ValidationMessages");
// messageSource.setUseCodeAsDefaultMessage(false);
// messageSource.setDefaultEncoding("UTF-8");
// messageSource.setCacheSeconds(60);
// return messageSource;
// }
//
// // 配置全局的验证器实例
// @Override
// public Validator getValidator() {
// return this.validator(messageSource());
// }
//
// // 配置spring mvc的拦截器
// @Override
// public void addInterceptors(InterceptorRegistry registry) {
//
// }
//
//
//
// @Bean
// public ByteArrayHttpMessageConverter byteMsgConverter() {
// return new ByteArrayHttpMessageConverter();
// }
//
// @Bean
// public StringHttpMessageConverter stringHttpMessageConverter() {
// StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(
// Charset.forName("UTF-8"));
// List<MediaType> list = new ArrayList<MediaType>();
// list.add(MediaType.TEXT_PLAIN);
// stringHttpMessageConverter.setSupportedMediaTypes(list);
// return stringHttpMessageConverter;
// }
//
//
//
//}
//package project.config.web;
//
//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.util.xss.XssFilter;
//import project.config.root.RootSpringConfig;
//import org.springframework.web.context.request.RequestContextListener;
//import org.springframework.web.filter.CharacterEncodingFilter;
//import org.springframework.web.filter.DelegatingFilterProxy;
//import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
//import project.config.root.RootSpringConfig;
//
//import javax.servlet.*;
//import javax.servlet.ServletRegistration.Dynamic;
......
#app
server:
port: 8080
port: 80
#spring
spring:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment