Springboot1.5.8から2.0.0へ移行メモ

既存プロジェクトからの移行です。
Java8は必須。

gradleのバージョンアップ

バージョン4以上必要みたいだったのあげました。

以下のコマンドを実行

./gradlew wrapper --gradle-version=4.0

確認

./gradlew --version

------------------------------------------------------------
Gradle 4.0
------------------------------------------------------------
(省略)

build.gradleの修正

バージョンを2.0.0に。

springBootVersion = '2.0.0.RELEASE'

プラグインに以下を追加します。

apply plugin: 'io.spring.dependency-management'

データソース

HikariCPがデフォルトになったみたいなので対応

設定クラス

Before

    @Bean
    @ConfigurationProperties("spring.datasource")
    public DataSource dataSource() {
        return DataSourceBuilder.create().build();
    }

After

    @Configuration
    @ConfigurationProperties("spring.datasource")
    public class JpaConfig extends HikariConfig {
        @Bean
        public DataSource dataSource() throws SQLException {
            return new HikariDataSource(this);
        }
    }
}

application.yml

jdbcUrlが無いと怒られたので
urljdbcUrlに変更

spring:
  datasource:
    jdbcUrl: 

Spring Security

AuthenticationManager
@Autowiredで取れなくなったので以下のカンジに修正

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(loginUserDetailService)
                .passwordEncoder(new BCryptPasswordEncoder());
    }

    @Bean(name = BeanIds.AUTHENTICATION_MANAGER)
    @Override
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }

Builderで作ったものをreturnしてあげる処理が必要みたいです。

WebMVC対応

WebMvcConfigurerAdapterが非推奨になりました。
以下のように修正しました。

Before

@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {

After

@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {

セッションタイムアウト

1系

server:
  session:
    timeout: 3600

2系

server:
  servlet:
    session:
      timeout: 3600

その他

パッケージ変わったりしてるのが2,3個あったので適当に修正

おわり

今後何か問題発生したら更新

サーバサイドエンジニア。オムライスが好物

シェアする

  • このエントリーをはてなブックマークに追加

フォローする