總結SpringBoot1.x遷移到2.x需要注意的問題

  SpringBoot1.x和SpringBoot2.x版本差異化還是比較大的,有些三方依賴組件有些是基於2.0版本爲標準升級的,當我們將項目由1.0升級到2.0時會出現依賴的方法不存在或方法錯誤,需要逐個去調整,下面總結了我們升級實踐過程中遇到的一些問題和網友總結的一些問題。

Data 模塊也做了許多更新和提升

1) 2.x 默認使用 HikariCP 連接池;

2) 更加合理化的優化了數據庫初始化邏輯;

3) spring.jdbc.template 自動配置現在可以通過 spring.jdbc.template 屬性定製;

4) 提供了新配置 spring.jdbc.template 方便分頁和排序;

5) 對數據庫 spring.jdbc.template 自動化配置支持;

6) 可以高級定製 MongoDB 客戶端;

7) 可以通過 spring.cache.redis.* 來配置 Redis 緩存默認值。

靜態資源文件處理

切記,springboot2的靜態資源必須手動設置路徑映射纔可以訪問。

1.在 resources下面手動新建文件夾,樓主新建的文件夾名稱爲 static,當然也可以叫其他名字,比如 demo。然後把所有的靜態資源文件放到 static 或者 demo 下。

2.java 代碼配置,切記,在Spring Boot 1.5版本都是靠重寫WebMvcConfigurerAdapter的方法來添加自定義攔截器,消息轉換器等。SpringBoot 2.0 後,該類被標記爲@Deprecated。因此我們只能靠實現WebMvcConfigurer接口來實現。

/**
 * SpringBoot中訪問doc.html報404的解決辦法
 * @author james
 */
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {

    /**
     * 資源處理器
     *
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        registry.addResourceHandler("swagger-ui.html", "doc.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

Actuator加強

在 2.x 中,對執行器端點進行了許多改進,所有的 HTTP 執行端點現在都暴露在 /actuator路徑下,並對 JSON 結果集也做了改善

 

Redis異常

Error:(28, 33) java: 對於RedisCacheManager(org.springframework.data.redis.core.RedisTemplate), 找不到合適的構造器

解決SpringBoot2.0中:

    @Bean
    public CacheManager cacheManager(RedisConnectionFactory factory) {
        RedisCacheManager rcm = RedisCacheManager.builder(factory).build();
        return rcm;
    }

SpringBoot2中訪問doc.html報404的解決辦法

添加WebMvcConfiguration文件

@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {

    /**
     * 資源處理器
     *
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
      registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        registry.addResourceHandler("swagger-ui.html", "doc.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");

    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章