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 ; DefaultUriBuilderFactoryのparsePathプロパティのデフォルト値が異なることに注意してください(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で廃止されたクラスと、それらに対応する代替クラス(利用可能な場合)について説明しました。