convert to spring boot project

This commit is contained in:
thinkgem
2018-01-10 23:39:55 +08:00
parent 7237c524c5
commit a0c71ce81a
39 changed files with 982 additions and 1434 deletions

View File

@@ -20,6 +20,7 @@ echo.
pause
echo.
%~d0
cd %~dp0
cd ../

View File

@@ -5,7 +5,7 @@ rem *
rem * Author: ThinkGem@163.com
rem */
echo.
echo [<5B><>Ϣ] <20><><EFBFBD><EFBFBD>Web<65><62><EFBFBD>̣<EFBFBD><CCA3><EFBFBD><EFBFBD><EFBFBD>war<61><72><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
echo [<5B><>Ϣ] <20><><EFBFBD><EFBFBD>Web<65><62><EFBFBD>̣<EFBFBD><CCA3><EFBFBD><EFBFBD><EFBFBD>war/jar<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
echo.
pause
echo.
@@ -14,6 +14,6 @@ echo.
cd %~dp0
cd ../
call mvn clean package -Dmaven.test.skip=true -Ppackage -U
call mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U
pause

View File

@@ -1,34 +0,0 @@
@echo off
rem /**
rem * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
rem *
rem * Author: ThinkGem@163.com
rem */
title %cd%
echo.
echo [<5B><>Ϣ] ʹ<><CAB9>Jetty<74><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Web<65><62><EFBFBD>̡<EFBFBD>
echo.
rem pause
rem echo.
cd %~dp0
cd ..
set currPath=%cd%
set MAVEN_OPTS=%MAVEN_OPTS% -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
if exist "../parent/pom.xml" (
cd ../parent
call mvn clean install -Dmaven.test.skip=true
)
if exist "../modules/pom.xml" (
cd ../modules
call mvn clean install -Dmaven.test.skip=true
)
cd %currPath%
call mvn jetty:run -D maven.javadoc.skip=true -U
cd bin
pause

32
web/bin/run-tomcat.bat Normal file
View File

@@ -0,0 +1,32 @@
@echo off
rem /**
rem * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
rem *
rem * Author: ThinkGem@163.com
rem */
echo.
echo [<5B><>Ϣ] ʹ<><CAB9> Spring Boot Tomcat <20><><EFBFBD><EFBFBD> Web <20><><EFBFBD>̡<EFBFBD>
echo.
rem pause
rem echo.
%~d0
cd %~dp0
cd ../
title %cd%
set currPath=%cd%
set MAVEN_OPTS=%MAVEN_OPTS% -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
if exist "../package/pom.xml" (
cd ../package
call mvn clean install -Dmaven.test.skip=true -Ppackage -U
)
cd %currPath%
call mvn clean spring-boot:run -U
pause

13
web/bin/run-tomcat.sh Normal file
View File

@@ -0,0 +1,13 @@
#!/bin/sh
# /**
# * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
# *
# * Author: ThinkGem@163.com
# */
cd ../
MAVEN_OPTS=$MAVEN_OPTS -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
exec mvn clean spring-boot:run -U

23
web/bin/startup.bat Normal file
View File

@@ -0,0 +1,23 @@
@echo off
rem /**
rem * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
rem *
rem * Author: ThinkGem@163.com
rem */
echo.
echo [<5B><>Ϣ] <20><><EFBFBD><EFBFBD> Web <20><><EFBFBD>̡<EFBFBD>
echo.
rem pause
rem echo.
%~d0
cd %~dp0
cd ../
title %cd%
set JAVA_OPTS= -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
java -jar target/jeesite-web-4.0-SNAPSHOT.war
pause

View File

@@ -1,219 +1,180 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>4.0-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<artifactId>jeesite-web</artifactId>
<packaging>war</packaging>
<name>JeeSite Web</name>
<url>http://jeesite.com</url>
<inceptionYear>2013-Now</inceptionYear>
<properties>
<spring-boot.version>1.5.9.RELEASE</spring-boot.version>
<!-- environment setting -->
<tomcat.version>2.2</tomcat.version>
<jetty.version>8.1.0.RC5</jetty.version>
<webserver.port>8080</webserver.port>
<downloadSources>false</downloadSources>
<downloadJavadocs>false</downloadJavadocs>
</properties>
<dependencies>
<!-- 核心模块 -->
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-module-core</artifactId>
<version>${project.parent.version}</version>
</dependency>
<!-- 代码生成模块 -->
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-module-devtools</artifactId>
<version>${project.parent.version}</version>
</dependency>
<!-- 内容管理模块
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-module-cms</artifactId>
<version>${project.parent.version}</version>
</dependency>-->
<!-- FoxBPM流程引擎模块
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-module-foxbpm</artifactId>
<version>${project.parent.version}</version>
</dependency>-->
<!-- 微信模块
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-module-weixin</artifactId>
<version>${project.parent.version}</version>
</dependency>-->
<!-- 静态资源-ACE主题
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-themes-ace</artifactId>
<version>${project.parent.version}</version>
</dependency>-->
<!-- 自定义jar依赖包演示
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>test-core</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/test-core-1.0.jar</systemPath>
</dependency> -->
</dependencies>
<build>
<outputDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes/</outputDirectory>
<plugins>
<!-- WAR打包插件, 设定war包名称不带版本号 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<packagingExcludes>
</packagingExcludes>
<warSourceExcludes>
userfiles/**,
test/**
</warSourceExcludes>
<webappDirectory>${project.build.directory}/${project.artifactId}</webappDirectory>
<warName>${project.artifactId}</warName>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<!-- Eclipse插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<downloadSources>${downloadSources}</downloadSources>
<downloadJavadocs>${downloadJavadocs}</downloadJavadocs>
<wtpContextName>${project.artifactId}</wtpContextName>
<wtpversion>2.0</wtpversion>
<jeeversion>6.0</jeeversion>
</configuration>
</plugin>
<!-- Tomcat7插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>${tomcat.version}</version>
<configuration>
<port>${webserver.port}</port>
<path>/${project.artifactId}</path>
<uriEncoding>${project.build.sourceEncoding}</uriEncoding>
</configuration>
</plugin>
<!-- Jetty插件 -->
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${jetty.version}</version>
<configuration>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>${webserver.port}</port>
</connector>
</connectors>
<webAppConfig>
<contextPath>/${project.artifactId}</contextPath>
</webAppConfig>
<systemProperties>
<systemProperty>
<name>org.mortbay.util.URI.charset</name>
<value>${project.build.sourceEncoding}</value>
</systemProperty>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
<developers>
<developer>
<id>thinkgem</id>
<name>WangZhen</name>
<email>thinkgem at 163.com</email>
<roles><role>Project lead</role></roles>
<timezone>+8</timezone>
</developer>
</developers>
<organization>
<name>JeeSite</name>
<url>http://jeesite.com</url>
</organization>
<repositories>
<repository>
<id>aliyun-repos</id>
<name>Aliyun Repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
<repository>
<id>sonatype-repos</id>
<name>Sonatype Repository</name>
<url>https://oss.sonatype.org/content/groups/public</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
<repository>
<id>sonatype-repos-s</id>
<name>Sonatype Repository</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>aliyun-repos</id>
<name>Aliyun Repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</pluginRepository>
<pluginRepository>
<id>sonatype-repos</id>
<name>Sonatype Repository</name>
<url>https://oss.sonatype.org/content/groups/public</url>
</pluginRepository>
</pluginRepositories>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>4.0-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<artifactId>jeesite-web</artifactId>
<packaging>war</packaging>
<name>JeeSite Boot</name>
<url>http://jeesite.com</url>
<inceptionYear>2013-Now</inceptionYear>
<properties>
<start-class>com.jeesite.config.Application</start-class>
<eclipse-plugin-download-sources>false</eclipse-plugin-download-sources>
<eclipse-plugin-download-javadocs>false</eclipse-plugin-download-javadocs>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- 核心模块 -->
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-module-core</artifactId>
<version>${project.parent.version}</version>
</dependency>
<!-- 代码生成模块 -->
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-module-devtools</artifactId>
<version>${project.parent.version}</version>
</dependency>
<!-- 内容管理模块
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-module-cms</artifactId>
<version>${project.parent.version}</version>
</dependency>-->
<!-- 微信模块
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-module-weixin</artifactId>
<version>${project.parent.version}</version>
</dependency>-->
<!-- 自定义jar依赖包演示
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>test-core</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/test-core-1.0.jar</systemPath>
</dependency> -->
</dependencies>
<build>
<outputDirectory>${project.basedir}/src/main/webapp/WEB-INF/classes/</outputDirectory>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
</plugin>
<!-- WAR打包插件, 设定war包名称不带版本号 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<packagingExcludes>
</packagingExcludes>
<warSourceExcludes>
userfiles/**,
test/**
</warSourceExcludes>
<webappDirectory>${project.build.directory}/${project.artifactId}</webappDirectory>
<warName>${project.artifactId}</warName>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<!-- Eclipse插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<downloadSources>${eclipse-plugin-download-sources}</downloadSources>
<downloadJavadocs>${eclipse-plugin-download-javadocs}</downloadJavadocs>
<wtpContextName>${project.artifactId}</wtpContextName>
<wtpversion>2.0</wtpversion>
<jeeversion>6.0</jeeversion>
</configuration>
</plugin>
</plugins>
</build>
<developers>
<developer>
<id>thinkgem</id>
<name>WangZhen</name>
<email>thinkgem at 163.com</email>
<roles><role>Project lead</role></roles>
<timezone>+8</timezone>
</developer>
</developers>
<organization>
<name>JeeSite</name>
<url>http://jeesite.com</url>
</organization>
<repositories>
<repository>
<id>aliyun-repos</id>
<name>Aliyun Repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
<repository>
<id>sonatype-repos</id>
<name>Sonatype Repository</name>
<url>https://oss.sonatype.org/content/groups/public</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
<repository>
<id>sonatype-repos-s</id>
<name>Sonatype Repository</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>aliyun-repos</id>
<name>Aliyun Repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</pluginRepository>
<pluginRepository>
<id>sonatype-repos</id>
<name>Sonatype Repository</name>
<url>https://oss.sonatype.org/content/groups/public</url>
</pluginRepository>
</pluginRepositories>
</project>

View File

@@ -0,0 +1,33 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
package com.jeesite.config;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import com.jeesite.common.io.PropertiesUtils;
/**
* JeeSite Web
* @author ThinkGem
* @version 2018-1-8
*/
@SpringBootApplication(scanBasePackages={"com.jeesite.config"})
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class);
app.setDefaultProperties(PropertiesUtils.getInstance().getProperties());
app.run(args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
builder.properties(PropertiesUtils.getInstance().getProperties());
return builder.sources(Application.class);
}
}

View File

@@ -0,0 +1,28 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
package com.jeesite.config.task;
/**
* 消息发送服务如果需要支持定时任务则要在作业管理里添加该任务msgLocalSendTask.execute();
* @author ThinkGem
* @version 2018年1月10日
*/
public class MsgLocalSendTask {
// <bean id="msgLocalSendTask" class="com.jeesite.modules.msg.task.MsgLocalSendTask">
// <property name="messageService" ref="messageService" />
// <property name="smsSendService">
// <bean class="com.jeesite.modules.msg.task.impl.SmsDemoSendService"></bean>
// </property>
// <property name="mailSendService">
// <bean class="com.jeesite.modules.msg.task.impl.EmailSendService"></bean>
// </property>
// <property name="weixinSendService">
// <bean class="com.jeesite.modules.msg.task.impl.WeixinSendService">
// <property name="weixinService" ref="weixinService"></property>
// </bean>
// </property>
// </bean>-->
}

View File

@@ -0,0 +1,48 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
package com.jeesite.config.web;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
/**
* Servlet 配置
* @author ThinkGem
* @version 2017年11月30日
*/
@Configuration
public class DruidStatConfig {
/**
* 注册DruidFilter拦截
*/
@Bean
public FilterRegistrationBean duridFilter() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
bean.addInitParameter("exclusions", "*.css,*.js,*.png,"
+ "*.jpg,*.gif,*.jpeg,*.bmp,*.ico,*.swf,*.psd,*.htc,*.htm,*.html,"
+ "*.crx,*.xpi,*.exe,*.ipa,*.apk,*.otf,*.eot,*.svg,*.ttf,*.woff,"
+ "/druid/*");
bean.addUrlPatterns("/*");
return bean;
}
/**
* 注册DruidServlet
*/
@Bean
public ServletRegistrationBean druidServlet() {
ServletRegistrationBean bean = new ServletRegistrationBean();
bean.setServlet(new StatViewServlet());
bean.addUrlMappings("/druid/*");
return bean;
}
}

View File

@@ -0,0 +1,83 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
package com.jeesite.config.web;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.cache.ehcache.EhCacheManagerFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.filter.DelegatingFilterProxy;
import org.springframework.web.filter.RequestContextFilter;
import com.jeesite.common.config.Global;
import com.jeesite.common.web.PageCachingFilter;
/**
* Filter 配置
* @author ThinkGem
* @version 2017年11月30日
*/
@Configuration
public class FilterConfig {
/**
* Encoding Filter
*/
@Bean
public FilterRegistrationBean characterEncodingFilter() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new CharacterEncodingFilter());
bean.addInitParameter("encoding", "UTF-8");
bean.addInitParameter("forceEncoding", "true");
bean.addUrlPatterns("/*");
bean.setOrder(1000);
return bean;
}
/**
* PageCache Filter, cache .html suffix.
*/
@Bean
@ConditionalOnProperty(name = "ehcache.pageCaching.enabled", havingValue = "true")
public FilterRegistrationBean pageCachingFilter(EhCacheManagerFactoryBean ehCacheManager) {
FilterRegistrationBean bean = new FilterRegistrationBean();
PageCachingFilter pageCachingFilter = new PageCachingFilter();
pageCachingFilter.setCacheManager(ehCacheManager.getObject());
bean.setFilter(pageCachingFilter);
bean.addInitParameter("cacheName", "pageCachingFilter");
bean.addUrlPatterns(StringUtils.split(Global.getProperty(
"ehcache.pageCaching.urlPatterns"), ","));
bean.setOrder(2000);
return bean;
}
/**
* Apache Shiro Filter
*/
@Bean
public FilterRegistrationBean shiroFilterProxy() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new DelegatingFilterProxy("shiroFilter"));
bean.addInitParameter("targetFilterLifecycle", "true");
bean.addUrlPatterns("/*");
bean.setOrder(3000);
return bean;
}
/**
* Request Context Filter 需要放在shiroFilter后否则request获取不到session
*/
@Bean
public FilterRegistrationBean requestContextFilter() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new RequestContextFilter());
bean.addUrlPatterns("/*");
bean.setOrder(4000);
return bean;
}
}

View File

@@ -0,0 +1,43 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
package com.jeesite.config.web;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextListener;
import com.jeesite.common.shiro.cas.CasOutSessionListener;
/**
* Listener 配置
* @author ThinkGem
* @version 2017年11月29日
*/
@Configuration
public class ListenerConfig {
/**
* CAS Session Listener
*/
@Bean
public ServletListenerRegistrationBean<CasOutSessionListener> casOutSessionListener() {
ServletListenerRegistrationBean<CasOutSessionListener> bean = new ServletListenerRegistrationBean<>();
bean.setListener(new CasOutSessionListener());
bean.setOrder(1000);
return bean;
}
/**
* Request Context Listener
*/
@Bean
public ServletListenerRegistrationBean<RequestContextListener> requestContextListener() {
ServletListenerRegistrationBean<RequestContextListener> bean = new ServletListenerRegistrationBean<>();
bean.setListener(new RequestContextListener());
bean.setOrder(2000);
return bean;
}
}

View File

@@ -0,0 +1,16 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
package com.jeesite.config.web;
import org.springframework.context.annotation.Configuration;
/**
* Servlet 配置
* @author ThinkGem
* @version 2017年11月30日
*/
@Configuration
public class ServletConfig {
}

View File

@@ -0,0 +1,40 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
package com.jeesite.config.web.interceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Configuration;
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 com.jeesite.common.config.Global;
import com.jeesite.modules.sys.interceptor.LogInterceptor;
/**
* 后台管理日志记录拦截器
* @author ThinkGem
* @version 2018年1月10日
*/
@Configuration
@EnableWebMvc
@ConditionalOnProperty(name="web.interceptor.log.enabled", havingValue="true", matchIfMissing=true)
public class LogInterceptorConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LogInterceptor())
.addPathPatterns(Global.getAdminPath() + "/**")
.excludePathPatterns(Global.getAdminPath() + "/index")
.excludePathPatterns(Global.getAdminPath() + "/login")
.excludePathPatterns(Global.getAdminPath() + "/**/listData")
.excludePathPatterns(Global.getAdminPath() + "/**/treeData")
.excludePathPatterns(Global.getAdminPath() + "/file/**")
.excludePathPatterns(Global.getAdminPath() + "/tags/**")
.excludePathPatterns(Global.getAdminPath() + "/sys/log/**")
.excludePathPatterns(Global.getAdminPath() + "/sys/online/count")
;
}
}

View File

@@ -0,0 +1,32 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
package com.jeesite.config.web.interceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Configuration;
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 com.jeesite.common.config.Global;
import com.jeesite.modules.sys.interceptor.LogInterceptor;
/**
* 前台自动切换到手机视图拦截器
* @author ThinkGem
* @version 2018年1月10日
*/
@Configuration
@EnableWebMvc
@ConditionalOnProperty(name="web.interceptor.mobile.enabled", havingValue="true")
public class MobileViewInterceptorConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LogInterceptor())
.addPathPatterns(Global.getFrontPath() + "/**")
;
}
}

View File

@@ -0,0 +1,15 @@
server:
port: 8980
context-path: /js
tomcat:
uri-encoding: UTF-8
spring:
main:
banner-mode: "off"
debug: true

View File

@@ -2,7 +2,7 @@
#设置与beetl-default.properties相同的属性将被覆盖默认设置
##导入项目中的调用静态方法类项目中设置自动合并IMPORT_PACKAGE设置
#IMPORT_PACKAGE_你的模块编码=\
#IMPORT_PACKAGE_PROJECT=\
# com.jeesite.modules.project.utils.;\
## 内置的方法

View File

@@ -1,36 +1,36 @@
#============================#
#===== Database sttings =====#
#============================#
# 数据库连接
jdbc:
# Oracle 数据库配置
type: oracle
driver: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@127.0.0.1:1521/orcl
username: jeesite
password: jeesite
testSql: SELECT 1 FROM DUAL
# Mysql 数据库配置
# type: mysql
# driver: com.mysql.jdbc.Driver
# url: jdbc:mysql://127.0.0.1:3306/jeesite?useUnicode=true&characterEncoding=utf-8
# username: jeesite
# password: jeesite
# testSql: SELECT 1
#============================#
#===== System settings ======#
#============================#
#产品信息设置
productName: JeeSite Demo
productVersion: V4.0
copyrightYear: 2018
companyName: ThinkGem
#是否演示模式
demoMode: false
#============================#
#===== Database sttings =====#
#============================#
# 数据库连接
jdbc:
# Oracle 数据库配置
type: oracle
driver: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@127.0.0.1:1521/orcl
username: jeesite
password: jeesite
testSql: SELECT 1 FROM DUAL
# Mysql 数据库配置
# type: mysql
# driver: com.mysql.jdbc.Driver
# url: jdbc:mysql://127.0.0.1:3306/jeesite?useUnicode=true&characterEncoding=utf-8
# username: jeesite
# password: jeesite
# testSql: SELECT 1
#============================#
#===== System settings ======#
#============================#
#产品信息设置
productName: JeeSite Demo
productVersion: V4.0
copyrightYear: 2018
companyName: ThinkGem
#是否演示模式
demoMode: false

View File

@@ -3,6 +3,9 @@
<!-- Log file path ../../../../../../../ to disk root -->
<property name="log.path" value="${logPath:-../../../../../../../}/logs" />
<!-- Spring boot default -->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<!-- Console log output -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd"
default-lazy-init="true">
<description>Message Task Configuration</description>
<!-- 本地消息发送服务,如果需要支持定时任务,则要在作业管理里添加该任务 msgLocalSendTask.execute();
<bean id="msgLocalSendTask" class="com.jeesite.modules.msg.task.MsgLocalSendTask">
<property name="messageService" ref="messageService" />
<property name="smsSendService">
<bean class="com.jeesite.modules.msg.task.impl.SmsDemoSendService"></bean>
</property>
<property name="mailSendService">
<bean class="com.jeesite.modules.msg.task.impl.EmailSendService"></bean>
</property>
<property name="weixinSendService">
<bean class="com.jeesite.modules.msg.task.impl.WeixinSendService">
<property name="weixinService" ref="weixinService"></property>
</bean>
</property>
</bean>-->
</beans>

View File

@@ -1,44 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:util="http://www.springframework.org/schema/util" xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.1.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd"
default-lazy-init="true">
<description>Spring Configuration</description>
<!-- 使用Annotation自动注册Bean不扫描@Controller注解如果多个用“,”分隔 -->
<context:component-scan base-package="com.jeesite.modules">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
<context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.RestController"/>
<context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.RestControllerAdvice"/>
</context:component-scan>
<!-- MyBatis扫描基础包设置Aliases、@MyBatisDao如果多个用“,”分隔-->
<bean name="mybatisScanBasePackage" class="java.lang.String">
<constructor-arg><value>com.jeesite.modules</value></constructor-arg>
</bean>
<!-- 导入模板相关配置 -->
<import resource="classpath*:/spring/spring-context-core.xml"/>
<import resource="classpath*:/spring/spring-context-data.xml"/>
<!-- <import resource="classpath*:/spring/spring-context-data-stat.xml"/> -->
<import resource="classpath*:/spring/spring-context-jedis.xml"/>
<import resource="classpath*:/spring/spring-context-shiro.xml"/>
<import resource="classpath*:/spring/spring-context-shiro-ehcache.xml"/>
<!-- <import resource="classpath*:/spring/spring-context-shiro-redis.xml"/> -->
<import resource="classpath*:/spring/spring-context-msg-task.xml"/>
<!-- <import resource="classpath*:/spring/spring-context-flowable.xml" /> -->
<!-- <import resource="classpath*:/spring/spring-context-foxbpm.xml" /> -->
<!-- <import resource="classpath*:/spring/spring-context-weixin.xml"/> -->
</beans>

View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
<description>Spring MVC Configuration</description>
<!-- 使用Annotation自动注册Bean只扫描@Controller如果多个用“,”分隔 -->
<context:component-scan base-package="com.jeesite.modules" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
<context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.RestController"/>
<context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.RestControllerAdvice"/>
</context:component-scan>
<!-- 导入模板相关配置 -->
<import resource="classpath*:/spring/spring-mvc-core.xml"/>
<import resource="classpath*:/spring/spring-mvc-interceptor-log.xml"/>
<!-- <import resource="classpath*:/spring/spring-mvc-interceptor-mobile.xml"/> -->
</beans>

View File

@@ -1,94 +1,94 @@
/* ,使,, */
{
/* */
"imageActionName": "uploadimage", /* action */
"imageFieldName": "upfile", /* */
"imageMaxSize": 2048000, /* B */
"imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* */
"imageCompressEnable": true, /* ,true */
"imageCompressBorder": 800, /* */
"imageInsertAlign": "none", /* */
"imageUrlPrefix": "", /* 访 */
"imagePathFormat": "/userfiles/ueditor/{userid}/images/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* , */
/* {filename} , */
/* {rand:6} , */
/* {time} */
/* {yyyy} */
/* {yy} */
/* {mm} */
/* {dd} */
/* {hh} */
/* {ii} */
/* {ss} */
/* \ : * ? " < > | */
/* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */
/* 涂鸦图片上传配置项 */
"scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */
"scrawlFieldName": "upfile", /* 提交的图片表单名称 */
"scrawlPathFormat": "/userfiles/ueditor/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"scrawlMaxSize": 2048000, /* 上传大小限制单位B */
"scrawlUrlPrefix": "", /* 图片访问路径前缀 */
"scrawlInsertAlign": "none",
/* 截图工具上传 */
"snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
"snapscreenPathFormat": "/userfiles/ueditor/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"snapscreenUrlPrefix": "", /* 图片访问路径前缀 */
"snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
/* 抓取远程图片配置 */
"catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],
"catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
"catcherFieldName": "source", /* 提交的图片列表表单名称 */
"catcherPathFormat": "/userfiles/ueditor/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"catcherUrlPrefix": "", /* 图片访问路径前缀 */
"catcherMaxSize": 2048000, /* 上传大小限制单位B */
"catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
/* 上传视频配置 */
"videoActionName": "uploadvideo", /* 执行上传视频的action名称 */
"videoFieldName": "upfile", /* 提交的视频表单名称 */
"videoPathFormat": "/userfiles/ueditor/{userid}/videos/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"videoUrlPrefix": "", /* 视频访问路径前缀 */
"videoMaxSize": 102400000, /* 上传大小限制单位B默认100MB */
"videoAllowFiles": [
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4",".m4v", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */
/* 上传文件配置 */
"fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */
"fileFieldName": "upfile", /* 提交的文件表单名称 */
"filePathFormat": "/userfiles/ueditor/{userid}/files/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"fileUrlPrefix": "", /* 文件访问路径前缀 */
"fileMaxSize": 51200000, /* 上传大小限制单位B默认50MB */
"fileAllowFiles": [
".png", ".jpg", ".jpeg", ".gif", ".bmp",
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
], /* 上传文件格式显示 */
/* 列出指定目录下的图片 */
"imageManagerActionName": "listimage", /* 执行图片管理的action名称 */
"imageManagerListPath": "/userfiles/ueditor/{userid}/images/", /* 指定要列出图片的目录 */
"imageManagerListSize": 100, /* 每次列出文件数量 */
"imageManagerUrlPrefix": "", /* 图片访问路径前缀 */
"imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */
"imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */
/* 列出指定目录下的文件 */
"fileManagerActionName": "listfile", /* 执行文件管理的action名称 */
"fileManagerListPath": "/userfiles/ueditor/{userid}/files/", /* 指定要列出文件的目录 */
"fileManagerListSize": 100, /* 每次列出文件数量 */
"fileManagerUrlPrefix": "", /* 文件访问路径前缀 */
"fileManagerAllowFiles": [
".png", ".jpg", ".jpeg", ".gif", ".bmp",
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
] /* */
/* ,使,, */
{
/* */
"imageActionName": "uploadimage", /* action */
"imageFieldName": "upfile", /* */
"imageMaxSize": 2048000, /* B */
"imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* */
"imageCompressEnable": true, /* ,true */
"imageCompressBorder": 800, /* */
"imageInsertAlign": "none", /* */
"imageUrlPrefix": "", /* 访 */
"imagePathFormat": "/userfiles/{userid}/images/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* , */
/* {filename} , */
/* {rand:6} , */
/* {time} */
/* {yyyy} */
/* {yy} */
/* {mm} */
/* {dd} */
/* {hh} */
/* {ii} */
/* {ss} */
/* \ : * ? " < > | */
/* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */
/* 涂鸦图片上传配置项 */
"scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */
"scrawlFieldName": "upfile", /* 提交的图片表单名称 */
"scrawlPathFormat": "/userfiles/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"scrawlMaxSize": 2048000, /* 上传大小限制单位B */
"scrawlUrlPrefix": "", /* 图片访问路径前缀 */
"scrawlInsertAlign": "none",
/* 截图工具上传 */
"snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */
"snapscreenPathFormat": "/userfiles/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"snapscreenUrlPrefix": "", /* 图片访问路径前缀 */
"snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */
/* 抓取远程图片配置 */
"catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],
"catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */
"catcherFieldName": "source", /* 提交的图片列表表单名称 */
"catcherPathFormat": "/userfiles/{userid}/images/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"catcherUrlPrefix": "", /* 图片访问路径前缀 */
"catcherMaxSize": 2048000, /* 上传大小限制单位B */
"catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */
/* 上传视频配置 */
"videoActionName": "uploadvideo", /* 执行上传视频的action名称 */
"videoFieldName": "upfile", /* 提交的视频表单名称 */
"videoPathFormat": "/userfiles/{userid}/videos/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"videoUrlPrefix": "", /* 视频访问路径前缀 */
"videoMaxSize": 102400000, /* 上传大小限制单位B默认100MB */
"videoAllowFiles": [
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4",".m4v", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */
/* 上传文件配置 */
"fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */
"fileFieldName": "upfile", /* 提交的文件表单名称 */
"filePathFormat": "/userfiles/{userid}/files/{yyyy}{mm}{dd}/{filename}_${time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
"fileUrlPrefix": "", /* 文件访问路径前缀 */
"fileMaxSize": 51200000, /* 上传大小限制单位B默认50MB */
"fileAllowFiles": [
".png", ".jpg", ".jpeg", ".gif", ".bmp",
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
], /* 上传文件格式显示 */
/* 列出指定目录下的图片 */
"imageManagerActionName": "listimage", /* 执行图片管理的action名称 */
"imageManagerListPath": "/userfiles/{userid}/images/", /* 指定要列出图片的目录 */
"imageManagerListSize": 100, /* 每次列出文件数量 */
"imageManagerUrlPrefix": "", /* 图片访问路径前缀 */
"imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */
"imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */
/* 列出指定目录下的文件 */
"fileManagerActionName": "listfile", /* 执行文件管理的action名称 */
"fileManagerListPath": "/userfiles/{userid}/files/", /* 指定要列出文件的目录 */
"fileManagerListSize": 100, /* 每次列出文件数量 */
"fileManagerUrlPrefix": "", /* 文件访问路径前缀 */
"fileManagerAllowFiles": [
".png", ".jpg", ".jpeg", ".gif", ".bmp",
".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
] /* */
}

View File

@@ -1,175 +0,0 @@
<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>JeeSite</display-name>
<!-- Context Param -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/spring-context.xml</param-value>
</context-param>
<!-- Web Context Listener -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- CAS Session Listener -->
<listener>
<listener-class>com.jeesite.common.shiro.cas.CasOutSessionListener</listener-class>
</listener>
<!-- Request Context Listener -->
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<!-- Encoding Filter -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<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>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- PageCache Filter, cache .html suffix.
<filter>
<filter-name>PageCacheFilter</filter-name>
<filter-class>com.jeesite.common.web.PageCachingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>cacheName</param-name>
<param-value>pageCachingFilter</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>PageCacheFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping> -->
<!-- Apache Shiro Filter -->
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Request Context Filter 需要放在shiroFilter后否则request获取不到session -->
<filter>
<filter-name>requestContextFilter</filter-name>
<filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>requestContextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring MVC Servlet -->
<servlet>
<servlet-name>webMvcServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/spring/spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>webMvcServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Druid StatView
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>-->
<!-- Druid WebStatFilter
<filter>
<filter-name>DruidWebStatFilter</filter-name>
<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>exclusions</param-name>
<param-value>*.css,*.js,*.png,*.jpg,*.gif,*.jpeg,*.bmp,*.ico,*.swf,*.psd,*.htc,*.htm,*.html,*.crx,*.xpi,*.exe,*.ipa,*.apk,*.otf,*.eot,*.svg,*.ttf,*.woff</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>-->
<!-- FineReport Servlet
<servlet>
<servlet-name>ReportServer</servlet-name>
<servlet-class>com.fr.web.ReportServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ReportServer</servlet-name>
<url-pattern>/ReportServer</url-pattern>
</servlet-mapping>-->
<!-- Apache CXF Servlet
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>-->
<!-- FoxBPM Restlet Servlet
<servlet>
<servlet-name>FoxbpmRestletServlet</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
<init-param>
<param-name>org.restlet.application</param-name>
<param-value>com.jeesite.modules.foxbpm.rest.FlowRestApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>FoxbpmRestletServlet</servlet-name>
<url-pattern>/foxbpm/service/*</url-pattern>
</servlet-mapping>-->
<!-- Error page -->
<error-page>
<error-code>500</error-code>
<location>/error/500</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error/404</location>
</error-page>
</web-app>

View File

@@ -4,15 +4,17 @@
package com.jeesite.test;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Commit;
import org.springframework.test.context.ContextConfiguration;
import com.jeesite.config.Application;
/**
* 初始化核心表数据
* @author ThinkGem
* @version 2017-10-22
*/
@ContextConfiguration(locations={"classpath*:/spring/spring-context-test.xml"})
@SpringBootTest(classes=Application.class)
@Commit
public class InitCoreData extends com.jeesite.modules.db.InitCoreData {