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.