convert to spring boot project
This commit is contained in:
33
web/src/main/java/com/jeesite/config/Application.java
Normal file
33
web/src/main/java/com/jeesite/config/Application.java
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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>-->
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
83
web/src/main/java/com/jeesite/config/web/FilterConfig.java
Normal file
83
web/src/main/java/com/jeesite/config/web/FilterConfig.java
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
43
web/src/main/java/com/jeesite/config/web/ListenerConfig.java
Normal file
43
web/src/main/java/com/jeesite/config/web/ListenerConfig.java
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
16
web/src/main/java/com/jeesite/config/web/ServletConfig.java
Normal file
16
web/src/main/java/com/jeesite/config/web/ServletConfig.java
Normal 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 {
|
||||
|
||||
}
|
||||
@@ -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")
|
||||
;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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() + "/**")
|
||||
;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user