知識庫 / Spring / Spring Boot RSS 訂閱

已棄用的 Spring 類

Spring Boot,Spring Security,Spring Web
HongKong
5
01:34 PM · Dec 06 ,2025

1. 引言

在本教程中,我們將探討 Spring 和 Spring Boot 中已棄用的類,並解釋這些類已被哪些類所取代。

我們將從 Spring 4 和 Spring Boot 1.4 開始進行探索。

2. Spring 中已過時的類

為了更方便閲讀,我們列出了類及其替換版本,基於 Spring 發佈版本。並且,在每個類分組內,我們按類名排序,不考慮包名。

2.1. Spring 4.0.x

  • org.springframework.cache.interceptor.DefaultKeyGenerator – 已替換為基於哈希碼的 SimpleKeyGenerator 或自定義 KeyGenerator 實現
  • org.springframework.jdbc.support.lob.OracleLobHandler – 對於 Oracle 10g 驅動程序及更高版本,默認使用 DefaultLobHandler;即使針對 Oracle 9i 數據庫也應考慮
  • org.springframework.test.AssertThrows – 應該使用 JUnit 4 的 @Test(expected=…) 支持,而不是
  • org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter – 使用 AllEncompassingFormHttpMessageConverter

該類在 Spring 4.0.2 中已棄用,轉而使用 CGLIB 3.1 的默認策略,並在 Spring 4.1 中被移除:

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

此 Spring 版本中所有已棄用的類、接口、字段、方法、構造函數和枚舉常量,可以在 官方文檔頁面 中找到。

2.2. Spring 4.1.x

  • org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapperBeanPropertyRowMapper
  • org.springframework.jdbc.core.simple.ParameterizedSingleColumnRowMapperSingleColumnRowMapper

可以在 Spring 4.1.x JavaDoc 中找到完整的列表。

2.3. Spring 4.2.x

  • org.springframework.web.servlet.view.document.AbstractExcelViewAbstractXlsView 和其 AbstractXlsxViewAbstractXlsxStreamingView 變體
  • org.springframework.format.number.CurrencyFormatterCurrencyStyleFormatter
  • org.springframework.messaging.simp.user.DefaultUserSessionRegistry – 我們應該使用 SimpUserRegistry 與監聽 AbstractSubProtocolEvent 事件的 ApplicationListener 結合使用
  • org.springframework.messaging.handler.HandlerMethodSelector – 泛化和改進的 MethodIntrospector
  • org.springframework.core.JdkVersion – 我們應該通過反射直接檢查所需的 JDK API 變體
  • org.springframework.format.number.NumberFormatterNumberStyleFormatter
  • org.springframework.format.number.PercentFormatterPercentStyleFormatter
  • org.springframework.test.context.transaction.TransactionConfigurationAttributes – 此類已隨 Spring 5 中移除的 @TransactionConfiguration 一起移除
  • org.springframework.oxm.xmlbeans.XmlBeansMarshaller – 隨着 Apache 對 XMLBeans 的退休

以下類已棄用,轉而使用 Apache Log4j 2:

  • 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.x JavaDoc

<h3>2.4. Spring 4.3.x</h3>
<p>This version of Spring brought lots of deprecated classes:</p>
<ul>
 <li><em><strong>org.springframework.web.servlet.mvc.method.annotation.AbstractJsonpResponseBodyAdvice</strong></em>&nbsp;<em>-</em>&nbsp;<em>this class is removed in Spring Framework 5.1; we should use CORS instead</li>
 <li><em><strong>org.springframework.oxm.castor.CastorMarshaller</strong></em>&nbsp;<em>-</em>&nbsp;deprecated due to the lack of activity on the Castor project</li>
 <li><em><strong>org.springframework.web.servlet.mvc.method.annotation.CompletionStageReturnValueHandler</strong></em>&nbsp;<em>-</em>&nbsp;<em>DeferredResultMethodReturnValueHandler, which now supports CompletionStage return values via an adapter mechanism</li>
 <li><em><strong>org.springframework.jdbc.support.incrementer.DB2MainframeSequenceMaxValueIncrementer</strong></em>&nbsp;<em>-</em>&nbsp;renamed to <em>Db2MainframeMaxValueIncrementer</li>
 <li><em><strong>org.springframework.jdbc.support.incrementer.DB2SequenceMaxValueIncrementer</strong></em>&nbsp;<em>-</em>&nbsp;renamed to <em>Db2LuwMaxValueIncrementer</li>
 <li><em><strong>org.springframework.core.GenericCollectionTypeResolver</strong></em>&nbsp;<em>-</em>&nbsp;deprecated in favor of direct <em>ResolvableType</em> usage</li>
 <li><em><strong>org.springframework.web.servlet.mvc.method.annotation.ListenableFutureReturnValueHandler</strong></em>&nbsp;<em>-</em>&nbsp;<em>DeferredResultMethodReturnValueHandler, which now supports ListenableFuture return values via an adapter mechanism</li>
 <li><em><strong>org.springframework.jdbc.support.incrementer.PostgreSQLSequenceMaxValueIncrementer</strong></em>&nbsp;<em>-</em>&nbsp;we should use <em>PostgresSequenceMaxValueIncrementer</em> instead</li>
 <li><em><strong>org.springframework.web.servlet.ResourceServlet</strong></em>&nbsp;<em>-</em>&nbsp;<em>ResourceHttpRequestHandler</li>
</ul>
<p>These classes are deprecated in favor of the <em>HandlerMethod</em>-based MVC infrastructure:</p>
<ul>
 <li><em><strong>org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping</strong></em></li>
 <li><em><strong>org.springframework.web.bind.annotation.support.HandlerMethodInvoker</strong></em></li>
 <li><em><strong>org.springframework.web.bind.annotation.support.HandlerMethodResolver</strong></em></li>
</ul>
<p>Several classes are deprecated in favor of annotation-driven handler methods:</p>
<ul>
 <li><em><strong>org.springframework.web.servlet.mvc.support.AbstractControllerUrlHandlerMapping</strong></em></li>
 <li><em><strong>org.springframework.web.servlet.mvc.multiaction.AbstractUrlMethodNameResolver</strong></em></li>
 <li><em><strong>org.springframework.web.servlet.mvc.support.ControllerBeanNameHandlerMapping</strong></em></li>
 <li><em><strong>org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver</strong></em></li>
 <li><em><strong>org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver</strong></em></li>
 <li><em><strong>org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver</strong></em></li>
</ul>
<p>There are also a lot of classes from Spring that we should replace with their Hibernate 4.x/5.x equivalents:</p>
<ul>
 <li><em><strong>org.springframework.orm.hibernate3.support.AbstractLobType</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.AbstractSessionFactoryBean</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.support.BlobByteArrayType</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.support.BlobSerializableType</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.support.BlobStringType</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.support.ClobStringType</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.FilterDefinitionFactoryBean</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.HibernateAccessor</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.support.HibernateDaoSupport</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.HibernateExceptionTranslator</strong></em></li>
 <li><em><strong>org.springframework.orm.jpa.vendor.HibernateJpaSessionFactoryBean</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.HibernateTemplate</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.HibernateTransactionManager</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.LocalJtaDataSourceConnectionProvider</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.LocalRegionFactoryProxy</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.LocalSessionFactoryBean</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.LocalTransactionManagerLookup</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.support.OpenSessionInterceptor</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor</strong></em></li>
 <li><em><strong>org.springframework.orm.hibernate3.support.ScopedBeanInterceptor</strong></em></li>
 <li> Fábrica de tipos: <em><strong>org.springframework.core.TypeDefinitionBean</strong></li>
 <li><em><strong>org.springframework.core.ControlFlowFactory</strong></em></li>
 <li><em><strong>org.springframework.util.WeakReferenceMonitor</strong></em></li>
</ul>
<p>Finally, there are also a couple of classes without an appropriate replacement:</p>
<ul>
 <li><em><strong>org.springframework.core.ControlFlowFactory</strong></em></li>
 <li><em><strong>org.springframework.util.WeakReferenceMonitor</strong></em></li>
</ul>
<p>As usual, the <a href="https://docs.spring.io/spring-framework/docs/4.3.x/javadoc-api/deprecated-list.html">Spring 4.3.x JavaDoc</a> contains the complete list.</p>
<h3>2.5. Spring 5.0.x</h3>
<ul>
  <li><em><strong>org.springframework.web.reactive.support.AbstractAnnotationConfigDispatcherHandlerInitializer</strong></em> – 已棄用,改為使用 <em>AbstractReactiveWebInitializer</em></li>
  <li><em><strong>org.springframework.web.util.AbstractUriTemplateHandler</strong></em> <em>–</em> 默認使用 <em>DefaultUriBuilderFactory</em></li>
  <li><em><strong>org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer</strong></em> – 已棄用,改為直接使用 <em>WebSocketMessageBrokerConfigurer</em>,該配置已支持 Java 8 基線,並提供默認方法</li>
  <li><em><strong>org.springframework.web.client.AsyncRestTemplate</strong></em> <em>–</em>  已取代為 <em>WebClient</em></li>
  <li><em><strong>org.springframework.web.context.request.async.CallableProcessingInterceptorAdapter</strong></em> – 已棄用,因為 <em>CallableProcessingInterceptor</em> 提供了默認方法</li>
  <li><em><strong>org.springframework.messaging.support.ChannelInterceptorAdapter</strong></em> – 已棄用,因為 <em>ChannelInterceptor</em> 提供了默認方法(Java 8 基線支持)並且可以直接實現,無需使用此適配器</li>
  <li><em><strong>org.springframework.util.comparator.CompoundComparator</strong></em> – 已棄用,改為使用 JDK 8 標準 <em>Comparator.thenComparing(Comparator)</em></li>
  <li><em><strong>org.springframework.web.util.DefaultUriTemplateHandler</strong></em> <em>–</em>  默認使用 <em>DefaultUriBuilderFactory</em>;  需要注意的是,<em>DefaultUriBuilderFactory</em> 的默認值對於 <em>parsePath</em> 屬性不同,已從 <em>false</em> 變為 <em>true</em></li>
  <li><em><strong>org.springframework.web.context.request.async.DeferredResultProcessingInterceptorAdapter</strong></em> –  因為 <em>DeferredResultProcessingInterceptor</em> 提供了默認方法</li>
  <li><em><strong>org.springframework.util.comparator.InvertibleComparator</strong></em> – 已棄用,改為使用 JDK 8 標準 <em>Comparator.reversed()</em></li>
  <li><em><strong>org.springframework.http.client.Netty4ClientHttpRequestFactory</strong></em> <em>–</em> 已棄用,改為使用 <em>ReactorClientHttpConnector</em></li>
  <li><em><strong>org.apache.commons.logging.impl.SimpleLog</strong></em> <em>–</em> 已移動到 <em>spring-jcl</em> (相當於 <em>NoOpLog</em>)</li>
  <li><em><strong>org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter</strong></em> <em>–</em>  <em>WebMvcConfigurer</em> 提供了默認方法(Java 8 基線支持)並且可以直接實現,無需使用此適配器</li>
  <li><em><strong>org.springframework.beans.factory.config.YamlProcessor.StrictMapAppenderConstructor</strong></em> <em>–</em> 已被 SnakeYAML 自身的重複鍵處理所取代</li>
</ul>
<p>我們有兩類已棄用,改為使用 <em>AbstractReactiveWebInitializer</em>:</p>
<ul>
  <li><em><strong>org.springframework.web.reactive.support.AbstractDispatcherHandlerInitializer</strong></em></li>
  <li><em><strong>org.springframework.web.reactive.support.AbstractServletHttpHandlerAdapterInitializer</strong></em></li>
</ul>
<p>並且,以下類沒有替代方案:</p>
<ul>
  <li><em><strong>org.springframework.http.client.support.AsyncHttpAccessor</strong></em></li>
  <li><em><strong>org.springframework.http.client.HttpComponentsAsyncClientHttpRequestFactory</strong></em></li>
  <li><em><strong>org.springframework.http.client.InterceptingAsyncClientHttpRequestFactory</strong></em></li>
  <li><em><strong>org.springframework.http.client.support.InterceptingAsyncHttpAccessor</strong></em></li>
  <li><em><strong>org.springframework.mock.http.client.MockAsyncClientHttpRequest</strong></em></li>
</ul>
<p>完整的列表可以在 <a href="https://docs.spring.io/spring-framework/docs/5.0.x/javadoc-api/deprecated-list.html">Spring 5.0.x JavaDoc</a> 中找到。</p>
<h3>2.6. Spring 5.1.x</h3>
<ul>
  <li><em><strong>org.springframework.http.client.support.BasicAuthorizationInterceptor</strong></em> – 已棄用,改為 <em>BasicAuthenticationInterceptor</em>,該類重用 <em>HttpHeaders.setBasicAuth(java.lang.String, java.lang.String)</em>,並共享默認字符集 ISO-8859-1,而不是之前使用的 UTF-8</li>
  <li><em><strong>org.springframework.jdbc.core.BatchUpdateUtils</strong></em> – 不再由 <em>JdbcTemplate</em> 使用</li>
  <li><em><strong>org.springframework.web.reactive.function.client.ExchangeFilterFunctions.Credentials</strong></em> – 在構建請求時,應使用 <em>HttpHeaders.setBasicAuth(String, String)</em> 方法</li>
  <li><em><strong>org.springframework.web.filter.reactive.ForwardedHeaderFilter</strong></em> – 已棄用,改為使用 <em>ForwardedHeaderTransformer</em>,該類可以作為 Bean 命名為 <em>forwardedHeaderTransformer</em> 或在 <em>WebHttpHandlerBuilder</em> 中顯式註冊</li>
  <li><em><strong>org.springframework.jdbc.core.namedparam.NamedParameterBatchUpdateUtils</strong></em> – 不再由 <em>NamedParameterJdbcTemplate</em> 使用</li>
  <li><em><strong>org.springframework.core.io.PathResource</strong></em> <em>–</em> <em>FileSystemResource.FileSystemResource(Path)</em></li>
  <li><em><strong>org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor</strong></em> – 建議使用構造函數注入設置(或自定義 <em>InitializingBean</em> 實現)</li>
  <li><em><strong>org.springframework.remoting.caucho.SimpleHessianServiceExporter</strong></em> – <em>HessianServiceExporter</em></li>
  <li><em><strong>org.springframework.remoting.httpinvoker.SimpleHttpInvokerServiceExporter</strong></em> – <em>HttpInvokerServiceExporter</em></li>
  <li><em><strong>org.springframework.remoting.support.SimpleHttpServerFactoryBean</strong></em> – 內嵌 Tomcat/Jetty/Undertow</li>
  <li><em><strong>org.springframework.remoting.jaxws.SimpleHttpServerJaxWsServiceExporter</strong></em> – <em>SimpleJaxWsServiceExporter</em></li>
</ul>
<p>這些已棄用,改為使用 Java EE 7 的 <em>EncodedResourceResolver</em>:</p>
<ul>
  <li><em><strong>org.springframework.web.reactive.resource.GzipResourceResolver</strong></em></li>
  <li><em><strong>org.springframework.web.servlet.resource.GzipResourceResolver</strong></em></li>
</ul>
<p>有幾個類已棄用,改為使用 Java EE 7 的 <em>DefaultManagedTaskScheduler</em>:</p>
<ul>
  <li><em><strong>org.springframework.scheduling.commonj.DelegatingTimerListener</strong></em></li>
  <li><em><strong>org.springframework.scheduling.commonj.ScheduledTimerListener</strong></em></li>
  <li><em><strong>org.springframework.scheduling.commonj.TimerManagerAccessor</strong></em></li>
  <li><em><strong>org.springframework.scheduling.commonj.TimerManagerFactoryBean</strong></em></li>
  <li><em><strong>org.springframework.scheduling.commonj.TimerManagerTaskScheduler</strong></em></li>
</ul>
<p>此外,還有幾個已棄用,改為使用 Java EE 7 的 <em>DefaultManagedTaskExecutor</em>:</p>
<ul>
  <li><em><strong>org.springframework.scheduling.commonj.DelegatingWork</strong></em></li>
  <li><em><strong>org.springframework.scheduling.commonj.WorkManagerTaskExecutor</strong></em></li>
</ul>
<p>最後,有一個類已棄用,沒有替代方案:</p>
<ul>
  <li><em><strong>org.apache.commons.logging.LogFactoryService</strong></em></li>
</ul>
<p>有關更多詳細信息,請參閲官方 <a href="https://docs.spring.io/spring-framework/docs/5.1.x/javadoc-api/deprecated-list.html">Spring 5.1.x JavaDoc on deprecated classes</a>。</p>

3. Spring Boot 中已過時的類

現在,讓我們回顧一下 Spring Boot 中已過時的類,回溯到 1.4 版本。

需要注意的是,對於 Spring Boot 1.4 和 1.5 版本,大多數替換類保留了其原始名稱,但已移動到不同的包。因此,在接下來的子章節中,我們將使用完全限定類名,用於描述既已過時的類,也用於描述替換類。

<h3>3.1. Spring Boot 1.4.x</h3>
<ul>
  <li><em><strong>org.springframework.boot.actuate.system.ApplicationPidFileWriter</strong></em> – 已棄用,改為 <em>org.springframework.boot.system.ApplicationPidFileWriter</em></li>
  <li><em><strong>org.springframework.boot.yaml.ArrayDocumentMatcher</strong></em> – 已棄用,改為基於字符串的精確匹配 <em>String</em></li>
  <li><em><strong>org.springframework.boot.test.ConfigFileApplicationContextInitializer</strong></em> – 已棄用</li>
  <li><em><strong>org.springframework.boot.yaml.DefaultProfileDocumentMatcher</strong></em> – 已不再使用</li>
  <li><em><strong>org.springframework.boot.context.embedded.DelegatingFilterProxyRegistrationBean</strong></em> – 已棄用,改為 <em>org.springframework.boot.web.servlet.DelegatingFilterProxyRegistrationBean</em></li>
  <li><em><strong>org.springframework.boot.actuate.system.EmbeddedServerPortFileWriter</strong></em> – 已棄用,改為 <em>org.springframework.boot.system.EmbeddedServerPortFileWriter</em></li>
  <li><em><strong>org.springframework.boot.test.EnvironmentTestUtils</strong></em> – 已棄用,改為 <em>org.springframework.boot.test.util.EnvironmentTestUtils</em></li>
  <li><em><strong>org.springframework.boot.context.embedded.ErrorPage</strong></em> – 已棄用,改為 <em>org.springframework.boot.web.servlet.ErrorPage</em></li>
  <li><em><strong>org.springframework.boot.context.web.ErrorPageFilter</strong></em> – 已棄用,改為 <em>org.springframework.boot.web.support.ErrorPageFilter</em></li>
  <li><em><strong>org.springframework.boot.context.embedded.FilterRegistrationBean</strong></em> – 已棄用,改為 <em>org.springframework.boot.web.servlet.FilterRegistrationBean</em></li>
  <li><em><strong>org.springframework.boot.test.IntegrationTestPropertiesListener</strong></em> – 已不再使用,由 @IntegrationTest 類使用</li>
  <li><em><strong>org.springframework.boot.context.embedded.MultipartConfigFactory</strong></em> – 已棄用,改為 <em>org.springframework.boot.web.servlet.MultipartConfigFactory</em></li>
  <li><em><strong>org.springframework.boot.context.web.OrderedCharacterEncodingFilter</strong></em> – 已棄用,改為 <em>org.springframework.boot.web.filter.OrderedCharacterEncodingFilter</em></li>
  <li><em><strong>org.springframework.boot.context.web.OrderedHiddenHttpMethodFilter</strong></em> – 已棄用,改為 <em>org.springframework.boot.web.filter.OrderedHiddenHttpMethodFilter</em></li>
  <li><em><strong>org.springframework.boot.context.web.OrderedHttpPutFormContentFilter</strong></em> – 已棄用,改為 <em>org.springframework.boot.web.filter.OrderedHttpPutFormContentFilter</em></li>
  <li><em><strong>org.springframework.boot.context.web.OrderedRequestContextFilter</strong></em> – 已棄用,改為 <em>org.springframework.boot.web.filter.OrderedRequestContextFilter</em></li>
  <li><em><strong>org.springframework.boot.test.OutputCapture</strong></em> – 已棄用,改為 <em>org.springframework.boot.test.rule.OutputCapture</em></li>
  <li><em><strong>org.springframework.boot.context.web.ServerPortInfoApplicationContextInitializer</strong></em> – 已棄用,改為 <em>org.springframework.boot.context.embedded.ServerPortInfoApplicationContextInitializer</em></li>
  <li><em><strong>org.springframework.boot.context.web.ServletContextApplicationContextInitializer</strong></em> – 已棄用,改為 <em>org.springframework.boot.web.support.ServletContextApplicationContextInitializer</em></li>
  <li><em><strong>org.springframework.boot.context.embedded.ServletListenerRegistrationBean</strong></em> – 已棄用,改為 <em>org.springframework.boot.web.servlet.ServletListenerRegistrationBean</em></li>
  <li><em><strong>org.springframework.boot.context.embedded.ServletRegistrationBean</strong></em> – 已棄用,改為 <em>org.springframework.boot.web.servlet.ServletRegistrationBean</em></li>
  <li><em><strong>org.springframework.boot.test.SpringApplicationContextLoader</strong></em> – 已棄用,改為 @SpringBootTest; 如果需要,也可以使用 <em>org.springframework.boot.test.context.SpringBootContextLoader</em></li>
  <li><em><strong>org.springframework.boot.test.SpringBootMockServletContext</strong></em> – 已棄用,改為 <em>org.springframework.boot.test.mock.web.SpringBootMockServletContext</em></li>
  <li><em><strong>org.springframework.boot.context.web.SpringBootServletInitializer</strong></em> – 已棄用,改為 <em>org.springframework.boot.web.support.SpringBootServletInitializer</em></li>
  <li><em><strong>org.springframework.boot.test.TestRestTemplate</strong></em> – 已棄用,改為 <em>org.springframework.boot.test.web.client.TestRestTemplate</em></li>
</ul>
<p>由於 Velocity 支持在 Spring Framework 4.3 中已棄用,因此以下類也在 Spring Boot 中已棄用:</p>
<ul>
  <li><em><strong>org.springframework.boot.web.servlet.view.velocity.EmbeddedVelocityViewResolver</strong></em></li>
  <li><em><strong>org.springframework.boot.autoconfigure.velocity.VelocityAutoConfiguration</strong></em></li>
  <li><em><strong>org.springframework.boot.autoconfigure.velocity.VelocityAutoConfiguration.VelocityConfiguration</strong></em></li>
  <li><em><strong>org.springframework.boot.autoconfigure.velocity.VelocityAutoConfiguration.VelocityNonWebConfiguration</strong></em></li>
  <li><em><strong>org.springframework.boot.autoconfigure.velocity.VelocityAutoConfiguration.VelocityWebConfiguration</strong></em></li>
  <li><em><strong>org.springframework.boot.autoconfigure.velocity.VelocityProperties</strong></em></li>
  <li><em><strong>org.springframework.boot.autoconfigure.velocity.VelocityTemplateAvailabilityProvider</strong></em></li>
</ul>
<p>Spring Boot 1.4.x 的 JavaDoc 包含完整的列表:<a href="https://docs.spring.io/spring-boot/docs/1.4.x/api/deprecated-list.html">https://docs.spring.io/spring-boot/docs/1.4.x/api/deprecated-list.html</a></p>

3.2. Spring Boot 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  – 由於 Spring Framework 5 中已移除對 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 已不再積極維護:

  • 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 Boot 1.5.x JavaDoc 站點

3.3. Spring Boot 2.0.x

  1. org.springframework.boot.test.util.EnvironmentTestUtils – 已棄用,取而代之的是 TestPropertyValues
  2. org.springframework.boot.actuate.metrics.web.reactive.server.RouterFunctionMetrics – 已棄用,取而代之的是自動配置的 MetricsWebFilter

還有一類沒有替代品:

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

請參閲 https://docs.spring.io/spring-boot/docs/2.0.x/api/deprecated-list.html 以獲取更多詳細信息。

3.4. Spring Boot 2.1.x

  1. org.springframework.boot.actuate.health.CompositeHealthIndicatorFactory – 已棄用,取而代之的是 CompositeHealthIndicator.CompositeHealthIndicator(HealthAggregator, HealthIndicatorRegistry)
  2. org.springframework.boot.actuate.health.CompositeReactiveHealthIndicatorFactory – 已棄用,取而代之的是 CompositeReactiveHealthIndicator.CompositeReactiveHealthIndicator(HealthAggregator, ReactiveHealthIndicatorRegistry)

最後,我們可以查閲完整的棄用列表:棄用類和接口的完整列表

4. 結論

在本教程中,我們探討了從 Spring 4 及 Spring Boot 1.4 版本開始,已棄用的類,以及它們對應的替代方案(如果可用)。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.