初始化
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
package com.adc.da;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.web.servlet.ServletComponentScan;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
|
||||
@SpringBootApplication
|
||||
@ServletComponentScan
|
||||
@ComponentScan("com.adc")
|
||||
public class AdcDaApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
ApplicationContext applicationContext = SpringApplication.run(AdcDaApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.adc.da;
|
||||
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
||||
|
||||
/**
|
||||
* Springboot打war包的启动口
|
||||
*/
|
||||
public class ServletInitializer extends SpringBootServletInitializer {
|
||||
|
||||
@Override
|
||||
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
|
||||
// 注意这里要指向原先用main方法执行的Application启动类
|
||||
return builder.sources(AdcDaApplication.class);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.adc.da.main.advice;
|
||||
|
||||
import com.adc.da.util.exception.AdcDaBaseException;
|
||||
import com.adc.da.util.http.ResponseMessage;
|
||||
import com.adc.da.util.http.ResponseMessageCodeEnum;
|
||||
import com.adc.da.util.http.Result;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
|
||||
@ControllerAdvice
|
||||
@Order(value=3)
|
||||
public class AdcDaBaseExceptionAdvice {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(AdcDaBaseExceptionAdvice.class);
|
||||
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ExceptionHandler(AdcDaBaseException.class)
|
||||
@ResponseBody
|
||||
public ResponseMessage handlerAdcDaBaseException(AdcDaBaseException exception) {
|
||||
logger.warn(exception.getMessage(), exception);
|
||||
return Result.error(exception.getErrorCode(), exception.getMessage());
|
||||
}
|
||||
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ExceptionHandler(Exception.class)
|
||||
@ResponseBody
|
||||
public ResponseMessage handlerAdcDaBaseException(Exception exception) {
|
||||
logger.error(exception.getMessage(), exception);
|
||||
// TODO 在数据库中记录程序异常,这个地方的异常是未处理的异常,需要管理员查看并进行处理以防重复出现
|
||||
return Result.error(ResponseMessageCodeEnum.ERROR.getCode(), "程序异常,请重试。如果重复出现请联系管理员处理!");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.adc.da.main.advice;
|
||||
|
||||
import com.adc.da.util.http.ResponseMessage;
|
||||
import com.adc.da.util.http.Result;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
import org.springframework.web.multipart.MultipartException;
|
||||
|
||||
@ControllerAdvice
|
||||
public class MultipartExceptionAdvice {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(MultipartExceptionAdvice.class);
|
||||
|
||||
@Value("${spring.servlet.multipart.max-file-size}")
|
||||
private String maxFileSize;
|
||||
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
@ExceptionHandler(MultipartException.class)
|
||||
@ResponseBody
|
||||
public ResponseMessage handlerAdcDaBaseException(MultipartException exception) {
|
||||
logger.warn(exception.getMessage(), exception);
|
||||
return Result.error("文件大小超过限制(" + maxFileSize.toUpperCase() + ")");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package com.adc.da.main.advice;
|
||||
|
||||
import com.adc.da.util.http.ResponseMessage;
|
||||
import com.adc.da.util.http.ResponseMessageCodeEnum;
|
||||
import com.adc.da.util.http.Result;
|
||||
import com.adc.da.util.http.ValidError;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.FieldError;
|
||||
import org.springframework.web.bind.MethodArgumentNotValidException;
|
||||
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
|
||||
import javax.validation.ConstraintViolation;
|
||||
import javax.validation.ConstraintViolationException;
|
||||
import javax.validation.ValidationException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 参考:http://javaninja.net/2013/12/getting-spring-mvc-validation-messages-from-a-json-service/
|
||||
*/
|
||||
@ControllerAdvice
|
||||
public class NotValidExceptionAdvice {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(NotValidExceptionAdvice.class);
|
||||
|
||||
@ExceptionHandler(MethodArgumentNotValidException.class)
|
||||
@ResponseStatus(HttpStatus.BAD_REQUEST)
|
||||
@ResponseBody
|
||||
public ResponseMessage<List<ValidError>> handleMethodArgumentNotValidException(
|
||||
MethodArgumentNotValidException exception) {
|
||||
// logger.error(exception.getMessage(), exception);
|
||||
|
||||
List<ValidError> validErrorList = new ArrayList<>();
|
||||
BindingResult result = exception.getBindingResult();
|
||||
for (FieldError fieldError : result.getFieldErrors()) {
|
||||
validErrorList.add(new ValidError(fieldError.getField(), fieldError.getDefaultMessage()));
|
||||
logger.warn("valid error: obj[{}], filed[{}], message[{}]",
|
||||
fieldError.getObjectName(),
|
||||
fieldError.getField(),
|
||||
fieldError.getDefaultMessage());
|
||||
}
|
||||
|
||||
return Result.error(ResponseMessageCodeEnum.VALID_ERROR.getCode(), "", validErrorList);
|
||||
}
|
||||
|
||||
@ExceptionHandler(ConstraintViolationException.class)
|
||||
@ResponseStatus(HttpStatus.BAD_REQUEST)
|
||||
@ResponseBody
|
||||
public ResponseMessage<List<ValidError>> handleConstraintViolationException(
|
||||
ConstraintViolationException exception) {
|
||||
// logger.error(exception.getMessage(), exception);
|
||||
|
||||
List<ValidError> validErrorList = new ArrayList<>();
|
||||
Set<ConstraintViolation<?>> violationSet = exception.getConstraintViolations();
|
||||
for (ConstraintViolation violation : violationSet) {
|
||||
validErrorList.add(new ValidError(violation.getPropertyPath().toString(), violation.getMessage()));
|
||||
logger.warn("param valid error: obj[{}], filed[{}], message[{}]",
|
||||
violation.getRootBeanClass(),
|
||||
violation.getPropertyPath(),
|
||||
violation.getMessage());
|
||||
}
|
||||
|
||||
return Result.error(ResponseMessageCodeEnum.VALID_ERROR.getCode(), "", validErrorList);
|
||||
}
|
||||
|
||||
@ExceptionHandler(value = ValidationException.class)
|
||||
public ResponseMessage validationExceptionHandling(ValidationException e) {
|
||||
ResponseMessage result = Result.error(e.getMessage());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.adc.da.main.advice;
|
||||
|
||||
import org.apache.shiro.authc.AuthenticationException;
|
||||
import org.apache.shiro.authc.IncorrectCredentialsException;
|
||||
import org.apache.shiro.authc.UnknownAccountException;
|
||||
import org.apache.shiro.authz.UnauthenticatedException;
|
||||
import org.apache.shiro.authz.UnauthorizedException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
|
||||
import com.adc.da.util.http.ResponseMessage;
|
||||
import com.adc.da.util.http.ResponseMessageCodeEnum;
|
||||
import com.adc.da.util.http.Result;
|
||||
|
||||
@ControllerAdvice
|
||||
@Order(value=0)
|
||||
public class ShiroExceptionAdvice {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(ShiroExceptionAdvice.class);
|
||||
|
||||
@ResponseStatus(HttpStatus.UNAUTHORIZED)
|
||||
@ExceptionHandler({AuthenticationException.class, UnknownAccountException.class,
|
||||
UnauthenticatedException.class, IncorrectCredentialsException.class})
|
||||
@ResponseBody
|
||||
public ResponseMessage unauthorized(Exception exception) {
|
||||
logger.warn(exception.getMessage(), exception);
|
||||
logger.info("catch UnknownAccountException");
|
||||
return Result.error(ResponseMessageCodeEnum.ERROR.getCode(), exception.getMessage());
|
||||
}
|
||||
|
||||
@ResponseStatus(HttpStatus.UNAUTHORIZED)
|
||||
@ExceptionHandler(UnauthorizedException.class)
|
||||
@ResponseBody
|
||||
public ResponseMessage unauthorized1(UnauthorizedException exception) {
|
||||
logger.warn(exception.getMessage(), exception);
|
||||
return Result.error(ResponseMessageCodeEnum.ERROR.getCode(), exception.getMessage());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.adc.da.main.advice;
|
||||
|
||||
import com.adc.da.util.http.ResponseMessage;
|
||||
import com.adc.da.util.http.Result;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.MethodArgumentNotValidException;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||
|
||||
/**
|
||||
* @Author doudxw
|
||||
* @Date 2021/4/27 14:13
|
||||
*/
|
||||
@RestControllerAdvice
|
||||
@Order(1)
|
||||
public class ValidExcetipnAdvice {
|
||||
|
||||
@ExceptionHandler(MethodArgumentNotValidException.class)
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
public ResponseMessage valisException(MethodArgumentNotValidException ex){
|
||||
return Result.error(ex.getBindingResult().getFieldError().getDefaultMessage());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.adc.da.main.aspect;
|
||||
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
import org.aspectj.lang.annotation.Around;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Pointcut;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.adc.da.util.utils.GsonUtil;
|
||||
|
||||
/**
|
||||
* 用于记录调用controller层返回日志
|
||||
*/
|
||||
@Aspect
|
||||
@Component
|
||||
public class ResponseLogAspect {
|
||||
private static Logger logger = LoggerFactory.getLogger(ResponseLogAspect.class);
|
||||
|
||||
/**
|
||||
* 匹配controller层的方法
|
||||
*/
|
||||
@Pointcut(value = "(execution(* com.adc.da.*.rest.*.*(..)))")
|
||||
private void controllerPointcut() {
|
||||
// 切面方法
|
||||
}
|
||||
|
||||
@Around(value = "controllerPointcut()")
|
||||
public Object process(ProceedingJoinPoint joinPoint) throws Throwable {
|
||||
Object result = joinPoint.proceed();
|
||||
logger.info("==================== 调用Controller层返回json值 ====================");
|
||||
logger.info(GsonUtil.toJson(result));
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
//package com.adc.da.main.config.DataSource;
|
||||
//
|
||||
//import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
||||
//import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
|
||||
//import com.baomidou.mybatisplus.core.config.GlobalConfig;
|
||||
//import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
||||
//import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
|
||||
//import org.apache.ibatis.plugin.Interceptor;
|
||||
//import org.apache.ibatis.session.SqlSessionFactory;
|
||||
//import org.apache.ibatis.type.JdbcType;
|
||||
//import org.mybatis.spring.SqlSessionTemplate;
|
||||
//import org.mybatis.spring.annotation.MapperScan;
|
||||
//import org.springframework.beans.factory.annotation.Qualifier;
|
||||
//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
//import org.springframework.context.annotation.Bean;
|
||||
//import org.springframework.context.annotation.Configuration;
|
||||
//import org.springframework.context.annotation.Primary;
|
||||
//import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
||||
//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||
//
|
||||
//import javax.sql.DataSource;
|
||||
//
|
||||
///**
|
||||
// * @Author doudxw
|
||||
// * @Date 2022/1/5 09:19
|
||||
// * for kylin
|
||||
// * 连接长安麒麟的数据源
|
||||
// */
|
||||
//@Configuration
|
||||
//@ConditionalOnProperty(prefix = "datatype",name ="change",havingValue ="kylin" )
|
||||
//@MapperScan(basePackages = "com.adc.da.**.dao.kylin", sqlSessionTemplateRef = "ds1SqlSessionTemplate")
|
||||
//public class DataSource1 {
|
||||
//
|
||||
// //ds1数据源
|
||||
// @Bean("ds1SqlSessionFactory")
|
||||
// public SqlSessionFactory ds1SqlSessionFactory(@Qualifier("ds1DataSource") DataSource dataSource) throws Exception {
|
||||
// MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
|
||||
// sqlSessionFactory.setDataSource(dataSource);
|
||||
// MybatisConfiguration configuration = new MybatisConfiguration();
|
||||
// configuration.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
|
||||
// configuration.setJdbcTypeForNull(JdbcType.NULL);
|
||||
// sqlSessionFactory.setConfiguration(configuration);
|
||||
// sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().
|
||||
// getResources("classpath*:mybatis/mapper/**/kylin/**/*.xml"));
|
||||
// sqlSessionFactory.setPlugins(new Interceptor[]{
|
||||
// new PaginationInterceptor()
|
||||
//// .setFormat(true),
|
||||
// });
|
||||
// sqlSessionFactory.setGlobalConfig(new GlobalConfig().setBanner(false));
|
||||
// return sqlSessionFactory.getObject();
|
||||
// }
|
||||
//
|
||||
// @Bean(name = "ds1TransactionManager")
|
||||
// public DataSourceTransactionManager ds1TransactionManager(@Qualifier("ds1DataSource") DataSource dataSource) {
|
||||
// return new DataSourceTransactionManager(dataSource);
|
||||
// }
|
||||
//
|
||||
// @Bean(name = "ds1SqlSessionTemplate")
|
||||
// public SqlSessionTemplate ds1SqlSessionTemplate(@Qualifier("ds1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
|
||||
// return new SqlSessionTemplate(sqlSessionFactory);
|
||||
// }
|
||||
//
|
||||
//}
|
||||
@@ -0,0 +1,61 @@
|
||||
//package com.adc.da.main.config.DataSource;
|
||||
//
|
||||
//import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
||||
//import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
|
||||
//import com.baomidou.mybatisplus.core.config.GlobalConfig;
|
||||
//import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
||||
//import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
|
||||
//import org.apache.ibatis.plugin.Interceptor;
|
||||
//import org.apache.ibatis.session.SqlSessionFactory;
|
||||
//import org.apache.ibatis.type.JdbcType;
|
||||
//import org.mybatis.spring.SqlSessionTemplate;
|
||||
//import org.mybatis.spring.annotation.MapperScan;
|
||||
//import org.springframework.beans.factory.annotation.Qualifier;
|
||||
//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
//import org.springframework.context.annotation.Bean;
|
||||
//import org.springframework.context.annotation.Configuration;
|
||||
//import org.springframework.context.annotation.Primary;
|
||||
//import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
||||
//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||
//
|
||||
//import javax.sql.DataSource;
|
||||
//
|
||||
///**
|
||||
// * @Author doudxw
|
||||
// * @Date 2022/1/5 09:19
|
||||
// * for mysql
|
||||
// */
|
||||
//@Configuration
|
||||
//@ConditionalOnProperty(prefix = "datatype",name ="change",havingValue ="kylin" )
|
||||
//@MapperScan(basePackages ={"com.adc.da.**.dao.mysql","com.adc.da.file.dao"}, sqlSessionTemplateRef = "ds2SqlSessionTemplate")
|
||||
//public class DataSource2 {
|
||||
// //ds2数据源
|
||||
// @Bean("ds2SqlSessionFactory")
|
||||
// public SqlSessionFactory ds2SqlSessionFactory(@Qualifier("ds2DataSource") DataSource dataSource) throws Exception {
|
||||
// MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
|
||||
// sqlSessionFactory.setDataSource(dataSource);
|
||||
// MybatisConfiguration configuration = new MybatisConfiguration();
|
||||
// configuration.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
|
||||
// configuration.setJdbcTypeForNull(JdbcType.NULL);
|
||||
// sqlSessionFactory.setConfiguration(configuration);
|
||||
// sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().
|
||||
// getResources("classpath*:mybatis/mapper/**/mysql/**/*.xml"));
|
||||
// sqlSessionFactory.setPlugins(new Interceptor[]{
|
||||
// new PaginationInterceptor()
|
||||
//// .setFormat(true),
|
||||
// });
|
||||
// sqlSessionFactory.setGlobalConfig(new GlobalConfig().setBanner(false));
|
||||
// return sqlSessionFactory.getObject();
|
||||
// }
|
||||
//
|
||||
// @Primary
|
||||
// @Bean(name = "ds2TransactionManager")
|
||||
// public DataSourceTransactionManager ds2TransactionManager(@Qualifier("ds2DataSource") DataSource dataSource) {
|
||||
// return new DataSourceTransactionManager(dataSource);
|
||||
// }
|
||||
//
|
||||
// @Bean(name = "ds2SqlSessionTemplate")
|
||||
// public SqlSessionTemplate ds2SqlSessionTemplate(@Qualifier("ds2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
|
||||
// return new SqlSessionTemplate(sqlSessionFactory);
|
||||
// }
|
||||
//}
|
||||
@@ -0,0 +1,79 @@
|
||||
package com.adc.da.main.config.DataSource;
|
||||
|
||||
/**
|
||||
* @Author doudxw
|
||||
* @Date 2022/1/5 09:26
|
||||
*/
|
||||
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
import com.zaxxer.hikari.HikariDataSource;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import java.sql.DataTruncation;
|
||||
|
||||
/**
|
||||
* 多数据源配置
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnProperty(prefix = "datatype",name ="change",havingValue ="kylin" )
|
||||
public class DataSourceConfig {
|
||||
|
||||
//主数据源配置 ds1数据源
|
||||
// @Primary
|
||||
// @Bean(name = "ds1DataSourceProperties")
|
||||
// @ConfigurationProperties(prefix = "spring.datasource.kylin")
|
||||
// public DataSourceProperties ds1DataSourceProperties() {
|
||||
// return new DataSourceProperties();
|
||||
// }
|
||||
|
||||
//主数据源 ds1数据源
|
||||
// @Primary
|
||||
// @Bean(name = "ds1DataSource")
|
||||
// public DataSource ds1DataSource(@Qualifier("ds1DataSourceProperties") DataSourceProperties dataSourceProperties) {
|
||||
// DataSource dataSource = dataSourceProperties.initializeDataSourceBuilder().build();
|
||||
//// HikariDataSource hikariDataSource = (HikariDataSource) dataSource;
|
||||
//// hikariDataSource.setMinimumIdle(200);
|
||||
//// hikariDataSource.setMaximumPoolSize(500);
|
||||
// DataSource build = dataSourceProperties.initializeDataSourceBuilder().build();
|
||||
// DruidDataSource druidDataSource = new DruidDataSource(dataSourceProperties);
|
||||
// druidDataSource.setInitialSize(500);
|
||||
// druidDataSource.setMinIdle(500);
|
||||
// druidDataSource.setMaxActive(500);
|
||||
// return druidDataSource;
|
||||
// }
|
||||
|
||||
// @Primary
|
||||
// @Bean(name = "ds1DataSource")
|
||||
// public DataSource druidDataSource(@Qualifier("ds1DataSourceProperties") DataSourceProperties dataSourceProperties){
|
||||
// DruidDataSource druidDataSource = new DruidDataSource();
|
||||
// druidDataSource.setDriverClassName(dataSourceProperties.getDriverClassName());
|
||||
// druidDataSource.setUrl(dataSourceProperties.getUrl());
|
||||
// druidDataSource.setUsername(dataSourceProperties.getUsername());
|
||||
// druidDataSource.setPassword(dataSourceProperties.getPassword());
|
||||
// druidDataSource.setInitialSize(500);
|
||||
// druidDataSource.setMinIdle(500);
|
||||
// druidDataSource.setMaxActive(500);
|
||||
// return druidDataSource;
|
||||
// }
|
||||
//
|
||||
// //第二个ds2数据源配置
|
||||
// @Bean(name = "ds2DataSourceProperties")
|
||||
// @ConfigurationProperties(prefix = "spring.datasource.mysql")
|
||||
// public DataSourceProperties ds2DataSourceProperties() {
|
||||
// return new DataSourceProperties();
|
||||
// }
|
||||
//
|
||||
// //第二个ds2数据源
|
||||
// @Bean("ds2DataSource")
|
||||
// public DataSource ds2DataSource(@Qualifier("ds2DataSourceProperties") DataSourceProperties dataSourceProperties) {
|
||||
// return dataSourceProperties.initializeDataSourceBuilder().build();
|
||||
// }
|
||||
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
//package com.adc.da.main.config.DataSource;
|
||||
//
|
||||
//import com.alibaba.druid.filter.Filter;
|
||||
//import com.alibaba.druid.filter.logging.Slf4jLogFilter;
|
||||
//import com.alibaba.druid.filter.stat.StatFilter;
|
||||
//import com.alibaba.druid.pool.DruidDataSource;
|
||||
//import com.alibaba.druid.support.http.StatViewServlet;
|
||||
//import com.alibaba.druid.support.http.WebStatFilter;
|
||||
//import com.alibaba.druid.support.spring.stat.DruidStatInterceptor;
|
||||
//import com.alibaba.druid.wall.WallConfig;
|
||||
//import com.alibaba.druid.wall.WallFilter;
|
||||
//import org.bouncycastle.pqc.math.linearalgebra.PolynomialRingGF2;
|
||||
//import org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator;
|
||||
//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
//import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
//import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||
//import org.springframework.boot.web.servlet.ServletRegistrationBean;
|
||||
//import org.springframework.context.EnvironmentAware;
|
||||
//import org.springframework.context.annotation.Bean;
|
||||
//import org.springframework.context.annotation.Configuration;
|
||||
//import org.springframework.core.env.Environment;
|
||||
//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||
//
|
||||
//import javax.sql.DataSource;
|
||||
//import java.util.ArrayList;
|
||||
//import java.util.HashMap;
|
||||
//import java.util.List;
|
||||
//import java.util.Map;
|
||||
//
|
||||
///**
|
||||
// * @Author sima
|
||||
// * @Date 2022/6/9 11:45
|
||||
// */
|
||||
////@Configuration
|
||||
////@ConditionalOnProperty(prefix = "datatype",name ="change",havingValue ="mysql" )
|
||||
//public class DruidDataSourceConfig {
|
||||
//// @ConfigurationProperties(prefix = "spring.datasource")
|
||||
//// @Bean
|
||||
//// public DataSource druidDataSource(){
|
||||
//// return new DruidDataSource();
|
||||
//// }
|
||||
//}
|
||||
//
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.adc.da.main.config;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.dozer.DozerBeanMapper;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* 各个模块的dozer配置文件
|
||||
*/
|
||||
@Configuration
|
||||
public class DozerConfig {
|
||||
|
||||
@Bean(name = "org.dozer.Mapper")
|
||||
public DozerBeanMapper dozer() {
|
||||
List<String> mappingFiles = Arrays.asList("dozer/dozer-mappings-sys.xml");
|
||||
DozerBeanMapper dozerBean = new DozerBeanMapper();
|
||||
dozerBean.setMappingFiles(mappingFiles);
|
||||
return dozerBean;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.adc.da.main.config;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
||||
//import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
|
||||
/**
|
||||
* MybatisPlus配置
|
||||
*/
|
||||
@Configuration
|
||||
@MapperScan({"com.adc.da.**.dao","com.adc.**.dao"})
|
||||
@EnableTransactionManagement
|
||||
public class MybatisPlusConfig {
|
||||
|
||||
/**
|
||||
* MybatisPlus分页插件
|
||||
*/
|
||||
@Bean
|
||||
public PaginationInterceptor paginationInterceptor() {
|
||||
return new PaginationInterceptor();
|
||||
}
|
||||
|
||||
/***
|
||||
* MybatisPlus的性能优化
|
||||
*/
|
||||
// @Bean
|
||||
// public PerformanceInterceptor performanceInterceptor() {
|
||||
// PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
|
||||
// /* <!-- SQL 执行性能分析,开发环境使用,线上不推荐。 maxTime 指的是 sql 最大执行时长 --> */
|
||||
// // performanceInterceptor.setMaxTime(1000);
|
||||
// /* <!--SQL是否格式化 默认false--> */
|
||||
// performanceInterceptor.setFormat(true);
|
||||
// return performanceInterceptor;
|
||||
// }
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.adc.da.main.config;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
|
||||
|
||||
/**
|
||||
* @Author doudxw
|
||||
* @Date 2021/11/11 09:38
|
||||
*/
|
||||
@Configuration
|
||||
public class RedisConfig {
|
||||
|
||||
@Bean
|
||||
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
|
||||
RedisTemplate<String, Object> template = new RedisTemplate();
|
||||
template.setConnectionFactory(factory);
|
||||
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
|
||||
template.setDefaultSerializer(jackson2JsonRedisSerializer);
|
||||
return template;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
package com.adc.da.main.config;
|
||||
|
||||
import com.adc.da.util.filter.CorsFilter;
|
||||
import com.adc.da.util.filter.CsrfFilter;
|
||||
import com.adc.da.util.filter.FakeJSessionIdFilter;
|
||||
import com.adc.da.util.filter.HttpCacheFilter;
|
||||
import com.adc.da.util.filter.RequestInfoFilter;
|
||||
import com.adc.da.util.security.filter.TimestampFilter;
|
||||
import com.adc.da.util.xss.XssFilter;
|
||||
import com.adc.da.util.security.filter.NonceFilter;
|
||||
import com.adc.da.util.xssshield.XssShieldFilter;
|
||||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* Web配置,用于注入过滤器,拦截器等
|
||||
*/
|
||||
//@Configuration
|
||||
public class WebConfig {
|
||||
|
||||
|
||||
// @Bean
|
||||
// public FilterRegistrationBean urlFilter(){
|
||||
// FilterRegistrationBean registration = new FilterRegistrationBean();
|
||||
// registration.setFilter(new UrlFilter());
|
||||
// registration.addUrlPatterns("/home/pic/html/*");
|
||||
// registration.setName("urlFilter");
|
||||
// registration.setOrder(1);
|
||||
// return registration;
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* xss过滤器(高标准)
|
||||
*/
|
||||
@Bean
|
||||
public FilterRegistrationBean xssFilter() {
|
||||
FilterRegistrationBean registration = new FilterRegistrationBean();
|
||||
registration.setFilter(new XssFilter());
|
||||
registration.addUrlPatterns("/*");
|
||||
registration.setName("xssFilter");
|
||||
registration.setOrder(10);
|
||||
return registration;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public FilterRegistrationBean csrfFilter() {
|
||||
FilterRegistrationBean registration = new FilterRegistrationBean();
|
||||
registration.setFilter(new CsrfFilter());
|
||||
registration.addUrlPatterns("/*");
|
||||
registration.setName("csrfFilter");
|
||||
registration.setOrder(9);
|
||||
return registration;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public FilterRegistrationBean requestInfoFilter() {
|
||||
FilterRegistrationBean registration = new FilterRegistrationBean();
|
||||
registration.setFilter(new RequestInfoFilter());
|
||||
registration.addUrlPatterns("/*");
|
||||
registration.setName("RequestInfoFilter");
|
||||
registration.setOrder(8);
|
||||
return registration;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public FilterRegistrationBean corsFilter() {
|
||||
FilterRegistrationBean registration = new FilterRegistrationBean();
|
||||
registration.setFilter(new CorsFilter());
|
||||
registration.addUrlPatterns("/*");
|
||||
registration.setName("corsFilter");
|
||||
registration.setOrder(7);
|
||||
return registration;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public FilterRegistrationBean httpCacheFilter() {
|
||||
FilterRegistrationBean registration = new FilterRegistrationBean();
|
||||
registration.setFilter(new HttpCacheFilter());
|
||||
registration.addUrlPatterns("/*");
|
||||
registration.setName("httpCacheFilter");
|
||||
registration.addInitParameter("maxAge", String.valueOf(60 * 60 * 24 * 7));
|
||||
registration.setOrder(6);
|
||||
return registration;
|
||||
}
|
||||
|
||||
/**
|
||||
* 防伪造jsessionid
|
||||
*/
|
||||
@Bean
|
||||
public FilterRegistrationBean fakeJSessionIdFilter() {
|
||||
FilterRegistrationBean registration = new FilterRegistrationBean();
|
||||
registration.setFilter(new FakeJSessionIdFilter());
|
||||
registration.addUrlPatterns("/*");
|
||||
registration.setName("fakeJSessionIdFilter");
|
||||
registration.setOrder(5);
|
||||
return registration;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.adc.da.main.config;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
/**
|
||||
* @Author doudxw
|
||||
* @Date 2021/6/30 14:21
|
||||
*/
|
||||
@Configuration
|
||||
public class WebMvcConfig implements WebMvcConfigurer {
|
||||
|
||||
@Value("${picPath}")
|
||||
private String picPath;
|
||||
|
||||
@Value("${uploadFile}")
|
||||
private String uploadFile;
|
||||
|
||||
@Override
|
||||
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||
// /home/file/**为前端URL访问路径 后面 file:xxxx为本地磁盘映射
|
||||
registry.addResourceHandler(picPath+"**").addResourceLocations("file://"+uploadFile);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.adc.da.main.schedule;
|
||||
|
||||
/**
|
||||
* @Author sima
|
||||
* @Date 2022/7/15 16:32
|
||||
*/
|
||||
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @Auther: sima
|
||||
* @Date: 2022/7/15 16:32
|
||||
* 配置类,解决定时任务无法注入的问题
|
||||
*/
|
||||
@Component
|
||||
public class ApplicationContextUtil implements ApplicationContextAware {
|
||||
|
||||
private static ApplicationContext applicationContext;
|
||||
|
||||
public static ApplicationContext getApplicationContext() {
|
||||
return applicationContext;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
||||
ApplicationContextUtil.applicationContext = applicationContext;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static Object getBean(String beanName) {
|
||||
return applicationContext.getBean(beanName);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
//package com.adc.da.main.schedule;
|
||||
//
|
||||
//import com.adc.da.price.service.impl.CarQueryServiceImpl;
|
||||
//import lombok.extern.slf4j.Slf4j;
|
||||
//import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
//import org.springframework.scheduling.annotation.Scheduled;
|
||||
//import org.springframework.stereotype.Component;
|
||||
//
|
||||
///**
|
||||
// * @Author sima
|
||||
// * @Date 2022/7/15 16:32
|
||||
// */
|
||||
//@Component
|
||||
//@EnableScheduling
|
||||
//@Slf4j
|
||||
//public class ScheduleUtil {
|
||||
//
|
||||
//
|
||||
// @Scheduled(cron = "0 0 0 * * ?")
|
||||
//// @Scheduled(cron = "0 */1 * * * ?")
|
||||
// public void updateCarQuery() {
|
||||
// log.debug("开始更新查询表--------------***************--------------");
|
||||
// CarQueryServiceImpl carQueryService= (CarQueryServiceImpl) ApplicationContextUtil.getBean("carQueryServiceImpl");
|
||||
// carQueryService.insert();
|
||||
//// System.out.println(carQueryService);
|
||||
// log.debug("查询表更新完成--------------***************--------------");
|
||||
//
|
||||
// }
|
||||
//}
|
||||
@@ -0,0 +1,133 @@
|
||||
#Development System
|
||||
#spring.datasource.driverClassName = oracle.jdbc.OracleDriver
|
||||
#spring.datasource.url = jdbc:oracle:thin:@//60.247.58.117:50011/ADC
|
||||
##spring.datasource.username = ADC_PLATFORM
|
||||
##spring.datasource.password = ADC_PLATFORM
|
||||
|
||||
#spring.datasource.url = jdbc:oracle:thin:@//192.168.144.136:19290/ADC
|
||||
#spring.datasource.username = EPR
|
||||
#spring.datasource.password = EPR
|
||||
|
||||
#spring.datasource.url = jdbc:oracle:thin:@//192.168.144.103:19290/ADC
|
||||
#spring.datasource.username = EPR_TEST
|
||||
#spring.datasource.password = EPR_TEST
|
||||
|
||||
#spring.datasource.driverClassName = com.mysql.jdbc.Driver
|
||||
#spring.datasource.url = jdbc:mysql://192.168.144.124:3306/cadata2?characterEncoding=utf-8&&zeroDateTimeBehavior=convertToNull
|
||||
#spring.datasource.username = adc_forecast
|
||||
#spring.datasource.password = adc_forecast
|
||||
|
||||
|
||||
#kylin数据库 ds1
|
||||
#spring.datasource.kylin.name=PROJECT_MI
|
||||
#spring.datasource.kylin.driverClassName=org.apache.kylin.jdbc.Driver
|
||||
#spring.datasource.kylin.url=jdbc:kylin://10.64.23.8:7070/PROJECT_MI
|
||||
#spring.datasource.kylin.username=64459
|
||||
#spring.datasource.kylin.password=ichangan_ps9
|
||||
##10s
|
||||
#spring.datasource.kylin.maxWaitTime=10000
|
||||
#spring.datasource.kylin.poolSize=10
|
||||
#
|
||||
##mysql数据库 ds2
|
||||
#spring.datasource.mysql.driverClassName = com.mysql.jdbc.Driver
|
||||
#spring.datasource.mysql.url = jdbc:mysql://192.168.144.80:3306/cadata?characterEncoding=utf-8&&zeroDateTimeBehavior=convertToNull
|
||||
#spring.datasource.mysql.username = root
|
||||
#spring.datasource.mysql.password = root
|
||||
|
||||
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
|
||||
spring.datasource.url = jdbc:mysql://121.36.69.172:3307/report-library?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
|
||||
spring.datasource.username = root
|
||||
spring.datasource.password = hzwlsoft.com
|
||||
|
||||
#后端端口
|
||||
server.port=7060
|
||||
|
||||
#验证码后台模式,默认为1:1为不开启,2为开启,3为输错 用户名或密码 ${maxLoginErrorCount} 次 才开启
|
||||
verifyCodeMode=3
|
||||
#仅当验证码模式 ${verifyCodeMode} 为 3时生效,设置错误登录出现验证码的阈值,默认为3
|
||||
maxLoginErrorCount=3
|
||||
|
||||
#密码Base64加密开关,true为开启,false为关闭
|
||||
isPassEncrypted=true
|
||||
#{
|
||||
#"password": "YWJjMTIz",
|
||||
#"username": "YWRtaW4x"
|
||||
#}
|
||||
#swagger 显示api,1为只显示${restPath:/api}前缀的api,0为显示所有api,其他为不显示api
|
||||
swaggerLevel=0
|
||||
|
||||
|
||||
#uploadFile=/EPR/file/EPR/test/
|
||||
#
|
||||
#picPath=/EPR/file/home/pic/
|
||||
|
||||
# 本地存储文件的磁盘地址
|
||||
uploadFile=D:\\work\\idea\\changan\\
|
||||
# 本地文件访问的url地址
|
||||
picPath=/api/home/pic/
|
||||
|
||||
|
||||
serverIp=http://127.0.0.1:7060/
|
||||
|
||||
|
||||
#MAIL_SMTP =smtp.163.com
|
||||
#MAIL_SMTP_PORT=465
|
||||
#MAIL_USERNAME=cagds@catarc.ac.cn
|
||||
#MAIL_PASSWORD=Cagds9760
|
||||
|
||||
MAIL_SMTP =smtp.163.com
|
||||
MAIL_SMTP_PORT=465
|
||||
MAIL_USERNAME=simashihao@163.com
|
||||
MAIL_PASSWORD=VQBNNQBLDIALAYCV
|
||||
|
||||
#MAIL_SMTP =cmp.changan.com
|
||||
#MAIL_SMTP_PORT=25
|
||||
MAIL_POP_PORT=110
|
||||
#MAIL_USERNAME=64459@Any3.com
|
||||
#MAIL_PASSWORD=65316975Xiaoq
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
IPANDPORT=http://localhost:7061/
|
||||
|
||||
#redis
|
||||
#Redis服务器地址
|
||||
spring.redis.host=192.168.144.29
|
||||
#spring.redis.host=localhost
|
||||
## Redis服务器连接端口
|
||||
spring.redis.port=6379
|
||||
## Redis服务器连接密码(默认为空)
|
||||
spring.redis.password=123321
|
||||
## 连接超时时间(毫秒)
|
||||
spring.redis.timeout=200000ms
|
||||
## 连接池中的最大空闲连接,默认值是8。
|
||||
spring.redis.jedis.pool.max-idle=50
|
||||
##连接池中的最小空闲连接,默认值是0。
|
||||
spring.redis.jedis.pool.min-idle=10
|
||||
## 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
|
||||
spring.redis.jedis.pool.max-active=2000
|
||||
## 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException
|
||||
spring.redis.jedis.pool.max-wait=2000ms
|
||||
|
||||
spring.redis.database=6
|
||||
|
||||
|
||||
# ======= 阿里OSS配置 =========
|
||||
aliyun.OSS.endpoint=https://oss-cn-hangzhou.aliyuncs.com
|
||||
aliyun.OSS.accessKeyId= LTAI5tBmUfVF6Z8R6sHTdTG7
|
||||
aliyun.OSS.accessKeySecret= mY6UvWv20Tg2R46ORe6uV5gL6TQloC
|
||||
aliyun.OSS.bucketName=qqxexamplebucket
|
||||
aliyun.OSS.fileMaxSize=10 #文件上传最大M数
|
||||
|
||||
logging.level.com.adc: debug
|
||||
|
||||
|
||||
# ======= ddm权限接口 集成 =========
|
||||
ddm-identity=changan_test
|
||||
ddm-company=9
|
||||
ddm-ras-public-key=
|
||||
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
spring.profiles.active=dev
|
||||
|
||||
###############################################
|
||||
#公共配置部分
|
||||
##############################################
|
||||
# ===============================
|
||||
# = DATA SOURCE
|
||||
# ===============================
|
||||
spring.datasource.type = com.alibaba.druid.pool.DruidDataSource
|
||||
# 下面为连接池的补充设置,应用到上面所有数据源中
|
||||
# 初始化大小,最小,最大
|
||||
spring.datasource.initialSize = 500
|
||||
spring.datasource.minIdle = 500
|
||||
spring.datasource.maxActive = 500
|
||||
# 配置获取连接等待超时的时间
|
||||
spring.datasource.maxWait = 60000
|
||||
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
|
||||
spring.datasource.timeBetweenEvictionRunsMillis = 30000
|
||||
# 配置一个连接在池中最小生存的时间,单位是毫秒
|
||||
spring.datasource.minEvictableIdleTimeMillis = 100000
|
||||
spring.datasource.validationQuery= 'SELECT 1 FROM DUAL'
|
||||
spring.datasource.testWhileIdle = true
|
||||
spring.datasource.testOnBorrow = false
|
||||
spring.datasource.testOnReturn = false
|
||||
# 打开PSCache,并且指定每个连接上PSCache的大小
|
||||
spring.datasource.poolPreparedStatements = true
|
||||
spring.datasource.maxPoolPreparedStatementPerConnectionSize = 20
|
||||
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
|
||||
spring.datasource.filters = stat,wall,log4j
|
||||
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
|
||||
#spring.datasource.connectionProperties = 'druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000'
|
||||
# 合并多个DruidDataSource的监控数据
|
||||
#useGlobalDataSourceStat: true
|
||||
spring.datasource.mergeSql=true
|
||||
spring.datasource.slowSqlMillis=1
|
||||
spring.datasource.logSlowSql=true
|
||||
# ===============================
|
||||
#默认关闭SpringBootActuator
|
||||
endpoints.enabled=false
|
||||
# http-only
|
||||
server.servlet.session.cookie.http-only=true
|
||||
|
||||
# mybatis_config
|
||||
mybatis-plus.config-locations=classpath:mybatis/mybatis-config.xml
|
||||
mybatis-plus.mapper-locations=classpath*:mybatis/mapper/**/mysql/**/*.xml
|
||||
|
||||
#显示sql
|
||||
logging.level.com.adc=debug
|
||||
logging.level.org.hibernate=info
|
||||
logging.level.org.springframework=info
|
||||
|
||||
adminPath=/library/a
|
||||
restPath=/library/api
|
||||
portalPath=/library/portalSystem
|
||||
|
||||
#是否使用rsa非对称加密(adc-ad-login:2.3.3-SNAPSHOT支持) 使用时,请设置 isPassEncrypted=false
|
||||
isPassEncrypted=true
|
||||
useRSALogin=true
|
||||
#请您执行main模块下test包com.adc.da.rsa.RSATest 的测试方法 生成公钥及私钥,并由公钥前端加密(前端建议使用 jsencrypt工具包),后端配置useRSALogin=true开启加密,并且将生成的私钥配置到RAS_PRI_KEY
|
||||
RAS_PRI_KEY=MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAq1I/fLYOTKgNCwUavqyfixosEXByKMQ9axZDUefPywi+ftXdPI2tJ6x/7uc+CdST0a3/toqxdSRjrsHMwnnGQQIDAQABAkB5ZPBDiCUdwD5tvpIy5dKvGD59pPXfWR5EESRmlyGwNTlJ/fIV1wL7UsRYoFslAEcHLyKY7kX8wIefqw2k9R8hAiEA6mH2xls2BZ6nftz6aA8V6CSrsZ49qO9l6SPirXrxg0UCIQC7H1WXLHEV65PUaMTNvzuLc43xkac9DZX4FpUXDeuIzQIgXghhjiEH4mdNgas8V0U+H72emIsI597r/wYjqj/55xUCIDATfuQWUP+2xQZ/3ICYL25GxCNarsMq6GsTMj74HpnJAiAb6BqTkVklIMsl2lAZbE49fluSm3YLt4eNnVVdzJkpFg==
|
||||
#{
|
||||
#"password": "SN/qCzazttK/kzezk+bMo/b/aZP0Mqfpl66hj24p2oayZs3/vDmv7MM9+451I5FTaq2jq/EbOxIjiK2zLAiZ5w==",
|
||||
#"username": "SC/dfdsf/kzezk+fd/b/fdf/vDmv7MM9+fd/fds=="
|
||||
#}
|
||||
#useRSALogin=
|
||||
#RAS_PRI_KEY=
|
||||
|
||||
# file模块上传文件的服务器地址
|
||||
file.path=/Users/sxh/uploadFiles
|
||||
|
||||
# ppt图片保存的路径
|
||||
file.pptPath=/pptImg
|
||||
|
||||
# file模块上传文件大小限制
|
||||
spring.servlet.multipart.max-request-size=100MB
|
||||
spring.servlet.multipart.max-file-size=100MB
|
||||
|
||||
# 系统日志类别dev:开发模式不拦截方法记日志, custom:客户自定义需要拦截记日志的方法, sys:系统原设需要拦截记日志的方法
|
||||
sysLogType=dev
|
||||
|
||||
#rabbitMQ
|
||||
spring.rabbitmq.host=192.168.1.219
|
||||
spring.rabbitmq.port=5672
|
||||
spring.rabbitmq.username=guest
|
||||
spring.rabbitmq.password=guest
|
||||
spring.rabbitmq.publisher-confirms=true
|
||||
|
||||
#redis
|
||||
# Redis服务器地址
|
||||
spring.redis.host=221.239.111.146
|
||||
# Redis服务器连接端口
|
||||
spring.redis.port=15777
|
||||
# Redis服务器连接密码(默认为空)
|
||||
spring.redis.password=cvdecs
|
||||
|
||||
#线程池
|
||||
core.pool.size=10
|
||||
max.pool.size=30
|
||||
keep.alive.seconds=60
|
||||
queue.capacity=8
|
||||
|
||||
|
||||
mybatis-plus.configuration.map-underscore-to-camel-case=true
|
||||
|
||||
modelpath=/EPR/file/template/eprmodel.docx
|
||||
|
||||
wordurl=http://localhost:8333/word/make
|
||||
|
||||
#datatype.change=kylin
|
||||
#datatype.change=mysql
|
||||
|
||||
#elastic search
|
||||
#clusterName=elasticsearch
|
||||
#clusterNodes=10.10.0.3:9300
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
${AnsiColor.RED} _ _
|
||||
__ _ __| | ___ __| | __ _
|
||||
/ _` |/ _` |/ __|____ / _` |/ _` |
|
||||
| (_| | (_| | (_|_____| (_| | (_| |
|
||||
\__,_|\__,_|\___| \__,_|\__,_|
|
||||
|
||||
${AnsiColor.YELLOW}------------------------------------------------
|
||||
${AnsiColor.YELLOW} :: ${AnsiColor.YELLOW}@数据资源中心
|
||||
${AnsiColor.YELLOW}------------------------------------------------${AnsiColor.WHITE}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE xml>
|
||||
<ehcache updateCheck="false" name="hibernateCache">
|
||||
|
||||
<diskStore path="java.io.tmpdir/jeesite/ehcache/hibernate" />
|
||||
|
||||
<!-- DefaultCache setting. -->
|
||||
<defaultCache maxEntriesLocalHeap="100" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600"
|
||||
overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Dict" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Area" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Area.childList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Area.officeList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Office" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Office.childList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Office.userList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Menu" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Menu.childList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Menu.roleList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Role" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Role.menuList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Role.userList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.User" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.User.roleList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
|
||||
</ehcache>
|
||||
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE xml>
|
||||
<ehcache updateCheck="false" name="hibernateCache">
|
||||
<!--
|
||||
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
|
||||
properties="peerDiscovery=manual, socketTimeoutMillis=2000, rmiUrls=//localhost:40001/hibernateCache" />
|
||||
<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
|
||||
properties="hostName=localhost, port=40000, socketTimeoutMillis=2000"/>-->
|
||||
|
||||
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
|
||||
properties="peerDiscovery=automatic,multicastGroupAddress=230.0.0.1, multicastGroupPort=4446" />
|
||||
<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" />
|
||||
|
||||
<diskStore path="java.io.tmpdir/jeesite/ehcache/hibernate" />
|
||||
|
||||
<!-- DefaultCache setting. -->
|
||||
<defaultCache maxEntriesLocalHeap="100" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600"
|
||||
overflowToDisk="true" maxEntriesLocalDisk="100000" >
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
|
||||
properties="replicatePuts=false,replicateUpdatesViaCopy=false" />
|
||||
</defaultCache>
|
||||
|
||||
<!-- Special objects setting. -->
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Dict" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Area" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Area.childList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Area.officeList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Office" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Office.childList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Office.userList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Menu" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Menu.childList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Menu.roleList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Role" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Role.menuList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.Role.userList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.User" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
<cache name="com.thinkgem.jeesite.modules.sys.entity.User.roleList" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true" maxEntriesLocalDisk="100000">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" />
|
||||
</cache>
|
||||
|
||||
</ehcache>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE xml>
|
||||
<ehcache updateCheck="false" name="defaultCache">
|
||||
|
||||
<diskStore path="java.io.tmpdir/jeesite/ehcache/default" />
|
||||
|
||||
<!-- DefaultCache setting. -->
|
||||
<defaultCache maxEntriesLocalHeap="100" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600"
|
||||
overflowToDisk="true" maxEntriesLocalDisk="100000" />
|
||||
|
||||
<cache name="sysCache" maxElementsInMemory="100" eternal="true" overflowToDisk="true"/>
|
||||
|
||||
<cache name="errorCache" maxElementsInMemory="100" timeToIdleSeconds="180" timeToLiveSeconds="300" eternal="false" overflowToDisk="true"/>
|
||||
|
||||
<cache name="cmsCache" maxElementsInMemory="100" eternal="true" overflowToDisk="true"/>
|
||||
|
||||
<cache name="shiro-activeSessionCache" maxElementsInMemory="100" overflowToDisk="true"
|
||||
eternal="true" timeToLiveSeconds="0" timeToIdleSeconds="0"
|
||||
diskPersistent="true" diskExpiryThreadIntervalSeconds="600"/>
|
||||
|
||||
<cache name="org.apache.shiro.realm.text.PropertiesRealm-0-accounts"
|
||||
maxElementsInMemory="100" eternal="true" overflowToDisk="true"/>
|
||||
|
||||
<cache name="SimplePageCachingFilter" maxElementsInMemory="100" eternal="false" overflowToDisk="true"
|
||||
timeToIdleSeconds="120" timeToLiveSeconds="120" memoryStoreEvictionPolicy="LFU"/>
|
||||
|
||||
</ehcache>
|
||||
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE xml>
|
||||
<ehcache updateCheck="false" name="defaultCache">
|
||||
<!--
|
||||
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
|
||||
properties="peerDiscovery=manual, socketTimeoutMillis=2000, rmiUrls=//localhost:40001/mainCache" />
|
||||
<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
|
||||
properties="hostName=localhost, port=40000, socketTimeoutMillis=2000"/> -->
|
||||
|
||||
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
|
||||
properties="peerDiscovery=automatic,multicastGroupAddress=230.0.0.1, multicastGroupPort=4446" />
|
||||
<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" />
|
||||
|
||||
<diskStore path="java.io.tmpdir/jeesite/ehcache/default" />
|
||||
|
||||
<!-- DefaultCache setting. -->
|
||||
<defaultCache maxEntriesLocalHeap="100" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600"
|
||||
overflowToDisk="true" maxEntriesLocalDisk="100000" >
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
|
||||
properties="replicatePuts=false,replicateUpdatesViaCopy=false"/>
|
||||
</defaultCache>
|
||||
|
||||
<!-- Special objects setting. -->
|
||||
<cache name="sysCache" maxElementsInMemory="100" eternal="true" overflowToDisk="true">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
|
||||
</cache>
|
||||
|
||||
<cache name="cmsCache" maxElementsInMemory="100" eternal="true" overflowToDisk="true">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
|
||||
</cache>
|
||||
|
||||
<cache name="shiro-activeSessionCache" maxElementsInMemory="100" overflowToDisk="true"
|
||||
eternal="true" timeToLiveSeconds="0" timeToIdleSeconds="0"
|
||||
diskPersistent="true" diskExpiryThreadIntervalSeconds="600">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
|
||||
properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,
|
||||
replicateUpdatesViaCopy=false, replicateRemovals=true "/>
|
||||
</cache>
|
||||
|
||||
<cache name="org.apache.shiro.realm.text.PropertiesRealm-0-accounts"
|
||||
maxElementsInMemory="100" eternal="true" overflowToDisk="true">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
|
||||
properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,
|
||||
replicateUpdatesViaCopy=false, replicateRemovals=true "/>
|
||||
</cache>
|
||||
|
||||
<cache name="SimplePageCachingFilter" maxElementsInMemory="100" eternal="false" overflowToDisk="true"
|
||||
timeToIdleSeconds="120" timeToLiveSeconds="120" memoryStoreEvictionPolicy="LFU">
|
||||
<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
|
||||
properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,
|
||||
replicateUpdatesViaCopy=false, replicateRemovals=true "/>
|
||||
</cache>
|
||||
|
||||
</ehcache>
|
||||
@@ -0,0 +1,44 @@
|
||||
#define code path
|
||||
source_root_package=src/main/java
|
||||
resources_root_package=src/main/resources
|
||||
test_root_package=src/test/java
|
||||
webroot_package=src/app
|
||||
|
||||
#define project
|
||||
core_project=/adc-da-configuration
|
||||
#client_project=/data-cloud-report/ui
|
||||
client_project=..
|
||||
|
||||
rest_project=/adc-da-configuration
|
||||
|
||||
#define base class package
|
||||
base_class_package=com.adc.da.base
|
||||
|
||||
#bussi_package[User defined]
|
||||
biz_package=com.adc.da
|
||||
biz_app_package=admin
|
||||
|
||||
|
||||
|
||||
#ftl resource url
|
||||
template_path=template
|
||||
system_encoding=utf-8
|
||||
|
||||
#Search Param num [User defined]
|
||||
table_id=id
|
||||
search_filed_num=1
|
||||
|
||||
#table_prefix=TD_DC_VISUAL_,TD_DC_,dict_,UM_,TD_
|
||||
table_prefix=TS_,TR_,T,dmk.
|
||||
|
||||
#PageType 1: mapper_xml, 2: dao, 3: service, 4: rest, 5: javascript, 6: html
|
||||
|
||||
page_gen_type=1,2,3,4
|
||||
|
||||
|
||||
|
||||
#Not Used
|
||||
mapper_xml_only=false
|
||||
backend_only=true
|
||||
entity_open_type=dialog
|
||||
entity_save_type=form
|
||||
@@ -0,0 +1,30 @@
|
||||
#mysql
|
||||
#----------------------------- mysql ------------------------------------------
|
||||
#diver_name=com.mysql.jdbc.Driver
|
||||
#url=jdbc:mysql://localhost:3306/adc_platform?characterEncoding=utf-8&&zeroDateTimeBehavior=convertToNull
|
||||
#username=root
|
||||
#password=root
|
||||
#database_name=adc_platform
|
||||
|
||||
|
||||
#oracle
|
||||
#----------------------------- oracle ------------------------------------------
|
||||
#diver_name=oracle.jdbc.driver.OracleDriver
|
||||
#url=jdbc:oracle:thin:@60.247.58.117:50011/ADC
|
||||
#username=ADC_PLATFORM
|
||||
#password=ADC_PLATFORM
|
||||
#database_name=adc_platform
|
||||
|
||||
diver_name = com.mysql.jdbc.Driver
|
||||
url = jdbc:mysql://192.168.144.80:3306/cadata?characterEncoding=utf-8&&zeroDateTimeBehavior=convertToNull
|
||||
username = root
|
||||
password = root
|
||||
database_name=cadata
|
||||
|
||||
#ldap
|
||||
#----------------------------- LDAP ------------------------------------------
|
||||
ldap.connection.url=ldap://localhost:10389
|
||||
ldap.connection.base=dc=wlt,dc=com
|
||||
ldap.connection.username=uid=admin,ou=system
|
||||
ldap.connection.password=12345678
|
||||
ldap.schema.cn=um
|
||||
@@ -0,0 +1,177 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<configuration>
|
||||
|
||||
<!--*****************************property start*****************************-->
|
||||
<!-- 设置变量。定义变量后,可以使“${}”来使用变量。 -->
|
||||
|
||||
<!-- 项目名称 -->
|
||||
<property name="PROJECT_NAME" value="adc-da" />
|
||||
<!-- 定义日志文件的存储地址,勿在 LogBack的配置中使用相对路径 -->
|
||||
<property name="LOG_HOME" value="../logs" />
|
||||
<!-- 定义系统日志文件的存储地址,勿在 LogBack的配置中使用相对路径 -->
|
||||
<property name="LOG_HOME_SYSTEM" value="system" />
|
||||
<!-- 定义Druid日志文件的存储地址,勿在 LogBack的配置中使用相对路径 -->
|
||||
<property name="LOG_HOME_DRUID" value="druid" />
|
||||
<!--*****************************property end*****************************-->
|
||||
|
||||
<!--*****************************appender start*****************************-->
|
||||
<!-- 负责写日志的组件。有两个必要属性name和class。name指定appender名称,class指定appender的全限定名。 -->
|
||||
|
||||
|
||||
<!-- 彩色日志 -->
|
||||
<!-- 彩色日志依赖的渲染类 -->
|
||||
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
|
||||
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
|
||||
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
|
||||
<!-- 彩色日志格式 -->
|
||||
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 控制台输出 -->
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<!-- 对日志进行格式化。 -->
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 系统日志输出:记录所有日志 -->
|
||||
<!-- RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件。 -->
|
||||
<appender name="SYSTEM_ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<!-- 过滤器,打印指定级别的日志 -->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<!-- 过滤的日志级别 -->
|
||||
<level>INFO</level>
|
||||
<!-- 满足指定级别的日志操作 -->
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<!-- 不满足指定级别的日志操作 -->
|
||||
<onMismatch>ACCEPT</onMismatch>
|
||||
</filter>
|
||||
<!-- rollingPolicy:当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名。 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/${LOG_HOME_SYSTEM}/${PROJECT_NAME}.system_all.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<MaxHistory>7</MaxHistory>
|
||||
<!--日志文件最大的大小-->
|
||||
<MaxFileSize>100MB</MaxFileSize>
|
||||
</rollingPolicy>
|
||||
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 系统错误日志输出 -->
|
||||
<appender name="SYSTEM_ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<!-- 过滤器,只打印ERROR级别的日志 -->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>ERROR</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/${LOG_HOME_SYSTEM}/${PROJECT_NAME}.system_error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<MaxHistory>30</MaxHistory>
|
||||
<!--日志文件最大的大小-->
|
||||
<MaxFileSize>100MB</MaxFileSize>
|
||||
</rollingPolicy>
|
||||
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- Druid日志输出,用于记录执行INFO级别的慢SQL -->
|
||||
<appender name="DRUID_SLOWSQL_INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<!-- LevelFilter: 级别过滤器,根据日志级别进行过滤 -->
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>INFO</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/${LOG_HOME_DRUID}/${PROJECT_NAME}.druid_info.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<MaxHistory>15</MaxHistory>
|
||||
<!--日志文件最大的大小-->
|
||||
<MaxFileSize>50MB</MaxFileSize>
|
||||
</rollingPolicy>
|
||||
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- Druid打印的日志文件,用于记录执行WARN级别的SQL -->
|
||||
<appender name="DRUID_SLOWSQL_WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>WARN</level>
|
||||
</filter>
|
||||
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名-->
|
||||
<FileNamePattern>${LOG_HOME}/${LOG_HOME_DRUID}/${PROJECT_NAME}.druid_warn.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数-->
|
||||
<MaxHistory>30</MaxHistory>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>50MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
</rollingPolicy>
|
||||
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
||||
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
<!--*****************************appender end*****************************-->
|
||||
|
||||
<!--*****************************logger start*****************************-->
|
||||
<!-- logger用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender> -->
|
||||
<!-- <logger>仅有一个name属性,一个可选的level和一个可选的additivity属性。 -->
|
||||
<!-- name:用来指定受此logger约束的某一个包或者具体的某一个类。 -->
|
||||
<!-- level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。如果未设置此属性,那么当前logger将会继承上级的级别。 -->
|
||||
<!-- additivity:是否向上级logger传递打印信息。默认是true。 -->
|
||||
|
||||
<logger name="com.alibaba.druid" level="INFO" additivity="true">
|
||||
<appender-ref ref="DRUID_SLOWSQL_INFO_FILE"/>
|
||||
</logger>
|
||||
|
||||
<logger name="com.alibaba.druid" level="warn">
|
||||
<appender-ref ref="DRUID_SLOWSQL_WARN_FILE"/>
|
||||
</logger>
|
||||
<!--*****************************logger end*****************************-->
|
||||
|
||||
<!-- 开发环境下的日志配置 -->
|
||||
<springProfile name="dev">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="CONSOLE" />
|
||||
<appender-ref ref="SYSTEM_ALL_FILE"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
<!-- 生产环境下的日志配置 -->
|
||||
<springProfile name="prod">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="SYSTEM_ALL_FILE"/>
|
||||
<appender-ref ref="SYSTEM_ERROR_FILE"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 138 KiB |
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-config.dtd">
|
||||
<configuration>
|
||||
<!-- 全局参数 -->
|
||||
<settings>
|
||||
<setting name="callSettersOnNulls" value="true" />
|
||||
</settings>
|
||||
<!-- 配置别名用 -->
|
||||
<typeAliases>
|
||||
|
||||
|
||||
</typeAliases>
|
||||
</configuration>
|
||||
@@ -0,0 +1,297 @@
|
||||
a#阿
|
||||
ao#拗口/违拗/拗断/执拗/拗口/拗口风/拗口令/拗曲/拗性/拗折/警拗
|
||||
ai#艾
|
||||
bang#膀/磅/蚌
|
||||
ba#扒
|
||||
bai#叔伯/百/柏杨/㧳/梵呗/呗佛/呗音/呗唱/呗偈/呗声/呗赞/赞呗
|
||||
bao#剥皮/薄/暴/堡/曝
|
||||
bei#呗
|
||||
beng#蚌埠
|
||||
bi#复辟/臂/秘鲁/泌阳
|
||||
bing#屏息/屏弃/屏气/屏除/屏声
|
||||
bian#扁/便/便宜坊
|
||||
bo#薄荷/单薄/伯/泊/波/柏/萝卜/孛
|
||||
bu#卜/柨
|
||||
can#参
|
||||
cang#藏/欌
|
||||
cen#参差
|
||||
ceng#曾/噌
|
||||
cha#差/刹那/宝刹/一刹/查/碴/喳喳/喀喳
|
||||
chai#公差/差役/专差/官差/听差/美差/办差/差事/差使/肥差/当差/钦差/苦差/出差
|
||||
chan#颤/单于/禅
|
||||
chang#长/厂
|
||||
chao#朝/嘲/焯
|
||||
che#工尺/车
|
||||
chen#称职/匀称/称心/相称/对称
|
||||
cheng#称/乘/澄/噌吰/橙 秤/盛满/盛器/盛饭
|
||||
chu#畜
|
||||
chui#椎心
|
||||
chuai#揣
|
||||
chuan#传
|
||||
chi#匙/尺/吃
|
||||
chong#重庆/重重/虫
|
||||
chou#臭/帱
|
||||
chuang#经幢
|
||||
chuo#绰
|
||||
ci#参差/鳞差/伺候/龟兹
|
||||
cuan#攒聚/攒动/攒集/攒宫/攒所
|
||||
cuo#撮儿/撮要/撮合
|
||||
da#大/嗒
|
||||
dao#叨/帱载/帱察
|
||||
dai#大夫
|
||||
dan#单/弹/掸/澹
|
||||
dang#铛
|
||||
de#的/得
|
||||
di#堤/底/怎的/有的/目的/标的/打的/的确/有的放/的卢/矢之的/言中的/语中的/的士/地/提防/快的/美的
|
||||
diao#蓝调/调调/音调/论调/格调/调令/低调/笔调/基调/强调/声调/滥调/老调/色调/单调/腔调/跑调/曲调/步调/语调/主调/情调
|
||||
ding#丁
|
||||
du#读/都/度
|
||||
dou#全都/句读
|
||||
duo#舵/测度/忖度/揣度/猜度
|
||||
dun#粮囤/盾/顿/沌/敦
|
||||
e#阿谀/阿胶/阿弥/恶/擜
|
||||
er#儿
|
||||
fan#番
|
||||
feng#冯
|
||||
fei#婔
|
||||
fo#佛
|
||||
fu#仿佛/果脯/罘/莩
|
||||
fou#否
|
||||
fiao#覅
|
||||
ga#咖喱/伽马/嘎/戛纳
|
||||
gai#盖
|
||||
gao#告
|
||||
gang#扛鼎
|
||||
ge#革/蛤蚧/文蛤/蛤蜊/咯
|
||||
gei#给
|
||||
geng#脖颈
|
||||
gong#女红/共
|
||||
gu#谷/中鹄/鼓
|
||||
gui#龟/柜/硅/倭傀/傀异/傀然/傀垒/傀怪/傀卓/傀奇/傀伟/傀民/傀俄/琦傀/奇傀
|
||||
gua#呱
|
||||
guan#纶巾/东莞
|
||||
guang#广
|
||||
ha#蛤/哈/虾蟆
|
||||
hai#还/嗨/咳声/咳笑
|
||||
hao#貉子/貉绒
|
||||
hang#夯/总行/分行/支行/行业/排行/行情/央行/商行/外行/银行/中行/交行/招行/农行/工行/建行/商行/酒行/麻行/琴行/行业/同行/行列/行货/行会/行家/巷道/引吭/扼吭/批吭/搤吭/高吭/喉吭/咔吭/絶吭/吭嗌/吭咽/吭首
|
||||
he#和/合/核/鶴/猲
|
||||
heng#道行/涥
|
||||
hu#鹄/水浒/嗀/唬
|
||||
hua#滑/呚/椛
|
||||
huan#归还/放还/奉还/圜
|
||||
hui#会/浍河/媈/灳/哕/瑗珲
|
||||
hong#红/虹
|
||||
huo#软和/热和/暖和
|
||||
hun#尡/珲
|
||||
ji#病革/给养/自给/给水/薪给/给予/供给/稽/缉/藉/奇数/亟/诘屈/荠菜/愱
|
||||
jia#雪茄/伽/家/价/贾/戛
|
||||
jian#见/浅浅
|
||||
jiang#降
|
||||
jiao#嚼舌/嚼字/嚼蜡/角/剿/饺/脚/蕉/矫/睡觉/侥/校对/校验/校正/校准/审校/校场/校核/校勘/校订/校阅/校样
|
||||
jie#解/慰藉/蕴藉/诘/媘/煯
|
||||
jin#矜/劲/禁
|
||||
jing#颈/景/强劲/劲风/劲旅/劲敌/劲射/苍劲/遒劲/劲草
|
||||
jiong#炅
|
||||
ju#咀/居/桔/句/婮
|
||||
jun#均
|
||||
juan#棚圈/圈养/猪圈/羊圈
|
||||
jue#主角/角色/旦角/女角/丑角/角力/名角/配角/嚼/觉/䏐
|
||||
jun#龟裂/俊
|
||||
ka#咖/卡/喀
|
||||
kai#楷
|
||||
kang#扛
|
||||
ke#咳/壳
|
||||
keng#吭
|
||||
kuai#会计/财会/浍
|
||||
kui#傀
|
||||
kuo#括
|
||||
la#癞痢/腊/蜡
|
||||
lai#癞疮/癞子/癞蛤/癞皮
|
||||
lao#积潦/络子/落枕/落价/粩/姥
|
||||
le#乐/勒/了
|
||||
lei#勒紧
|
||||
lo#然咯
|
||||
lou#佝偻/泄露/露面/露脸/露骨/露底/露馅/露一手/露相/露马脚/露怯
|
||||
long#里弄/弄堂/泷
|
||||
li#跞/礼/櫔/栃
|
||||
liao#了解/了结/明了/了得/末了/未了/了如/潦/撩
|
||||
liang#靓/俩
|
||||
lie#挘
|
||||
lin#崊
|
||||
ling#霗/令
|
||||
liu#六/遛
|
||||
lu#碌/陆/露
|
||||
luo#络/落/漯/囖/洜/泺
|
||||
lv#率/绿
|
||||
lve#鋢/稤
|
||||
lun#纶
|
||||
ma#嫲/抹布/抹脸/抹桌子/摩挲
|
||||
mai#埋
|
||||
man#埋怨/蔓
|
||||
mai#脉
|
||||
mang#氓/芒
|
||||
mao#冒
|
||||
me#嚒
|
||||
men#椚
|
||||
meng#群氓/盟/癦
|
||||
mei#没/旀
|
||||
mo#淹没/没收/出没/沉没/没落/吞没/覆没/没入/埋没/鬼没/隐没/湮没/辱没/脉脉/模/摩/抹
|
||||
mou#绸缪/牟
|
||||
mi#秘/泌尿/分泌/谜/檷枸
|
||||
mian#渑
|
||||
ming#掵
|
||||
miu#谬/谬论/纰缪
|
||||
mu#大模/字模/模板/模样/模具/装模/模子/牟尼/子牟/夷牟/悬牟/相牟/头牟/宾牟/曹牟/岑牟/兜牟/卢牟/弥牟/牟食/牟槊/牟衫/牟光/牟牟/牟甲
|
||||
na#哪/娜/那
|
||||
nao#臑
|
||||
nan#南
|
||||
ne#哪吒/呢
|
||||
nei#氞
|
||||
neus#莻
|
||||
nong#弄/燶
|
||||
ni#毛呢/花呢/呢绒/线呢/呢料/呢子/呢喃/溺/檷
|
||||
niao#尿/鸟/便溺
|
||||
nian#粘膜/粘度/粘土/粘合剂/粘液/粘稠/粘合/粘着/粘结/粘性/粘附/不粘锅/粘糊/粘虫/粘聚/粘滞/焾/哖
|
||||
niang#酿
|
||||
nin#脌
|
||||
ning#倿/拧
|
||||
niu#拗/汼
|
||||
nu#努
|
||||
nuo#婀娜/袅娜/喏
|
||||
nv#女
|
||||
nve#疟/硸
|
||||
o#喔/筽
|
||||
ou#膒
|
||||
pa#扒手/扒窃/扒外/扒分/扒糕/扒灰/扒犁/扒龙/扒搂/扒山虎/扒艇
|
||||
pai#派/迫击/迫击炮
|
||||
pao#刨/炮/萢
|
||||
pan#番禺
|
||||
pang#胖/膀/磅
|
||||
pei#蓜
|
||||
pi#辟/否极/臧否/龙陂/芘
|
||||
pian#扁舟/便宜/魸
|
||||
piao#朴姓/饿莩/饥莩/葭莩
|
||||
pin#穦
|
||||
ping#屏/苹/冯河
|
||||
po#湖泊/血泊 /迫/朴刀/坡/陂
|
||||
pu#一曝十寒/里堡/十里堡/脯/朴/曝晒/瀑/埔
|
||||
qi#期/其/泣/祇
|
||||
qiu#龟兹/湭
|
||||
qi#稽首/缉鞋/栖/奇/漆/齐
|
||||
qia#卡脖/卡子/关卡/卡壳/哨卡/边卡/发卡/峠
|
||||
qiao#雀盲/雀子/地壳/甲壳/躯壳
|
||||
qian#纤/乾/浅
|
||||
qiang#强/㛨/㩖/䅚/䵁
|
||||
qie#茄/趔趄/聺/籡
|
||||
qin#亲/沁
|
||||
qing#干亲/亲家
|
||||
qiong#熍
|
||||
qu#区/趣/爠
|
||||
quan#圈/券
|
||||
que#雀/炔
|
||||
re#声喏/唱喏
|
||||
rong#嬫
|
||||
ruo#若/嵶
|
||||
saeng#栍
|
||||
sang#槡
|
||||
sai#塞/嘥
|
||||
sao#螦
|
||||
se#堵塞/搪塞/茅塞/闭塞/鼻塞/梗塞/阻塞/淤塞/拥塞/哽塞/色
|
||||
sha#莎/刹车/急刹/厦/杉木/杉篙
|
||||
shai#色子
|
||||
shao#勺/红苕
|
||||
shan#姓单/单县/杉/敾/禅让/受禅/禅变/禅代/禅诰
|
||||
shang#衣裳
|
||||
she#拾级/折本/射/蛇
|
||||
shen#沙参/野参/参王/人参/红参/丹参/山参/海参/鹿参/什么/身/沈/桑椹/食椹/烂椹/木椹
|
||||
sheng#野乘/千乘/史乘/省/晟/盛/陹/渑水
|
||||
shi#钥匙/什/识/似的/食/石/氏/拾/适/瑡
|
||||
shiwa#瓧
|
||||
shuai#表率/率性/率直/率真/粗率/率领/轻率/直率/草率/大率/坦率/衰
|
||||
shuang#泷水/鏯
|
||||
shu#属/数/术/熟
|
||||
shui#游说
|
||||
shuo#数见/说
|
||||
si#伺/似/思
|
||||
sou#蓃/摗
|
||||
su#宿/鯂
|
||||
sui#尿泡
|
||||
ta#拓片/拓印/拓本/拓墨/拓写/拓手/拓工/碑拓/疲沓/拖沓/杂沓/沓/塔/鸿塔
|
||||
tang#汤/镗
|
||||
tao#陶
|
||||
tan#反弹/弹性/弹簧/弹力/弹奏/弹跳/弹指/弹劾/弹唱/弹射/弹性体/吹弹/评弹/乱弹琴/弹压/弹指/弹簧/弹冠/弹雀/弹雀/弹丝/弹丸/澹台
|
||||
te#脦
|
||||
teng#虅
|
||||
ti#提/体
|
||||
tiao#调/苕
|
||||
ting#町/听
|
||||
tong#通
|
||||
tu#迌
|
||||
tuan#湪
|
||||
tui#褪
|
||||
tuo#拓/袥
|
||||
tun#囤/屯
|
||||
wei#尾/蔚/圩堤/圩垸/圩田/圩子/赶圩/歌圩
|
||||
weng#攚
|
||||
wu#无/可恶/交恶/好恶/厌恶/憎恶/嫌恶/痛恶/深恶/兀
|
||||
wan#藤蔓/枝蔓/根蔓/蔓草/瓜蔓/蔓儿/莞/万/百万/皖
|
||||
wang#亡
|
||||
wai#崴
|
||||
xia#虾/吓/夏/厦门/厦大/唬杀
|
||||
xi#栖/系/蹊/洗/溪/戏/焁/铣/褶衣/褶裤
|
||||
xiao#校/切削/削面/刀削/刮削
|
||||
xian#纤细/光纤/纤巧/纤柔/纤小/纤维/纤瘦/纤纤/化纤/纤秀/棉纤/纤尘/铣铁/金铣
|
||||
xiang#投降/巷
|
||||
xie#解数/出血/采血/换血/血糊/尿血/淤血/放血/血晕/血淋/便血/吐血/咯血/叶韵/蝎/蝎子/邪/猲猲
|
||||
xin#嬜/邤
|
||||
xiu#铜臭/乳臭/成宿/星宿/璓
|
||||
xin#馨/信/鸿信
|
||||
xing#深省/省视/内省/不省人事/省悟/省察/行/荥
|
||||
xiong#匂
|
||||
xu#牧畜/畜产/畜牧/畜养/并畜/畜锐/吁/圩/浒
|
||||
xuan#箮
|
||||
xue#削/血/樰
|
||||
xun#荨/寻
|
||||
ya#琊
|
||||
yao#钥/耀/曜/佋侥/侥觎/侥僺/侥利/侥傒/侥觊/侥会/侥滥/侥望/侥求/侥竞/侥薄/侥躐/侥取/侥奇/侥忝/侥速/侥冀/侥冒/疟子
|
||||
yan#咽/殷红/朱殷/腌/烟/曕
|
||||
ye#液/抽咽/哽咽/咽炎/呜咽/幽咽/悲咽/叶/葉/璍/潱/拽步/拽扶/拽扎
|
||||
yi#自艾/遗/屹/嬄/噫
|
||||
yin#殷/栶
|
||||
ying#荥经/緓/灜
|
||||
yo#杭育
|
||||
yong#涌/硧
|
||||
you#牗
|
||||
yu#余/呼吁/吁请/吁求/育/熨帖/熨烫/於
|
||||
yuan#员/茒/圜丘
|
||||
yun#熨
|
||||
yue#约/乐音/器乐/乐律/乐章/音乐/乐理/民乐/乐队/声乐/奏乐/弦乐/乐坛/管乐/配乐/乐曲/乐谱/锁钥/密钥/乐团/乐器/嬳/咽哕/唾哕/发哕/干哕/哕吐/哕饭/哕呕/哕息/哕厥/哕噫/哕逆/哕咽/哕骂/哕心/哕喈/口哕/呕哕
|
||||
za#绑扎/结扎/包扎/捆扎/咱家
|
||||
zan#攒/咱
|
||||
zang#宝藏/藏历/藏文/藏语/藏青/藏族/藏医/藏药/藏蓝/西藏
|
||||
zai#牛仔/龟仔/龙仔/鼻仔/羊仔/仔仔/麻仔/麵包仔/麦旺仔/鸿仔/煲仔/福仔/畠
|
||||
zao#栆
|
||||
ze#择
|
||||
zeng#曾国藩/曾孙/曾祖父/曾祖/曾祖母/曾孙女/曾巩/囎/缯
|
||||
zong#综/繌
|
||||
zha#扎/柞狭/柞薪/柞子/柞鄂/柞叶/柞撒/槱柞/一柞/五柞宫/五柞/雠柞/芟柞/蜡祭/喳
|
||||
zhai#宅/夈/择席/择菜
|
||||
zhan#粘
|
||||
zhang#列车长/行长/村长/镇长/乡长/区长/县长/市长/省长/会长/班长/排长/连长/营长/团长/旅长/师长/军长/委员长/局长/厅长/所长/部长/组长/生长/长大/长高/长个/
|
||||
zhao#朝朝/明朝/朝晖/朝夕/朝思/今朝/朝气/朝三/朝秦/朝霞/鹰爪/龙爪/魔爪/爪牙/着急/着迷/着火/怎么着/正着/着凉/一着/犯不着/着数/这么着/犯得着/着慌/着忙/数得着/龙爪槐/嘲哳/嘲惹
|
||||
zhe#折/着/褶
|
||||
zhen#殝/椹
|
||||
zhi#标识/吱/殖/枝/方祇/后祇/皇祇/黄祇/皇地祇/金祇/祇树/月氏
|
||||
zhong#重/种
|
||||
zhou#粥
|
||||
zhu#属意/著/駯
|
||||
zhua#爪子
|
||||
zhuai#拽
|
||||
zhuan#芈月传/外传/传记/自传/正传/小传/评传/传略/别传
|
||||
zhui#椎/隹
|
||||
zhuo#执著/着装/着落/着意/着力/附着/着笔/胶着/着实/衣着/着眼/着想/着重/穿着/执着/着墨/着实/沉着/着陆/着想/着色/焯见/焯烁/辉焯
|
||||
zhuang#幢房/一幢/幢楼/庒
|
||||
zi#仔/兹
|
||||
zu#足
|
||||
zuo#柞/穝
|
||||
@@ -0,0 +1,3 @@
|
||||
127.0.0.1
|
||||
localhost
|
||||
index.html
|
||||
@@ -0,0 +1,12 @@
|
||||
pdf
|
||||
doc
|
||||
docx
|
||||
xlsx
|
||||
xls
|
||||
zip
|
||||
rar
|
||||
jpg
|
||||
jpge
|
||||
png
|
||||
gif
|
||||
ppt
|
||||
@@ -0,0 +1 @@
|
||||
/upload/
|
||||
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"
|
||||
version="2.5" metadata-complete="true">
|
||||
<display-name>Archetype Created Web Application</display-name>
|
||||
|
||||
<listener>
|
||||
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<!-- Spring字符集过滤器 -->
|
||||
<filter>
|
||||
<filter-name>SpringEncodingFilter</filter-name>
|
||||
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
|
||||
<init-param>
|
||||
<param-name>encoding</param-name>
|
||||
<param-value>UTF-8</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>forceEncoding</param-name>
|
||||
<param-value>true</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>SpringEncodingFilter</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 设计路径变量值 -->
|
||||
<context-param>
|
||||
<param-name>webAppRootKey</param-name>
|
||||
<param-value>springmvc.root</param-value>
|
||||
</context-param>
|
||||
|
||||
|
||||
<listener>
|
||||
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
||||
</listener>
|
||||
|
||||
|
||||
|
||||
<welcome-file-list>
|
||||
<welcome-file>index.html</welcome-file>
|
||||
</welcome-file-list>
|
||||
|
||||
</web-app>
|
||||
Reference in New Issue
Block a user