strtus2改成springboot_ssh框架使用springBoot升级迁移替换Struts2
如果一个十来年的ssh项目想使用springboot的便捷性,但又不想从零开始,那么就让我们开始迁移吧。
在pom文件添加springboot 依赖
创建application 启动类
迁移web.xml
web.xml文件中定义了filter, struts2等等一堆filter, 这时我们需要做的一件事是在springboot中使我们的filter, struts2 能正常work。 这样就不需要我们改变项目中已经定义好的大量的action、controller层代码.
//声明当前类为一个配置类
@Configuration
//自动扫描包路径
@ComponentScan({"com.demo.action", "com.demo.util","com.demo.security"})
//引入之前已经存在的配置文件
@ImportResource(locations = {
"classpath:applicationContext-configuration.xml",
"classpath:applicationContext-orm.xml",
"classpath:applicationContext-business.xml",
"classpath:ApplicationContext-RabbitMQ.xml",
"classpath:applicationContext-security-authorization.xml",
})
public class ApplicationConfig {
private static final Logger log = LoggerFactory.getLogger(ApplicationConfig.class);
private LogRequestFilter logRequestFilter = new LogRequestFilter();
private StrutsPrepareAndExecuteFilter strutsPrepareAndExecuteFilter = new StrutsPrepareAndExecuteFilter(); //springboot启动时初始化struts2拦截器
@Bean
@Order(1)
public FilterRegistrationBean loginFilter() {
/*
* * LoginFilter
* com.demo.servlet.LoginFilter
*
* * LoginFilter
* /login/*
* /login.html
*
*/
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(new LoginFilter());//注册拦截filter
registrationBean.addUrlPatterns("/login/*", "/login.html");//拦截路径
return registrationBean;
}
@Bean
@Order(2)
public FilterRegistrationBean strutsPrepareAndExecuteFilter() {
/*
* * struts2
* org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
*
* * struts2
* /*
*
* * struts2
* FORWARD
*
*/
log.debug("Instantiating StrutsPrepareAndExecuteFilter");
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(strutsPrepareAndExecuteFilter);//注册Struts2拦截器
registrationBean.setName("StrutsPrepareAndExecuteFilter");
registrationBean.addUrlPatterns("/*");//默认拦截所有请求
return registrationBean;
}
}
通过以上code, 我们已经将web.xml的配置完全迁移,这时我们通过springboot 已经可以开始启动项目了。
当然,在springboot中使用Struts2是不合理的也是官方不支持使用的, 后续的工作我们可以逐步整合hiberante, springsecurity,最后将Struts2替换成springmvc. 慢慢减少我们的配置文件。
(1)FilterRegistrationBean: spring 对filter 拦截器的一个注册类, 自带setorder方法, [email protected]�动和拦截的优先级。
(2)@Order 控制filter的启动和拦截的优先级。
(3)@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。
(4) StrutsPrepareAndExecuteFilter 这个类就不多说了,相信大部分使用struts2的小伙伴都知道这是struts2的启动类
(5) @ImportResource等同于xml配置。参考:https://blog.csdn.net/jiaobuchong/article/details/50530027
(6)@Configuration 用于定义配置类,可替换xml配置文件,[email protected]法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
参考: https://blog.csdn.net/qq_35981283/article/details/77826537
https://www.jianshu.com/p/3bd687e9d1e7
springboot 系列教程:
https://blog.csdn.net/softwave/article/details/77152373
strtus2改成springboot_ssh框架使用springBoot升级迁移替换Struts2相关推荐
- strtus2改成springboot_jdk1.6环境下struts2改spring boot方案-阿里云开发者社区
公司目前上线的两个项目都是比较老的,java版本是jdk1.6,mvc框架使用的是strus2. 随着不久前struts2官方公布新的安全漏洞,我们也不得不做出相应的整改措施,除了之前博文中所说把st ...
- strtus2改成springboot_jdk1.6环境下struts2改spring boot方案
公司目前上线的两个项目都是比较老的,java版本是jdk1.6,mvc框架使用的是strus2. 随着不久前struts2官方公布新的安全漏洞,我们也不得不做出相应的整改措施,除了之前博文中所说把st ...
- strtus2改成springboot_springboot+struts2打成jar包运行
springboot集成struts2,在开发工具(eclipse)运行正常.打成jar包或war包,使用java -jar执行,均会出现以下错误:求如何解决? java.lang.NullPoint ...
- (二):集成日志框架:springboot使用logback日志框架
前言 项目中日志系统是必不可少的,目前比较流行的日志框架有log4j.logback等,可能大家还不知道,这两个框架的作者是同一个人,Logback旨在作为流行的log4j项目的后续版本,从而恢复lo ...
- SpringBoot升级到2.0后默认时间格式变化_springboot接收date类型参数
springboot1.x时,请求返回默认将Date类型转换成时间戳: createTime: 1544693261000 然而在升级到springboot2.0后,默认返回的时间格式变成了UTC字符 ...
- SSM框架学习-SpringBoot和SpringMVC
springBoot 端口号设置 在application.properties里面写:server.port=8080 每个设置的端口号只能debug(运行)一次,没有关闭进行再次运行会出现端口号被 ...
- php7不支持mysql扩展了么_php7不支持mysql扩展需要改成mysqli扩展
最近升级php7发现不支持mysql扩展,需要改成用mysqli扩展 看代码class Db{ private $username = ''; private $password = ''; priv ...
- 改成中文版的_lol手游怎么改成中文版?英雄联盟手游中文版更改教程
阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注! [免责声明]本文部分文字与图片资源来自于网络,转载 ...
- 改logback logstash-logback-encoder 框架本身的日志级别
大家好,我是烤鸭: 最近遇到一个问题,想把logback框架本身的日志级别修改,需要 logstash-logback-encoder 6.1 以上的版本才可以. 直接上代码 这里修改的不是业务日志级 ...
最新文章
- 你必须知道的.net学习总结
- 速率单位和信息量单位区分
- PHP生成PDF并转换成图片爬过的坑
- Java虚拟机学习(3): 类加载机制
- linux用unzip解压.zip文件失败解决方案
- wxWidgets:窗口删除
- 使用Mutex實現單一程式執行個體的注意事項(转)
- javax.servlet.ServletException: Circular view path []: would dispatch back to the current....
- JavaScript数组方法终极指南-地图
- Java数组快速排序
- JS继承的几种方式及优缺点
- 矩阵分析一子空间和特征分解
- VMware Workstation未能挂起虚拟机
- Vue3.x-bate + Antd2.x 项目搭建报错
- 保洁阿姨看完都会了!熬夜肝完这份Framework笔记,吐血整理
- Long tailed 长尾分布论文汇总
- 资源管理Placement部署(Nova)
- day40 ORM sqlalchemy
- 关于父子节点、父子元素、祖辈元素的获取
- U盘安装Linux红帽子6.4系统