Kurzanleitung zu den Spring @ Enable-Anmerkungen

1. Übersicht

Spring wird mit einer Reihe von @ Enable- Anmerkungen geliefert , die Entwicklern das Konfigurieren einer Spring-Anwendung erleichtern . Diese Anmerkungen werden in Verbindung mit der Anmerkung @Configuration verwendet .

In diesem Artikel werden wir uns einige dieser Anmerkungen ansehen:

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

2. @EnableWebMvc

Die Annotation @EnableWebMvc wird zum Aktivieren von Spring MVC in einer Anwendung verwendet und importiert die Spring MVC-Konfiguration aus WebMvcConfigurationSupport .

Das XML-Äquivalent mit ähnlicher Funktionalität ist .

Die Konfiguration kann durch die angepasst werden @Configuration Klasse der Umsetzung des WebMvcConfigurer :

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

3. @EnableCaching

Die Annotation @EnableCaching ermöglicht die Annotation-gesteuerte Cache-Verwaltung in der Anwendung und ermöglicht die Verwendung der Annotationen @Cacheable und @CacheEvict in unserer Anwendung.

Das XML-Äquivalent mit ähnlicher Funktionalität ist das Namespace:

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

Diese Anmerkung enthält auch die folgenden Optionen:

  • Modus - Gibt an, wie der Caching-Rat angewendet werden soll
  • order - Gibt die Reihenfolge des Execution Caching Advisor an, wenn dieser an einem bestimmten Joinpoint angewendet wird
  • proxyTargetClass - Gibt an, ob CGLIB-Proxys (Subclass-based) im Gegensatz zu Standard-Proxys auf Java-Schnittstellenbasis erstellt werden sollen

Diese Konfiguration kann erneut von der @ Configuration- Klasse angepasst werden, die die CachingConfigurerSupport- Klasse implementiert :

@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(); } }

Weitere Informationen zur Verwendung von Spring Caching finden Sie in diesem Artikel.

4. @EnableScheduling

Die Annotation @EnableScheduling aktiviert Funktionen für geplante Aufgaben und ermöglicht die Verwendung von Annotationen mit @Scheduled in der Anwendung. Das XML-Äquivalent mit ähnlicher Funktionalität ist dasNamespace mit dem Scheduler- Attribut.

Diese Konfiguration kann erneut von der @ Configuration- Klasse angepasst werden, die die SchedulingConfigurer- Klasse implementiert :

@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); } }

Weitere Informationen zur Verwendung der Frühlingsplanung finden Sie in diesem Artikel.

5. @EnableAsync

Die Annotation @EnableAsync ermöglicht die asynchrone Verarbeitung in unserer Anwendung . Das XML-Äquivalent mit ähnlicher Funktionalität ist dasNamespace mit dem Executor- Attribut.

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

Weitere Informationen zur Verwendung von Spring Async finden Sie in diesem Artikel.

6. @EnableWebSocket

Die Annotation @EnableWebSocket wird verwendet, um die Verarbeitung von Web-Socket-Anforderungen zu konfigurieren . Die Anpassung kann durch Implementieren der WebSocketConfigurer- Klasse erfolgen:

@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(); } }

Weitere Informationen zur Verwendung von Spring Websockets finden Sie in diesem Artikel.

7. @EnableJpaRepositories

Die Annotation @EnableJpaRepositories aktiviert Spring Data JPA-Repositorys, indem das Paket der mit Anmerkungen versehenen Konfigurationsklasse nach Repositorys durchsucht wird .

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

Einige für diese Anmerkung verfügbare Optionen sind:

  • Wert - Alias ​​für dasAttribut basePackages ()
  • basePackages - Basispakete zum Scannen nach kommentierten Komponenten
  • enableDefaultTransactions - Konfiguriert, ob Standardtransaktionen für Spring Data JPA-Repositorys aktiviert werden sollen
  • entityManagerFactoryRef - Konfiguriert den Namen derzu verwendenden EntityManagerFactory- Bean-Definition

8. @EnableTransactionManagement

Die Annotation @EnableTransactionManagement aktiviert die annotationsgesteuerte Transaktionsverwaltungsfunktion von Spring . Das XML-Äquivalent ist das Namespace.

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

Weitere Informationen zur Verwendung von Spring Transaction Management finden Sie in diesem Artikel.

9. @EnableJpaAuditing

Die Annotation @EnableJpaAuditing ermöglicht die Überwachung Ihrer JPA-Entitäten .

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

Weitere Informationen zur Verwendung von Spring Web Sockets finden Sie in diesem Artikel.

10. Schlussfolgerung

In diesem kurzen Artikel haben wir uns einige @ Enable Spring-Anmerkungen angesehen und erklärt, wie sie uns beim Konfigurieren einer Spring-Anwendung helfen können.