spring老项目转springboot项目 笔记
引入jar包
先不删除老的jar包
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5..RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- log4j -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <!-- 这个是剔除掉自带的 tomcat部署的-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions> </dependency>
<!-- tomcat容器部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--<scope>compile</scope>-->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!-- 支持 @ConfigurationProperties 注解 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
spring boot打包的插件
<build>
<finalName>MIS</finalName>
<!-- maven 打包不全(xml,properties文件没打进包)解决方案-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5..RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
创建springboot主类
package com.guige; 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 org.springframework.context.annotation.ComponentScan; @SpringBootApplication
@ComponentScan({"com.guige.oim.v2.*"})
public class Application extends SpringBootServletInitializer { @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
} public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
创建application.properties文件
#默认前缀
server.contextPath=/ #数据源
spring.datasource.name=adminDataSource
spring.datasource.driverClassName = oracle.jdbc.OracleDriver
spring.datasource.url =
spring.datasource.username =
spring.datasource.password =
1.先把web.xml去掉
创建core包
web.xml里的servlet转成bean形式
filter也一样
创建WebConfig配置类
package com.guige.core.conf; import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import com.guige.core.ext.i18n.filter.LocaleFilter;
import com.guige.mis.filter.JspFilter;
import com.guige.mis.listener.ContextListener;
import com.guige.mis.listener.OnlineUserListener;
import com.guige.oim.filter.CORSFilter;
import com.guige.oim.servlet.*;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.DispatcherServlet; /**
* 对应web.xml
*
* @author songaw
* @date 2018/7/17 9:10
*/
@Configuration
public class WebConfig {
//----------------------Filter
//跨域过滤器
@Bean
public FilterRegistrationBean corsRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new CORSFilter());
filterRegistrationBean.addUrlPatterns("/*");
return filterRegistrationBean;
}
//字符集utf-8
@Bean
public FilterRegistrationBean characterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("UTF-8");
characterEncodingFilter.setForceEncoding(true);
filterRegistrationBean.setFilter(characterEncodingFilter);
filterRegistrationBean.addUrlPatterns("/*");
//filterRegistrationBean.addInitParameter("encoding", "UTF-8");
// filterRegistrationBean.addInitParameter("ForceEncoding", "true");
return filterRegistrationBean;
}
//对jsp进行权限日志过滤
@Bean
public FilterRegistrationBean jspFilterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
JspFilter jspFilter = new JspFilter();
filterRegistrationBean.setFilter(jspFilter);
filterRegistrationBean.addUrlPatterns("*.do");
return filterRegistrationBean;
} /**
* 如果session中没有设置locale串或者locale串不合法,默认采用request的locale,
* @return
*/
@Bean
public FilterRegistrationBean localeRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new LocaleFilter());
filterRegistrationBean.addUrlPatterns("*.do");
return filterRegistrationBean;
}
//阿里druid界面设置
@Bean
public FilterRegistrationBean webStatFilterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new WebStatFilter());
filterRegistrationBean.addUrlPatterns("/*");
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
} //--------------------------------Listener @Bean
public ServletListenerRegistrationBean<OnlineUserListener> onlineUserListenerRegistrationBean(){
ServletListenerRegistrationBean<OnlineUserListener>
sessionListener = new ServletListenerRegistrationBean<OnlineUserListener>(new OnlineUserListener());
return sessionListener; }
@Bean
public ServletListenerRegistrationBean<ContextListener> contextListenerRegistrationBean(){
ServletListenerRegistrationBean<ContextListener>
sessionListener = new ServletListenerRegistrationBean<ContextListener>(new ContextListener());
return sessionListener; }
// --------------------------------------Servlet @Bean
public ServletRegistrationBean dispatcher() { ServletRegistrationBean reg = new ServletRegistrationBean();
DispatcherServlet dispatcherServlet = new DispatcherServlet();
dispatcherServlet.setContextConfigLocation("classpath:config/core/spring-mvc.xml," +
" classpath:config/core/dao/dao_authority.xml," +
" classpath:config/core/dao/dao_manager.xml," +
" classpath:config/core/dao/dao_oim.xml," +
" classpath:config/core/dao/dao_oim_v2.xml," +
" classpath:config/core/dao/dao_orgacus.xml," +
" classpath:config/core/service/service_authority.xml," +
" classpath:config/core/service/service_manager.xml," +
" classpath:config/core/service/service_oim.xml," +
" classpath:config/core/service/service_oim_v2.xml," +
" classpath:config/core/service/service_orgacus.xml," +
" classpath:config/client/i18n.xml," +
" classpath:config/client/http.xml," +
" classpath:config/client/action/action_main.xml," +
" classpath:config/client/action/action_authority.xml," +
" classpath:config/client/action/action_manager.xml," +
" classpath:config/client/action/action_oim.xml," +
" classpath:config/client/action/action_oim_v2.xml," +
" classpath:config/client/action/action_orgacus.xml");
reg.setServlet(dispatcherServlet);
reg.addUrlMappings("*.do");
reg.setLoadOnStartup();
return reg;
} //阿里druid界面设置
@Bean
public ServletRegistrationBean statViewServlet() { ServletRegistrationBean reg = new ServletRegistrationBean();
reg.setServlet(new StatViewServlet());
reg.addUrlMappings("/druid/*");
reg.addInitParameter("loginUsername", "111");
reg.addInitParameter("loginPassword", "111");
return reg;
} }
2.spring mvc文件
里面的bean 转成声明试bean
package com.guige.core.conf; import com.alibaba.druid.support.http.WebStatFilter;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.guige.oim.filter.CORSFilter;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.boot.web.servlet.ErrorPage;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.*;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.resource.ContentVersionStrategy;
import org.springframework.web.servlet.resource.VersionResourceResolver;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView; import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit; @Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter { /**
* 添加拦截器
* @param registry
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LocaleChangeInterceptor());
// registry.addInterceptor(webInterceptor());
} /**
*
* @param converters
*/
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
//用来忽略json对象传入,反序列化时候属性名称不正确导致序列化失败的bug
MappingJackson2HttpMessageConverter jacksonMessageConverter = new MappingJackson2HttpMessageConverter();
List<MediaType> supportedMediaTypes =new ArrayList<>();
// 避免IE执行AJAX时,返回JSON出现下载文件
supportedMediaTypes.add(MediaType.TEXT_HTML);
jacksonMessageConverter.setSupportedMediaTypes(supportedMediaTypes);
ObjectMapper mapper = jacksonMessageConverter.getObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
converters.add(jacksonMessageConverter);
} @Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.viewResolver(this.getViewResolver());
//MappingJsonView jsonView = new MappingJsonView();
// registry.enableContentNegotiation(jsonView);
} @Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setViewClass(JstlView.class);
resolver.setPrefix("/WEB-INF/jsp/");
resolver.setSuffix(".jsp");
resolver.setOrder();
return resolver;
}
@Override
public void addViewControllers(ViewControllerRegistry registry){
registry.addViewController("/").setViewName("forward:/login.html");
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
VersionResourceResolver versionResourceResolver = new VersionResourceResolver();
versionResourceResolver.addVersionStrategy(new ContentVersionStrategy(), "/**");
registry.addResourceHandler("/resources/**")
.addResourceLocations("/resources/")
.resourceChain(true)
.addResolver(versionResourceResolver);
} @Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
factory.setSessionTimeout(, TimeUnit.SECONDS);
ErrorPage ep1 = new ErrorPage(HttpStatus.NOT_FOUND, "/index.html");
return factory;
} }
3. spring.xml转配置文件
spring老项目转springboot项目 笔记的更多相关文章
- docker 运行jenkins及vue项目与springboot项目(三.jenkins的使用及自动打包vue项目)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- docker 运行jenkins及vue项目与springboot项目(一.安装docker)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- docker 运行jenkins及vue项目与springboot项目(二.docker运行jenkins为自动打包运行做准备)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- docker 运行jenkins及vue项目与springboot项目(四.docker运行nginx)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- docker 运行jenkins及vue项目与springboot项目(五.jenkins打包springboot服务且在docker中运行)
docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...
- 怒改springMVC项目为springBoot项目
背景:公司最近在做项目升级,融合所有项目,但是目前使用的一个系统还是最原始的框架 springMVC+spring+mybatis ,前端还是jsp,easyui(技术老的掉牙),终于出手了,结果.. ...
- spring boot学习(2) SpringBoot 项目属性配置
第一节:项目内置属性 application.properties配置整个项目的,相当于以前的web.xml: 注意到上一节的访问HelloWorld时,项目路径也没有加:直接是http://loca ...
- 通过start.spring.io生成的springboot项目,导入IDE后POM第一行报错
通过problem控制台查看,显示unknown 尝试降低springboot版本,问题没了,应该是与maven jdk等版本冲突导致 这里JDK 1.8 mave 3.6.1 降低springb ...
- maven项目或者SpringBoot项目启动时报错在本地仓库中找不到jar包的解决办法
经常遇到项目检出来后是导入开发工具eclipse中pom文件出错问题,项目启动时遇到了一些列的jar包找不到的问题,所以换个开发平台到IDEA以为会好些,结果同样的问题还是会出现的,为了找到具体的解决 ...
随机推荐
- 基于Nginx实现一个自己的HTTP模块
/usr/local/nginx/conf/nginx.conf文件例如以下: #worker工作进程的用户及用户组 user weijl; #Nginx worker进程个数 worker_proc ...
- 【VBA编程】01.第一个VBA程序Hello world
[程序1] 所有程序语言的开始都源于Hello world,那么我们也使用Hello world进行第一个VBA编程 新建Excle文件-----文件-------选项-----自定义功能区域---- ...
- ASP.Net MVC3/4中Model验证错误信息的本地化
最近使用ASP.Net MVC4做一个B/S的管理系统,里面有N多的Action和View Model,View Model上又有N多的验证. 一开始写的时候虽然知道要实现多语言,但是没有过多考虑,本 ...
- struts2中 jsp:forward 失败原因及解决办法
问题:在Struts2中<jsp:forward page="xxx.action"></jsp:forward>失效了,不但调转不过去还报404错误.不知 ...
- 动态创建 Log4net 实例
动态创建log4net 实例 根据业务类型,动态的创建日志实例,将日志写到不同目录.常见的配置文件中统一配置,不能满足需求. 引用log4net nuget安装命令: Install-Package ...
- 修改select下拉框的下拉按钮
ie上的下拉框下拉按钮真是太丑了,如何把他自定义一下呢? 首先,把浏览器自带的下拉框去掉: select::-ms-expand { display: none; } 接下来,用自己喜欢的下拉图片去 ...
- python selenium --一些常用方法
· text 获取该元素的文本 · submit 提交表单 · get_attribute 获得属性值 text 用于获取元素的文本信息 下面把百度首页底部的声明打印输出 #coding=u ...
- Android横竖屏布局总结
Android横竖屏要解决的问题应该就两个:一.布局问题;二.重新载入问题. 1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的 AndroidManifest.xml中找到你 ...
- 【原创】k8s源代码分析-----kubelet(8)pod管理
本文QQ空间链接:http://user.qzone.qq.com/29185807/blog/1460540474 本文csdn博客链接:http://blog.csdn.net/screscent ...
- 跨Server查询
GO RECONFIGURE GO GO RECONFIGURE GO SELECT MAX(OldestCall) FROM ( SELECT FeildAA As FeildAAFROM OPEN ...