1. введение
В этом уроке мы рассмотрим устаревшие классы в Spring и Spring Boot и объясним, чем они были заменены.
Мы рассмотрим классы, начиная с Spring 4 и Spring Boot 1.4.
2. Устаревшие классы весной
Для удобства чтения мы перечислим классы и их замены на основе весеннего выпуска. И в каждой группе классов мы отсортировали их по имени класса, независимо от пакета.
2.1. Пружина 4.0.x
- org.springframework.cache.interceptor.DefaultKeyGenerator – заменен на SimpleKeyGenerator или пользовательские KeyGenerator реализации на основе хэш-кодов
- org.springframework.jdbc.support.lob.OracleLobHandler – | DefaultLobHandler для драйвера Oracle 10g и выше; мы должны рассмотреть его даже в отношении базы данных Oracle 9i org.springframework.test.AssertThrows
- – вместо этого мы должны использовать поддержку JUnit 4 @Test(expected=…) org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter
- –//| AllEncompassingFormHttpMessageConverter
Следующий класс был устаревшим с весны 4.0.2 в пользу стратегии CGLIB 3.1 по умолчанию и был удален весной 4.1:
- Следующий класс был устаревшим с весны 4.0.2 в пользу стратегии CGLIB 3.1 по умолчанию и был удален весной 4.1:
Все устаревшие классы, а также устаревшие интерфейсы, поля, методы, конструкторы и константы перечисления для этой версии Spring можно найти на официальной странице документации .
2.2. Пружина 4.1.x
- org.springframework.jdbc.core.simple.Параметризованный BeanPropertyRowMapper |/– |/BeanPropertyRowMapper org.springframework.jdbc.core.simple.ParameterizedSingleColumnRowMapper |/–
- |/SingleColumnRowMapper
Мы можем найти полный список в Spring 4.1.x JavaDoc .
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 прослушиванием AbstractSubProtocolEvent событий org.springframework.обмен сообщениями.обработчик.HandlerMethodSelector |/– обобщенный и уточненный методинтроспектор org.springframework.core.JdkVersion
- – мы должны выполнять прямые проверки желаемых вариантов API JDK с помощью отражения org.springframework.format.number.NumberFormatter |/–
- /NumberStyleFormatter org.springframework.format.number.PercentFormatter |/– |/PercentStyleFormatter
- org.springframework.test.context.transaction.TransactionConfigurationAttributes – этот класс удаляется вместе с @TransactionConfiguration весной 5
- org.springframework.oxm.xmlbeans.XmlBeansMarshaller – после XMLBeans выхода на пенсию в Apache
Следующие классы устарели в пользу Apache Log4j 2:
- Следующие классы устарели в пользу Apache Log4j 2:
- Следующие классы устарели в пользу Apache Log4j 2:
- Следующие классы устарели в пользу Apache Log4j 2:
- Следующие классы устарели в пользу Apache Log4j 2:
- Следующие классы устарели в пользу Apache Log4j 2:
Более подробная информация доступна в Spring 4.2.x JavaDoc .
2.4. Пружина 4.3.x
Эта версия Spring принесла много устаревших классов:
- org.springframework.web.servlet.mvc.method.аннотация.AbstractJsonpResponseBodyAdvice – |/этот класс удален в Spring Framework 5.1; вместо этого мы должны использовать CORS org.springframework.oxm.castor.CastorMarshaller
- – устарел из-за отсутствия активности в проекте Castor org.springframework.web.servlet.mvc.method.аннотация.CompletionStageReturnValueHandler
- |/– | DeferredResultMethodReturnValueHandler , который теперь поддерживает CompletionStage возвращаемые значения через механизм адаптера org.springframework.jdbc.support.incrementer.DB2MainframeSequenceMaxValueIncrementer |/– переименован в
- Db2MainframeMaxValueIncrementer org.springframework.jdbc.support.incrementer.DB2SequenceMaxValueIncrementer – переименован в Db2LuwMaxValueIncrementer
- org.springframework.core.GenericCollectionTypeResolver |/– устарел в пользу прямого разрешающего типа
- использования org.springframework.web.servlet.mvc.method.аннотация.ListenableFutureReturnValueHandler – DeferredResultMethodReturnValueHandler
- , который теперь поддерживает ListenableFuture возвращаемые значения через механизм адаптера org.springframework.jdbc.support.incrementer.PostgreSQLSequenceMaxValueIncrementer |/– вместо этого мы должны использовать PostgresSequenceMaxValueIncrementer
- org.springframework.web.servlet.ResourceServlet |/– |/ResourceHttpRequestHandler
Эти классы устарели в пользу метода обработчика на основе инфраструктуры MVC:
- Эти классы устарели в пользу
- метода обработчика
- на основе инфраструктуры MVC:
Несколько классов устарели в пользу методов обработчика, управляемых аннотациями:
- Несколько классов устарели в пользу методов обработчика, управляемых аннотациями:
- Несколько классов устарели в пользу методов обработчика, управляемых аннотациями:
- Несколько классов устарели в пользу методов обработчика, управляемых аннотациями:
- Несколько классов устарели в пользу методов обработчика, управляемых аннотациями:
- Несколько классов устарели в пользу методов обработчика, управляемых аннотациями:
- Несколько классов устарели в пользу методов обработчика, управляемых аннотациями:
Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
- Есть также много классов из Spring, которые мы должны заменить их эквивалентами Hibernate 4.x/5.x:
Несколько классов устарели в пользу FreeMarker:
- Несколько классов устарели в пользу FreeMarker:
- Несколько классов устарели в пользу FreeMarker:
- Несколько классов устарели в пользу FreeMarker:
- Несколько классов устарели в пользу FreeMarker:
- Несколько классов устарели в пользу FreeMarker:
- Несколько классов устарели в пользу FreeMarker:
- Несколько классов устарели в пользу FreeMarker:
- Несколько классов устарели в пользу FreeMarker:
- Несколько классов устарели в пользу FreeMarker:
Эти классы удаляются в Spring Framework 5.1, и вместо этого мы должны использовать другие транспорты:
- Эти классы удаляются в Spring Framework 5.1, и вместо этого мы должны использовать другие транспорты:
- Эти классы удаляются в Spring Framework 5.1, и вместо этого мы должны использовать другие транспорты:
Наконец, есть также несколько классов без соответствующей замены:
- Наконец, есть также несколько классов без соответствующей замены:
- Наконец, есть также несколько классов без соответствующей замены:
Как обычно, Spring 4.3.x JavaDoc содержит полный список.
2.5. Пружина 5.0.x
- org.springframework.web.reactive.support.AbstractAnnotationConfigDispatcherHandlerInitializer |/– устарел в пользу AbstractReactiveWebInitializer org.springframework.web.util.AbstractUriTemplateHandler
- |/– |/DefaultUriBuilderFactory org.springframework.web.socket.config.аннотация.AbstractWebSocketMessageBrokerConfigurer –
- устарел в пользу простого использования WebSocketMessageBrokerConfigurer , который имеет методы по умолчанию, что стало возможным благодаря базовому уровню Java 8 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(Компаратор) 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.аннотация.WebMvcConfigurerAdapter –
- WebMvcConfigurer |/имеет методы по умолчанию (что стало возможным благодаря базовому уровню Java 8) и может быть реализован напрямую без необходимости в этом адаптере org.springframework.beans.factory.config.YamlProcessor.StrictMapAppenderConstructor |/– заменен собственной обработкой дубликатов ключей SnakeYaml
У нас есть два класса, которые устарели в пользу Абстрактного реактивного вебинициализатора :
- У нас есть два класса, которые устарели в пользу
- Абстрактного реактивного вебинициализатора
И, следующие классы не имеют замен:
- И, следующие классы не имеют замен:
- И, следующие классы не имеют замен:
- И, следующие классы не имеют замен:
- И, следующие классы не имеют замен:
- И, следующие классы не имеют замен:
Полный список доступен в Spring 5.0.x JavaDoc .
2.6. Пружина 5.1.x
- org.springframework.http.client.support.BasicAuthorizationInterceptor |/– устарел в пользу BasicAuthenticationInterceptor , который повторно использует HttpHeaders.setBasicAuth(java.lang.Строка, java.lang.Строка) и теперь использует свою кодировку по умолчанию ISO-8859-1 вместо использования UTF-8, как это было ранее org.springframework.jdbc.core.BatchUpdateUtils
- |/– больше не используется JdbcTemplate org.springframework.web.reactive.function.client.Функции фильтра обмена.Учетные данные |/–
- мы должны использовать метод 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(Путь) org.springframework.beans.factory.аннотация.RequiredAnnotationBeanPostProcessor
- – |/мы должны использовать инъекцию конструктора для требуемых настроек (или пользовательскую InitializingBean реализация) org.springframework.remoting.cucho.SimpleHessianServiceExporter |/–
- |/HessianServiceExporter org.springframework.remoting.httpinvoker.SimpleHttpInvokerServiceExporter |/– |/HttpInvokerServiceExporter org.springframework.remoting.support.SimpleHttpServerFactoryBean |/–
- встроенный Tomcat/Причал/Подводное течение org.springframework.remoting.jaxws.SimpleHttpServerJaxWsServiceExporter |/– |/SimpleJaxWsServiceExporter
Они устарели в пользу Encoded ResourceResolver :
- Они устарели в пользу
- Encoded ResourceResolver
Существует несколько классов, которые устарели в пользу Java EE 7 Планировщик управляемых задач по умолчанию :
- Существует несколько классов, которые устарели в пользу Java EE 7
- Планировщик управляемых задач по умолчанию
- :
- Существует несколько классов, которые устарели в пользу Java EE 7
- Планировщик управляемых задач по умолчанию
И некоторые из них устарели в пользу Java EE 7 Управляемый по умолчанию TaskExecutor :
- И некоторые из них устарели в пользу Java EE 7
- Управляемый по умолчанию TaskExecutor
Наконец, один класс устарел без замены:
- Наконец, один класс устарел без замены:
Для получения более подробной информации см. Официальный Spring 5.1.x JavaDoc об устаревших классах .
3. Устаревшие классы в весенней загрузке
Теперь давайте посмотрим на устаревшие классы в Spring Boot до версии 1.4.
Здесь мы должны отметить, что для Spring Boot 1.4 и 1.5 большинство классов замены сохранили свои первоначальные имена, но были перемещены в разные пакеты . Поэтому мы используем полные имена классов в следующих двух подразделах как для устаревших, так и для замещающих классов.
3.1. Пружинный ботинок 1.4.x
- org.springframework.boot.actuate.system.ApplicationPidFileWriter |/– устарел в пользу org.springframework.boot.system.ApplicationPidFileWriter org.springframework.boot.yaml.ArrayDocumentMatcher
- |/– устарел в пользу точного строкового сопоставления на основе org.springframework.boot.test.ConfigFileApplicationContextInitializer |/–
- /org.springframework.boot.test.context.ConfigFileApplicationContextInitializer org.springframework.boot.yaml.DefaultProfileDocumentMatcher |/– он больше не используется org.springframework.boot.context.embedded.Делегирование filterproxyregistrationbean
- |/– | org.springframework.boot.web.servlet.Делегирование filterproxyregistrationbean org.springframework.boot.actuate.system.EmbeddedServerPortFileWriter |/–
- //org.springframework.boot.system.EmbeddedServerPortFileWriter org.springframework.boot.test.EnvironmentTestUtils |/– //org.springframework.boot.test.util.Окружающая среда org.springframework.boot.context.embedded.Страница ошибок
- |/– |/org.springframework.boot.web.servlet.Страница ошибок 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.orderedhiddenhttpmethod filter |/–
- /org.springframework.boot.web.filter.Orderedhiddenhttpmethod фильтр 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.servletcontextapplication contextinitializer
- |/– /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
Поскольку поддержка скорости устарела в Spring Framework 4.3, следующие классы также устарели в Spring Boot:
- Поскольку поддержка скорости устарела в Spring Framework 4.3, следующие классы также устарели в Spring Boot:
- Поскольку поддержка скорости устарела в Spring Framework 4.3, следующие классы также устарели в Spring Boot:
- Поскольку поддержка скорости устарела в Spring Framework 4.3, следующие классы также устарели в Spring Boot:
- Поскольку поддержка скорости устарела в Spring Framework 4.3, следующие классы также устарели в Spring Boot:
- Поскольку поддержка скорости устарела в Spring Framework 4.3, следующие классы также устарели в Spring Boot:
- Поскольку поддержка скорости устарела в Spring Framework 4.3, следующие классы также устарели в Spring Boot:
- Поскольку поддержка скорости устарела в Spring Framework 4.3, следующие классы также устарели в Spring Boot:
Spring Boot 1.4.x JavaDoc имеет полный список.
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.Автоконфигурацияимпортселектор org.springframework.boot.actuate.cache.GuavaCacheStatisticsProvider |/–
- после удаления поддержки Guava в Spring Framework 5 org.springframework.boot.loader.tools.Макеты.Модуль |/– устарел в пользу пользовательского
- 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
- – устарел, так как сбой не поддерживается активно
Эти два класса устарели, так как сбой не поддерживается активно:
- Эти два класса устарели, так как сбой не поддерживается активно:
- Эти два класса устарели, так как сбой не поддерживается активно:
Есть также несколько классов без замены:
- Есть также несколько классов без замены:
- Есть также несколько классов без замены:
- Есть также несколько классов без замены:
Чтобы просмотреть весь список того, что было устаревшим, мы можем обратиться к официальному сайту Spring Boot 1.5.xJavaDoc .
3.3. Пружинный ботинок 2.0.x
- org.springframework.boot.test.util.EnvironmentTestUtils |/– устарело в пользу TestPropertyValues org.springframework.boot.actuate.metrics.web.reactive.server.RouterFunctionMetrics
- |/– устарел в пользу автоматически настроенного MetricsWebFilter
И у одного класса нет замены:
- И у одного класса нет замены:
Пожалуйста, ознакомьтесь со списком устаревших для Spring Boot 2.0.x для получения более подробной информации.
3.4. Пружинный ботинок 2.1.x
- org.springframework.boot.actuate.здоровье.CompositeHealthIndicatorFactory |/– устарел в пользу CompositeHealthIndicator.CompositeHealthIndicator(HealthAggregator, HealthIndicatorRegistry) org.springframework.boot.actuate.здоровье.CompositeReactiveHealthIndicatorFactory
- |/– устарел в пользу CompositeReactiveHealthIndicator.CompositeReactiveHealthIndicator(HealthAggregator, ReactiveHealthIndicatorRegistry)
Наконец, мы можем ознакомиться с полным списком устаревших классов и интерфейсов в Spring Boot 2.1.x .
4. Заключение
В этом уроке мы изучили устаревшие классы в Spring начиная с версии 4 и Spring Boot с версии 1.4, а также их соответствующие замены, если таковые имеются.