zoukankan      html  css  js  c++  java
  • Spring3.x 升级至 Spring4.x 详解

    1 升级依赖包

    1.1 Maven 项目

    1.1.1 更新 spring 依赖版本

    打开 pom.xml,把所有 spring3.x 的版本号更新为 spring4.x。建议使用属性配置,形如:

    <properties>
            <spring.version>4.3.16.RELEASE</spring.version>
     </properties>
    

    这样就仅需一处升级即可,引用方式如下:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    ...
    

    1.1.2 升级 quartz

    quartz 1.x 升级为 quartz 2.x:

    <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.3.0</version>
    </dependency>
    

    quartz 配置文件中的 org.springframework.scheduling.quartz.CronTriggerBean 改为 org.springframework.scheduling.quartz.CronTriggerFactoryBean

    1.1.3 升级 jackson

    jackson 版本升级为 2.9.4:

    <jackson.version>2.9.4</jackson.version>
    

    涉及以下 5 个相关包:

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-jaxb-annotations</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    

    1.2 非 Maven 项目

    非 Maven 的项目,要更新为 Spring4.x,过程比较痛苦,因为需要手动把相应的 JAR 包替换掉。

    下面贴出可能涉及到、需要被替换掉的 JAR 包:

     
    quartz 相关
     
    jackson 相关
     
    Spring 相关

    2 替换 spring jdbc 的 queryForInt 方法

    queryForInt 方法已被弃用,请改为 queryForObject 方法:

    queryForObject(String sql, Map<String, ?> paramMap, Class<T> requiredType)
    

    调用示例:

    int count=namedParameterJdbcTemplate.queryForObject(sql,
                    params, Integer.class);
    

    3 SpringMVC 返回 JSON 格式

    原来在 Spring3 中默认会返回 JSON 格式,然而在 Spring4 中可能会默认返回 XML 格式:

     
    响应消息格式

    如果这里的响应消息格式变为 application/xml;charset=UTF-8,那么可以在 Controller 中的 @RequestMapping 中加入 produces = "application/json",明确指定返回 JSON 格式。

    示例:

    @RequestMapping(value = "/login", method = RequestMethod.POST, produces = "application/json")
    

    如果涉及的 Controller 较多(比如项目中存在大量的接口),那么可以修改 Spring 框架的源代码——org.springframework.http.MediaType:

    public static void sortBySpecificityAndQuality(List<MediaType> mediaTypes) {
            Assert.notNull(mediaTypes, "'mediaTypes' must not be null");
            if (mediaTypes.size() > 1) {
                Collections.sort(mediaTypes, new CompoundComparator<MediaType>(
                        MediaType.SPECIFICITY_COMPARATOR, MediaType.QUALITY_VALUE_COMPARATOR));
                mediaTypes.set(0, MediaType.APPLICATION_JSON);//把 JSON 类型最为最优先的返回对象类型
            }
        }
    

    这样所有的 @ResponseBody 的返回对象类型就都是 JSON 格式的对象啦O(∩_∩)O哈哈~

    4 更新 XML 配置文件中的 xsd 版本号

    把格式为 http://www.springframework.org/schema/xxx/spring-xxx-3.0.xsd 更改为 http://www.springframework.org/schema/xxx/spring-xxx-4.0.xsd,如果有的话。



    作者:deniro
    链接:https://www.jianshu.com/p/e52a7476ae95
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    [Android Studio 权威教程]Windows下安装Android Studio
    iOS:获取图片Alpha图片
    MFC 直线 虚线 折线 圆 椭圆 矩形 弧形
    大北农董事长夫人莫云为何在美国被逮捕?
    【源代码】LinkedHashMap源代码剖析
    前端那些事儿——中文乱码,网页中文乱码,网页乱码,块元素,内联元素
    Struts2通过自己定义拦截器实现登录之后跳转到原页面
    unity3d ngui-TweenRotation-TweenPosition-TweenScale
    分析函数在数据分析中的应用
    Java Collection
  • 原文地址:https://www.cnblogs.com/pegasus827/p/11155126.html
Copyright © 2011-2022 走看看