1. 序章

このチュートリアルでは、SpringとSpring Bootで非推奨になったクラスを見て、これらが何に置き換えられたかを説明します。

Spring4およびSpring Boot1.4以降のクラスについて説明します。

2. 春に廃止されたクラス

読みやすくするために、Springリリースに基づいたクラスとその代替をリストします。 また、クラスの各グループ内で、パッケージに関係なく、クラス名で並べ替えています。

2.1. Spring 4.0.x

  • org.springframework.cache.interceptor.DefaultKeyGenerator は、ハッシュコードに基づくSimpleKeyGeneratorまたはカスタムKeyGenerator実装に置き換えられました
  • org.springframework.jdbc.support.lob.OracleLobHandler DefaultLobHandler (Oracle 10gドライバー以降)。 Oracle9iデータベースに対しても検討する必要があります
  • org.springframework.test.AssertThrows 代わりに、JUnit4の@Test(expected =…)サポートを利用する必要があります
  • org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter  AllEncompassingFormHttpMessageConverter

次のクラスは、Spring 4.0.2で非推奨になり、CGLIB 3.1のデフォルトの戦略が採用され、Spring4.1で削除されました。

  • org.springframework.cglib.transform.impl.MemorySafeUndeclaredThrowableStrategy

このSpringバージョンのすべての非推奨クラス、および非推奨のインターフェイス、フィールド、メソッド、コンストラクター、および列挙型定数は、公式ドキュメントページにあります。

2.2. 春4.1.x

  • org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper  BeanPropertyRowMapper
  • org.springframework.jdbc.core.simple.ParameterizedSingleColumnRowMapper  SingleColumnRowMapper

の完全なリストは、Spring 4.1.xJavaDocにあります。

2.3. 春4.2.x

  • org.springframework.web.servlet.view.document.AbstractExcelView AbstractXlsViewとそのAbstractXlsxViewおよびAbstractXlsxStreamingViewバリアント
  • org.springframework.format.number.CurrencyFormatter  CurrencyStyleFormatter
  • org.springframework.messaging.simp.user.DefaultUserSessionRegistry SimpUserRegistry を、ApplicationListenerと組み合わせて使用する必要があります。 X202X]AbstractSubProtocolEventイベント
  • org.springframework.messaging.handler.HandlerMethodSelector 一般化および改良されたMethodIntrospector
  • org.springframework.core.JdkVersion リフレクションを介して目的のJDKAPIバリアントを直接チェックする必要があります
  • org.springframework.format.number.NumberFormatter  NumberStyleFormatter
  • org.springframework.format.number.PercentFormatter  PercentStyleFormatter
  • org.springframework.test.context.transaction.TransactionConfigurationAttributes このクラスは、Spring5で@TransactionConfigurationとともに削除されます
  • ApacheでのXMLBeansの引退後、 org.springframework.oxm.xmlbeans.XmlBeansMarshaller

次のクラスは廃止され、ApacheLog4j2が採用されました。

  • org.springframework.web.util.Log4jConfigListener
  • org.springframework.util.Log4jConfigurer
  • org.springframework.web.filter.Log4jNestedDiagnosticContextFilter
  • org.springframework.web.context.request.Log4jNestedDiagnosticContextInterceptor
  • org.springframework.web.util.Log4jWebConfigurer

詳細については、 Spring 4.2.xJavaDocを参照してください。

2.4. 春4.3.x

このバージョンのSpringは、多くの非推奨クラスをもたらしました。

  • org.springframework.web.servlet.mvc.method.annotation.AbstractJsonpResponseBodyAdvice このクラスはSpringFramework5.1で削除されました。 代わりにCORSを使用する必要があります
  • org.springframework.oxm.castor.CastorMarshaller は、Castorプロジェクトでのアクティビティが不足しているため、非推奨になりました。
  • org.springframework.web.servlet.mvc.method.annotation.CompletionStageReturnValueHandler DeferredResultMethodReturnValueHandler は、CompletionStageの戻り値をサポートするようになりました。アダプターメカニズム
  • org.springframework.jdbc.support.incrementer.DB2MainframeSequenceMaxValueIncrementer の名前がDb2MainframeMaxValueIncrementerに変更されました
  • org.springframework.jdbc.support.incrementer.DB2SequenceMaxValueIncrementer の名前がDb2LuwMaxValueIncrementerに変更されました
  • org.springframework.core.GenericCollectionTypeResolver は非推奨になり、ResolvableTypeを直接使用できるようになりました。
  • org.springframework.web.servlet.mvc.method.annotation.ListenableFutureReturnValueHandler DeferredResultMethodReturnValueHandler ListenableFutureの戻り値をサポートするようになりましたアダプターメカニズム
  • org.springframework.jdbc.support.incrementer.PostgreSQLSequenceMaxValueIncrementer 代わりにPostgresSequenceMaxValueIncrementerを使用する必要があります
  • org.springframework.web.servlet.ResourceServlet  ResourceHttpRequestHandler

これらのクラスは、HandlerMethodベースのMVCインフラストラクチャを優先して非推奨になりました。

  • org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping
  • org.springframework.web.bind.annotation.support.HandlerMethodInvoker
  • org.springframework.web.bind.annotation.support.HandlerMethodResolver

アノテーション駆動型ハンドラーメソッドを優先して、いくつかのクラスは非推奨になりました。

  • org.springframework.web.servlet.mvc.support.AbstractControllerUrlHandlerMapping
  • org.springframework.web.servlet.mvc.multiaction.AbstractUrlMethodNameResolver
  • org.springframework.web.servlet.mvc.support.ControllerBeanNameHandlerMapping
  • org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver
  • org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver
  • org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver

Springには、Hibernate 4.x/5.xに相当するものに置き換える必要のあるクラスもたくさんあります。

  • org.springframework.orm.hibernate3.support.AbstractLobType
  • org.springframework.orm.hibernate3.AbstractSessionFactoryBean
  • org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
  • org.springframework.orm.hibernate3.support.BlobByteArrayType
  • org.springframework.orm.hibernate3.support.BlobSerializableType
  • org.springframework.orm.hibernate3.support.BlobStringType
  • org.springframework.orm.hibernate3.support.ClobStringType
  • org.springframework.orm.hibernate3.FilterDefinitionFactoryBean
  • org.springframework.orm.hibernate3.HibernateAccessor
  • org.springframework.orm.hibernate3.support.HibernateDaoSupport
  • org.springframework.orm.hibernate3.HibernateExceptionTranslator
  • org.springframework.orm.jpa.vendor.HibernateJpaSessionFactoryBean
  • org.springframework.orm.hibernate3.HibernateTemplate
  • org.springframework.orm.hibernate3.HibernateTransactionManager
  • org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener
  • org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
  • org.springframework.orm.hibernate3.LocalJtaDataSourceConnectionProvider
  • org.springframework.orm.hibernate3.LocalRegionFactoryProxy
  • org.springframework.orm.hibernate3.LocalSessionFactoryBean
  • org.springframework.orm.hibernate3.LocalTransactionManagerLookup
  • org.springframework.orm.hibernate3.support.OpenSessionInterceptor
  • org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
  • org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor
  • org.springframework.orm.hibernate3.support.ScopedBeanInterceptor
  • org.springframework.orm.hibernate3.SessionFactoryUtils
  • org.springframework.orm.hibernate3.SessionHolder
  • org.springframework.orm.hibernate3.SpringSessionContext
  • org.springframework.orm.hibernate3.SpringTransactionFactory
  • org.springframework.orm.hibernate3.TransactionAwareDataSourceConnectionProvider
  • org.springframework.orm.hibernate3.TypeDefinitionBean

FreeMarker を優先して、いくつかのクラスが廃止されました。

  • org.springframework.web.servlet.view.velocity.VelocityConfigurer
  • org.springframework.ui.velocity.VelocityEngineFactory
  • org.springframework.ui.velocity.VelocityEngineFactoryBean
  • org.springframework.ui.velocity.VelocityEngineUtils
  • org.springframework.web.servlet.view.velocity.VelocityLayoutView
  • org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver
  • org.springframework.web.servlet.view.velocity.VelocityToolboxView
  • org.springframework.web.servlet.view.velocity.VelocityView
  • org.springframework.web.servlet.view.velocity.VelocityViewResolver

これらのクラスはSpringFramework5.1で削除されており、代わりに他のトランスポートを使用する必要があります。

  • org.springframework.web.socket.sockjs.transport.handler.JsonpPollingTransportHandler
  • org.springframework.web.socket.sockjs.transport.handler.JsonpReceivingTransportHandler

最後に、適切な置換がないクラスもいくつかあります。

  • org.springframework.core.ControlFlowFactory
  • org.springframework.util.WeakReferenceMonitor

いつものように、 Spring 4.3.xJavaDocには完全なリストが含まれています。

2.5. Spring 5.0.x

  • org.springframework.web.reactive.support.AbstractAnnotationConfigDispatcherHandlerInitializer は廃止され、 AbstractReactiveWebInitializer
  • org.springframework.web.util.AbstractUriTemplateHandler  DefaultUriBuilderFactory
  • org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer は廃止され、WebSocketMessageBrokerConfigurerを使用するようになりました。 Java8ベースライン
  • org.springframework.web.client.AsyncRestTemplate   WebClient
  • org.springframework.web.context.request.async.CallableProcessingInterceptorAdapter は、 CallableProcessingInterceptor にデフォルトのメソッドがあるため、非推奨になりました
  • org.springframework.messaging.support.ChannelInterceptorAdapter は、 ChannelInterceptor にデフォルトのメソッド(Java 8ベースラインによって可能)があり、なしで直接実装できるため、非推奨になりました。このno-opアダプターの必要性
  • org.springframework.util.comparator.CompoundComparator は廃止され、標準のJDK 8 Comparator.thenComparing(Comparator)が採用されました。
  • org.springframework.web.util.DefaultUriTemplateHandler DefaultUriBuilderFactory ; DefaultUriBuilderFactoryparsePathプロパティのデフォルト値が異なることに注意してください(falseからtrueに変更)
  • org.springframework.web.context.request.async.DeferredResultProcessingInterceptorAdapter DeferredResultProcessingInterceptor にはデフォルトのメソッドがあるため、
  • org.springframework.util.comparator.InvertibleComparator は廃止され、標準のJDK 8 Comparator.reversed()が採用されました。
  • org.springframework.http.client.Netty4ClientHttpRequestFactory は廃止され、ReactorClientHttpConnectorが採用されました。
  • org.apache.commons.logging.impl.SimpleLog spring-jcl に移動しました(実質的に NoOpLog と同等)
  • org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter WebMvcConfigurer にはデフォルトのメソッド(Java 8ベースラインによって可能)があり、直接実装できます。このアダプタは必要ありません
  • org.springframework.beans.factory.config.YamlProcessor.StrictMapAppenderConstructor は、SnakeYAML独自の重複キー処理に置き換えられました

AbstractReactiveWebInitializerを優先して非推奨の2つのクラスがあります。

  • org.springframework.web.reactive.support.AbstractDispatcherHandlerInitializer
  • org.springframework.web.reactive.support.AbstractServletHttpHandlerAdapterInitializer

また、次のクラスには置換がありません。

  • org.springframework.http.client.support.AsyncHttpAccessor
  • org.springframework.http.client.HttpComponentsAsyncClientHttpRequestFactory
  • org.springframework.http.client.InterceptingAsyncClientHttpRequestFactory
  • org.springframework.http.client.support.InterceptingAsyncHttpAccessor
  • org.springframework.mock.http.client.MockAsyncClientHttpRequest

完全なリストは、 Spring 5.0.xJavaDocにあります。

2.6. 春5.1.x

  • org.springframework.http.client.support.BasicAuthorizationInterceptor は廃止され、 HttpHeaders.setBasicAuth(java.lang。 String、java.lang.String)であり、以前のようにUTF-8を使用する代わりに、デフォルトの文字セットISO-8859-1を共有するようになりました。
  • org.springframework.jdbc.core.BatchUpdateUtils JdbcTemplateで使用されなくなりました
  • org.springframework.web.reactive.function.client.ExchangeFilterFunctions.Credentials ビルド中にHttpHeaders.setBasicAuth(String、String)メソッドを使用する必要がありますリクエスト
  • org.springframework.web.filter.reactive.ForwardedHeaderFilter このフィルターは廃止され、 ForwardedHeaderTransformer を使用するようになりました。これは、 「forwardedHeaderTransformer」という名前を付けるか、WebHttpHandlerBuilderに明示的に登録します
  • org.springframework.jdbc.core.namedparam.NamedParameterBatchUpdateUtils NamedParameterJdbcTemplateでは使用されなくなりました
  • org.springframework.core.io.PathResource   FileSystemResource.FileSystemResource(Path)
  • org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor 必要な設定(またはカスタム InitializingBean 実装)にコンストラクターインジェクションを使用する必要があります
  • org.springframework.remoting.caucho.SimpleHessianServiceExporter   HessianServiceExporter
  • org.springframework.remoting.httpinvoker.SimpleHttpInvokerServiceExporter   HttpInvokerServiceExporter
  • org.springframework.remoting.support.SimpleHttpServerFactoryBean 組み込みTomcat/ Jetty / Undertow
  • org.springframework.remoting.jaxws.SimpleHttpServerJaxWsServiceExporter   SimpleJaxWsServiceExporter

EncodedResourceResolver を優先して、これらは非推奨になりました。

  • org.springframework.web.reactive.resource.GzipResourceResolver
  • org.springframework.web.servlet.resource.GzipResourceResolver

JavaEE7のDefaultManagedTaskSchedulerを優先して非推奨になったクラスがいくつかあります。

  • org.springframework.scheduling.commonj.DelegatingTimerListener
  • org.springframework.scheduling.commonj.ScheduledTimerListener
  • org.springframework.scheduling.commonj.TimerManagerAccessor
  • org.springframework.scheduling.commonj.TimerManagerFactoryBean
  • org.springframework.scheduling.commonj.TimerManagerTaskScheduler

また、JavaEE7のDefaultManagedTaskExecutorを優先して、いくつかは非推奨になっています。

  • org.springframework.scheduling.commonj.DelegatingWork
  • org.springframework.scheduling.commonj.WorkManagerTaskExecutor

最後に、1つのクラスは代替なしで非推奨になります。

  • org.apache.commons.logging.LogFactoryService

詳細については、非推奨クラスに関する公式の Spring 5.1.xJavaDocを参照してください。

3. SpringBootの非推奨クラス

それでは、Spring Bootで廃止されたバージョン1.4に戻ったクラスを見てみましょう。

ここで、Spring Boot 1.4および1.5の場合、ほとんどの置換クラスは元の名前を保持していましたが、別のパッケージに移動されていることに注意してください。 したがって、次の2つのサブセクションでは、非推奨クラスと置換クラスの両方に完全修飾クラス名を使用します。

3.1. Spring Boot 1.4.x

  • org.springframework.boot.actuate.system.ApplicationPidFileWriter は廃止され、org.springframework.boot.system.ApplicationPidFileWriterが採用されました。
  • org.springframework.boot.yaml.ArrayDocumentMatcher は廃止され、正確なStringベースのマッチングが採用されました
  • org.springframework.boot.test.ConfigFileApplicationContextInitializer   org.springframework.boot.test.context.ConfigFileApplicationContextInitializer
  • org.springframework.boot.yaml.DefaultProfileDocumentMatcher 使用されなくなりました
  • org.springframework.boot.context.embedded.DelegatingFilterProxyRegistrationBean   org.springframework.boot.web.servlet.DelegatingFilterProxyRegistrationBean
  • org.springframework.boot.actuate.system.EmbeddedServerPortFileWriter   org.springframework.boot.system.EmbeddedServerPortFileWriter
  • org.springframework.boot.test.EnvironmentTestUtils   org.springframework.boot.test.util.EnvironmentTestUtils
  • org.springframework.boot.context.embedded.ErrorPage   org.springframework.boot.web.servlet.ErrorPage
  • org.springframework.boot.context.web.ErrorPageFilter   org.springframework.boot.web.support.ErrorPageFilter
  • org.springframework.boot.context.embedded.FilterRegistrationBean   org.springframework.boot.web.servlet.FilterRegistrationBean
  • org.springframework.boot.test.IntegrationTestPropertiesListener @IntegrationTestでは使用されなくなりました
  • org.springframework.boot.context.embedded.MultipartConfigFactory   org.springframework.boot.web.servlet.MultipartConfigFactory
  • org.springframework.boot.context.web.OrderedCharacterEncodingFilter   org.springframework.boot.web.filter.OrderedCharacterEncodingFilter
  • org.springframework.boot.context.web.OrderedHiddenHttpMethodFilter   org.springframework.boot.web.filter.OrderedHiddenHttpMethodFilter
  • org.springframework.boot.context.web.OrderedHttpPutFormContentFilter   org.springframework.boot.web.filter.OrderedHttpPutFormContentFilter
  • org.springframework.boot.context.web.OrderedRequestContextFilter   org.springframework.boot.web.filter.OrderedRequestContextFilter
  • org.springframework.boot.test.OutputCapture   org.springframework.boot.test.rule.OutputCapture
  • org.springframework.boot.context.web.ServerPortInfoApplicationContextInitializer org.springframework.boot.context.embedded.ServerPortInfoApplicationContextInitializer
  • org.springframework.boot.context.web.ServletContextApplicationContextInitializer   org.springframework.boot.web.support.ServletContextApplicationContextInitializer
  • org.springframework.boot.context.embedded.ServletListenerRegistrationBean   org.springframework.boot.web.servlet.ServletListenerRegistrationBean
  • org.springframework.boot.context.embedded.ServletRegistrationBean   org.springframework.boot.web.servlet.ServletRegistrationBean
  • org.springframework.boot.test.SpringApplicationContextLoader は廃止され、@SpringBootTestが採用されました。 必要に応じて、org.springframework.boot.test.context.SpringBootContextLoaderを使用することもできます。
  • org.springframework.boot.test.SpringBootMockServletContext   org.springframework.boot.test.mock.web.SpringBootMockServletContext
  • org.springframework.boot.context.web.SpringBootServletInitializer   org.springframework.boot.web.support.SpringBootServletInitializer
  • org.springframework.boot.test.TestRestTemplate   org.springframework.boot.test.web.client.TestRestTemplate

VelocityのサポートはSpringFramework4.3で非推奨になっているため、次のクラスもSpringBootで非推奨になっています。

  • org.springframework.boot.web.servlet.view.velocity.EmbeddedVelocityViewResolver
  • org.springframework.boot.autoconfigure.velocity.VelocityAutoConfiguration
  • org.springframework.boot.autoconfigure.velocity.VelocityAutoConfiguration.VelocityConfiguration
  • org.springframework.boot.autoconfigure.velocity.VelocityAutoConfiguration.VelocityNonWebConfiguration
  • org.springframework.boot.autoconfigure.velocity.VelocityAutoConfiguration.VelocityWebConfiguration
  • org.springframework.boot.autoconfigure.velocity.VelocityProperties
  • org.springframework.boot.autoconfigure.velocity.VelocityTemplateAvailabilityProvider

Spring Boot 1.4.xJavaDocに完全なリストがあります。

3.2. スプリングブート1.5.x

  • org.springframework.boot.context.event.ApplicationStartedEvent は廃止され、org.springframework.boot.context.event.ApplicationStartingEventが採用されました。
  • org.springframework.boot.autoconfigure.EnableAutoConfigurationImportSelector は廃止され、 org.springframework.boot.autoconfigure.AutoConfigurationImportSelector
  • org.springframework.boot.actuate.cache.GuavaCacheStatisticsProvider SpringFramework5でのGuavaサポートの削除後
  • org.springframework.boot.loader.tools.Layouts.Module は廃止され、カスタムLayoutFactoryが採用されました。
  • org.springframework.boot.autoconfigure.MessageSourceAutoConfiguration は廃止され、 org.springframework.boot.autoconfigure.context.MessageSourceAutoConfiguration
  • org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration は廃止され、 org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration
  • org.springframework.boot.actuate.autoconfigure.ShellProperties CRaSHがアクティブに維持されていないため、非推奨になりました

CRaSHがアクティブに維持されていないため、これら2つのクラスは非推奨になりました。

  • org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration
  • org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration.AuthenticationManagerAdapterConfiguration

置き換えのないクラスもいくつかあります。

  • org.springframework.boot.autoconfigure.cache.CacheProperties.Hazelcast
  • org.springframework.boot.autoconfigure.jdbc.metadata.CommonsDbcpDataSourcePoolMetadata
  • org.springframework.boot.autoconfigure.mustache.MustacheCompilerFactoryBean

非推奨となったものの完全なリストを確認するには、公式のSpring Boot1.5.xJavaDocサイトを参照してください。

3.3. Spring Boot 2.0.x

  • org.springframework.boot.test.util.EnvironmentTestUtils は廃止され、TestPropertyValuesが採用されました。
  • org.springframework.boot.actuate.metrics.web.reactive.server.RouterFunctionMetrics は廃止され、自動構成された MetricsWebFilter

そして、1つのクラスには代替がありません:

  • org.springframework.boot.actuate.autoconfigure.couchbase.CouchbaseHealthIndicatorProperties

詳細については、Spring Boot2.0.x非推奨リストを確認してください。

3.4. Spring Boot 2.1.x

  • org.springframework.boot.actuate.health.CompositeHealthIndicatorFactory は廃止され、 CompositeHealthIndicator.CompositeHealthIndicator(HealthAggregator、HealthIndicatorRegistry)[X212
  • org.springframework.boot.actuate.health.CompositeReactiveHealthIndicatorFactory は廃止され、 CompositeReactiveHealthIndicator.CompositeReactiveHealthIndicator(HealthAggregator、ReactiveHeal

最後に、Spring Boot2.1.x非推奨のクラスとインターフェイスの完全なリストを参照できます。

4. 結論

このチュートリアルでは、バージョン4以降のSpringおよびバージョン1.4以降のSpring Bootで廃止されたクラスと、それらに対応する代替クラス(利用可能な場合)について説明しました。