zoukankan      html  css  js  c++  java
  • 怒改springMVC项目为springBoot项目

    背景公司最近在做项目升级,融合所有项目,但是目前使用的一个系统还是最原始的框架 springMVC+spring+mybatis ,前端还是jsp,easyui(技术老的掉牙),终于出手了,结果。。。就让我开始修改。

    前言:首先是百度一波,看看有没有什么前车之鉴,然而失望而归,感觉都不是很符合

    开干:

    第一步:首先在pom文件中添加spring-boot-starter相关依赖

    如下:

    <!-- spring boot -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <!--<version>2.1.1.RELEASE</version>-->
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-legacy</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-jasper</artifactId>
                <!--<version>9.0.14</version>-->
                <scope>provided</scope>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-aop</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>
    

    第二步:新增启动类Application

    @SpringBootApplication
    @ImportResource(locations = {"classpath:spring-*.xml","classpath:mybatis-config.xml"})
    @ServletComponentScan
    public class xxSpringBootApplication {
        public static void main(String[] args) {
            SpringApplication application=  new SpringApplication(T6SpringBootApplication.class);
            application.setWebEnvironment(true);
            application.run(args);
            System.out.println("xxxxxxxxxxxxxSB");
        }
    }

    有人问,为什么要加最后一行代码,表达了愤怒的心情,控制台如果看到这句话,说明启动成功了,但是经验告诉我,看到这句话是何等的困难,都是泪

    第三步:神器 Maven Helper 

    点击启动按钮,当然是一堆报错,都是些什么NoClassDefFoundError之类的。。。这些基本都是依赖冲突的问题。

    这时候一个非常牛逼的插件就开始起作用了,Maven Helper 使用方法参考 https://blog.csdn.net/u013870094/article/details/79712500

    这篇文章少了一步:右击可以去除冲突

    接着就是一系列的解决冲突的问题,还有一些依赖是缺少的,这个时候就需要去maven上获取 https://mvnrepository.com/search ,需要的是耐心

    第四步:

      如果项目包含前端是jsp的,需要引入一些jsp的依赖....

    第五步:

       如果原来项目中有一个监听类,是继承 ContextLoaderListener 类的话,是需要修改的.

      老代码:

    新代码:

    @WebListener
    public class SpringContextLoaderListener implements ServletContextListener {
    
        private static boolean initialized = false;
    
        @Override
        public void contextInitialized(ServletContextEvent event) {
            System.setProperty("thumbnailator.conserveMemoryWorkaround", "true");
    //        super.contextInitialized(event);
            initialized = true;
        }
    
        @Override
        public void contextDestroyed(ServletContextEvent event) {
    //        super.contextDestroyed(event);
        }
    
        public static boolean isInitialized() {
            return initialized;
        }
    
    }

    花了一天,终于项目正常运行了,可能还有一些隐藏的bug还没有被发现,去测试了,。...........

    补充:项目正常运行,发现无法原来使用的log4j打印日志,在springboot项目上无法打印日志。。坑爹。  springboot的打印日志组件变成了 logback,一顿改,先引入logback相关依赖包,然后将log4j.properties转换成logback支持的logback.xml 。这里有一个官方的转换网站 :https://logback.qos.ch/translator/ 。

    最坑爹的就是转换过的文件,控制台可以正常输出日志,但是无法将日志输出到文件,找了一下午,必须要添加下图中红色区域代码

    Ending!!!!!!!!!!!!!!!!!

  • 相关阅读:
    2005年春晚冯巩和朱军那个以《艺术人生》为蓝本的小品,冯巩念的诗
    《十一种孤独》札记
    《OpenCV3编程入门》 札记
    JavaScript对浏览器的URL进行编码、解码
    Jquery对Cookie的操作
    asp.net对cookie的操作
    asp.net时间 日期(DateTime) 的格式处理
    asp.net的JSON数据进行序列化和反序列化
    jQuery自动分页打印表格(HTMLtable),可以强制换页
    asp.net将内容导出到Excel,Table表格数据(html)导出EXCEL
  • 原文地址:https://www.cnblogs.com/chengzhihua/p/10251474.html
Copyright © 2011-2022 走看看