Spring Boot 2.0アップグレード小記

3577 ワード

もっと読む
1.背景
プロジェクトのもとのSpring Bootバージョンは1.5.4.RELEASEで、Spring CloudバージョンはDalston.SR2で、アップグレード後のSpring Bootバージョンは2.0.0.M7で、Spring CloudバージョンはFinchley.M5で、バージョンアップによって各コンポーネントのAPI及び依存パケットが変化し、以下はプロジェクトで使用されるコンポーネントのアップグレード方法である.
2.Spring Security
プロジェクトはOauth2プロトコル仕様を使用し、認証されたTokenトークンはRedisを使用して記憶する.
2.1ライセンスサーバ(authorization server)
クライアント構成のパスワードは、元の平文から暗号文に変更されます.
@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.inMemory()
                .withClient("android")
                .scopes("xx")
                .secret("$2a$10$sCeoatJoccD4y1ff8AhdROLd2u6AWYBwH7YrbWXxdk6fA4VGhGITm") //      :.secret("android")
                .authorizedGrantTypes("password", "authorization_code", "refresh_token");
    }
}
2.2リソースサーバ(resource server)Spring Boot 2.0.0.M7autoconfigureにおけるResourceServerに関する自動構成は取り外されました.Spring Securityプロジェクトに移ります.現在の代替案はhttps://github.com/spring-projects/spring-security-oauth2-boot.gitを使用するものです.以下のような依存性を追加すればいいです.
  
    org.springframework.security.oauth.boot
    spring-security-oauth2-autoconfigure
    2.0.0.BUILD-SNAPSHOT
  
2.3書き換えRedisTokenStoreRedisTokenStoreに発生したNoSuchMethodError RedisConnection.set([B[B)Vのエラーに対して、現在の解決策はRedisTokenStoreの第160行conn.set(accessKey, serializedAccessToken);を書き換えるに修正されたものである.
3.ElasticSearch
プロジェクトはアリクラウド上に展開されているが、アリクラウドはconn.stringCommands().set(accessKey, serializedAccessToken);を使用してREST APIと相互作用することを推奨しているので、プロジェクトはもとのElasticSearchによってSpring Data ElasticsearchクライアントとしてSpring Data Jestに切り替わる.
依存性

    com.github.vanroy
    spring-boot-starter-data-jest
    3.0.0.RELEASE


    io.searchbox
    jest
    5.3.2

接続構成
spring:
  data:
    jest:
      uri: http://192.168.1.222:9200
      username: elastic
      password: changeme
4.Spring Coud Feign
プロジェクトはElasticSearchを使用してFeignクライアントとしてリモート起動し、Restバージョンがアップグレードされた後、Spring Cloudは次のように変更されました.

    org.springframework.cloud
    spring-cloud-starter-openfeign

5.ロゴ4 jFeignは、Spring Boot 2.0.0.M7を削除に依存していますが、プロジェクトで使用されるlog4jspring-cloud-stream-binder-kafkaに依存していますので、手動でこの依存性を追加する必要があります.

    log4j
    log4j
    1.2.17

ソースアドレス:log4j