Кратко ръководство за Spring @Enable Annotations

1. Общ преглед

Spring идва с набор от анотации @Enable , които улесняват разработчиците да конфигурират приложение Spring . Тези пояснения се използват заедно с пояснението @Configuration .

В тази статия ще разгледаме някои от тези пояснения:

  • @EnableWebMvc
  • @EnableCaching
  • @EnableScheduling
  • @EnableAsync
  • @EnableWebSocket
  • @EnableJpaRepositories
  • @EnableTransactionManagement
  • @EnableJpaAuditing

2. @EnableWebMvc

В @EnableWebMvc анотацията се използва за което позволява Spring MVC в заявление и работи чрез импортиране на пролетния MVC конфигурация от WebMvcConfigurationSupport .

XML еквивалентът с подобна функционалност е .

Конфигурацията може да бъде персонализирана от класа @Configuration, реализиращ WebMvcConfigurer :

@Configuration @EnableWebMvc public class SpringMvcConfig implements WebMvcConfigurer { @Override public void configureMessageConverters( List
    
      converters) { converters.add(new MyHttpMessageConverter()); } // ... }
    

3. @EnableCaching

В @EnableCaching анотацията позволява анотация задвижване управление кеш капацитет в рамките на прилагането и ни позволява да използваме @Cacheable и @CacheEvict анотации в нашата молба.

XML еквивалентът с подобна функционалност е пространство от имена:

@Configuration @EnableCaching public class CacheConfig { @Bean public CacheManager cacheManager() { SimpleCacheManager cacheManager = new SimpleCacheManager(); cacheManager.setCaches( Arrays.asList(new ConcurrentMapCache("default"))); return cacheManager; } }

Тази анотация също има следните опции:

  • режим - показва как трябва да се прилагат съветите за кеширане
  • order - показва подреждането на съветника за кеширане на изпълнението, когато се прилага в определена точка на присъединяване
  • proxyTargetClass - указва дали прокситата, базирани на подклас (CGLIB), трябва да бъдат създадени за разлика от стандартните прокси сървъри, базирани на Java

Тази конфигурация отново може да бъде персонализирана от класа @Configuration, изпълняващ класа CachingConfigurerSupport :

@Configuration @EnableCaching public class CacheConfig extends CachingConfigurerSupport { @Bean @Override public CacheManager cacheManager() { SimpleCacheManager cacheManager = new SimpleCacheManager(); cacheManager.setCaches( Arrays.asList(new ConcurrentMapCache("default"))); return cacheManager; } @Bean @Override public KeyGenerator keyGenerator() { return new MyKeyGenerator(); } }

За повече информация относно използването на Spring кеширане можете да се обърнете към тази статия.

4. @EnableScheduling

В @EnableScheduling анотацията позволява планирано възможности за изпълнение на задачи и ни позволява да използваме @Scheduled анотации в заявлението. XML еквивалентът с подобна функционалност епространство от имена, използвайки атрибута на планировчика .

Тази конфигурация отново може да бъде персонализирана от класа @Configuration, реализиращ класа SchedulingConfigurer :

@Configuration @EnableScheduling public class SchedulingConfig implements SchedulingConfigurer { @Override public void configureTasks( ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.setScheduler(taskExecutor()); } @Bean(destroyMethod = "shutdown") public Executor taskExecutor() { return Executors.newScheduledThreadPool(100); } }

За повече информация относно използването на пролетно планиране можете да се обърнете към тази статия.

5. @EnableAsync

В @EnableAsync анотацията позволява асинхронна обработка в нашата молба . XML еквивалентът с подобна функционалност епространство от имена, използвайки атрибута изпълнител .

@Configuration @EnableAync public class AsyncConfig { ... }

За повече информация относно използването на Spring async можете да се обърнете към тази статия.

6. @EnableWebSocket

В @EnableWebSocket анотацията се използва за конфигуриране на обработката на заявки за уеб гнездо . Персонализирането може да се извърши чрез внедряване на класа WebSocketConfigurer :

@Configuration @EnableWebSocket public class MyConfiguration implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(echoWebSocketHandler(), "/echo").withSockJS(); } @Bean public WebSocketHandler echoWebSocketHandler() { return new EchoWebSocketHandler(); } }

За повече информация относно използването на Spring Websockets можете да се обърнете към тази статия.

7. @EnableJpaRepositories

В @EnableJpaRepositories анотацията дава данни за пролетния СПА хранилища чрез сканиране на пакета на анотиран конфигурация класа за хранилища.

@Configuration @EnableJpaRepositories public class JpaConfig { ... }

Някои опции, налични за тази анотация, са:

  • стойност - псевдоним за basePackages () атрибут
  • basePackages - базови пакети за сканиране на коментирани компоненти
  • enableDefaultTransaction - конфигурира дали да активирате транзакции по подразбиране за хранилища Spring Data JPA
  • entityManagerFactoryRef - конфигурира името надефинициятана обект EntityManagerFactory, която да се използва

8. @EnableTransactionManagement

В @EnableTransactionManagement анотацията позволява анотация задвижване на управленския капацитет в сделка Пролет е . XML еквивалентът е пространство от имена.

@Configuration @EnableTransactionManagement public class JpaConfig { ... }

За повече информация относно използването на Spring Transaction Management можете да се обърнете към тази статия.

9. @EnableJpaAuditing

В @EnableJpaAuditing анотацията позволява одит на вашите СПА лица .

@Configuration @EnableJpaAuditing public class JpaConfig { @Bean public AuditorAware auditorProvider() { return new AuditorAwareImpl(); } }

За повече информация относно използването на Spring Web Sockets можете да се обърнете към тази статия.

10. Заключение

В тази кратка статия разгледахме някои @Enable Spring анотации и как те могат да бъдат използвани, за да ни помогнат да конфигурираме Spring Application.