Beknopte handleiding voor de Spring @Enable-annotaties

1. Overzicht

De lente wordt geleverd met een set @Inschakelen annotaties die het voor ontwikkelaars gemakkelijker maken om een ​​Spring-applicatie te configureren. Deze annotaties zijn gebruikt in combinatie met de @Configuratie annotatie.

In dit artikel zullen we enkele van deze annotaties bekijken:

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

2. @EnableWebMvc

De @EnableWebMvc annotatie wordt gebruikt voor Spring MVC inschakelen in een applicatie en werkt door het importeren van de Spring MVC-configuratie van WebMvcConfigurationSupport.

Het XML-equivalent met vergelijkbare functionaliteit is .

De configuratie kan worden aangepast door de @Configuratie klasse die het WebMvcConfigurer:

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

3. @EnableCaching

De @EnableCaching annotatie maakt annotatiegestuurd cachebeheer mogelijk mogelijkheid binnen de applicatie en stelt ons in staat om de @Cacheable en @CacheEvict annotaties in onze applicatie.

Het XML-equivalent met vergelijkbare functionaliteit is het naamruimte:

@Configuration @EnableCaching openbare klasse CacheConfig {@Bean openbare CacheManager cacheManager () {SimpleCacheManager cacheManager = nieuwe SimpleCacheManager (); cacheManager.setCaches (Arrays.asList (nieuwe ConcurrentMapCache ("standaard"))); terug cacheManager; }}

Deze annotatie heeft ook de volgende opties:

  • modus - geeft aan hoe het cachingadvies moet worden toegepast
  • bestellen - geeft de volgorde aan van de executiecacheadviseur wanneer deze wordt toegepast op een specifiek joinpoint
  • proxyTargetClass - geeft aan of op subklassen gebaseerde (CGLIB) proxy's moeten worden gemaakt in tegenstelling tot standaard op Java-interface gebaseerde proxy's

Deze configuratie kan opnieuw worden aangepast door de @Configuratie klasse die het CachingConfigurerSupport klasse:

@Configuration @EnableCaching openbare klasse CacheConfig breidt CachingConfigurerSupport uit {@Bean @Override openbare CacheManager cacheManager () {SimpleCacheManager cacheManager = nieuwe SimpleCacheManager (); cacheManager.setCaches (Arrays.asList (nieuwe ConcurrentMapCache ("standaard"))); terug cacheManager; } @Bean @Override openbare KeyGenerator keyGenerator () {retourneer nieuwe MyKeyGenerator (); }}

Raadpleeg dit artikel voor meer informatie over het gebruik van Spring caching.

4. @EnableScheduling

De @EnableScheduling annotatie maakt geplande taakmogelijkheden mogelijk en stelt ons in staat om te gebruiken @Verwacht annotaties in de applicatie. Het XML-equivalent met vergelijkbare functionaliteit is het naamruimte met behulp van de planner attribuut.

Deze configuratie kan opnieuw worden aangepast door de @Configuratie klasse die het SchedulingConfigurer klasse:

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

Raadpleeg dit artikel voor meer informatie over het gebruik van voorjaarsplanning.

5. @EnableAsync

De @EnableAsync annotatie maakt asynchrone verwerking in onze applicatie mogelijk. Het XML-equivalent met vergelijkbare functionaliteit is het naamruimte met behulp van de uitvoerder attribuut.

@Configuration @EnableAync openbare klasse AsyncConfig {...}

Raadpleeg dit artikel voor meer informatie over het gebruik van Spring async.

6. @EnableWebSocket

De @EnableWebSocket annotatie wordt gebruikt configureer de verwerking van websockets-verzoeken. Aanpassing kan worden gedaan door het implementeren van het WebSocketConfigurer klasse:

@Configuration @EnableWebSocket publieke klasse MyConfiguration implementeert WebSocketConfigurer {@Override public void registerWebSocketHandlers (WebSocketHandlerRegistry register) {registry.addHandler (echoWebSocketHandler (), "/ echo"). WithSockJS (); } @Bean openbare WebSocketHandler echoWebSocketHandler () {retourneer nieuwe EchoWebSocketHandler (); }}

Raadpleeg dit artikel voor meer informatie over het gebruik van Spring Websockets.

7. @EnableJpaRepositories

De @EnableJpaRepositories annotatie maakt Spring Data JPA-repositories mogelijk door het pakket van de geannoteerde configuratieklasse voor opslagplaatsen te scannen.

@Configuration @EnableJpaRepositories openbare klasse JpaConfig {...}

Enkele beschikbare opties voor deze annotatie zijn:

  • waarde - alias voor de basePackages () attribuut
  • basePackages - basispakketten om te scannen op geannoteerde componenten
  • enableDefaultTransactions - configureert of standaardtransacties moeten worden ingeschakeld voor Spring Data JPA-opslagplaatsen
  • entiteitManagerFactoryRef - configureert de naam van het EntityManagerFactory boondefinitie die moet worden gebruikt

8. @EnableTransactionManagement

De @EnableTransactionManagement annotatie maakt de annotatiegestuurde transactiebeheermogelijkheden van Spring mogelijk. Het XML-equivalent is het naamruimte.

@Configuration @EnableTransactionManagement openbare klasse JpaConfig {...}

Raadpleeg dit artikel voor meer informatie over het gebruik van Spring Transaction Management.

9. @EnableJpaAuditing

De @EnableJpaAuditing annotatie maakt auditing van uw PPV-entiteiten mogelijk.

@Configuration @EnableJpaAuditing openbare klasse JpaConfig {@Bean openbare AuditorAware auditorProvider () {retourneer nieuwe AuditorAwareImpl (); }}

Raadpleeg dit artikel voor meer informatie over het gebruik van Spring Web Sockets.

10. Conclusie

In dit korte artikel hebben we er enkele bekeken @Inschakelen Spring-annotaties en hoe ze kunnen worden gebruikt om ons te helpen bij het configureren van een Spring-applicatie.


$config[zx-auto] not found$config[zx-overlay] not found