Panduan Pantas ke Musim Bunga @Mengaktifkan Anotasi

1. Gambaran keseluruhan

Spring dilengkapi dengan satu set anotasi @Enable yang memudahkan pembangun mengkonfigurasi aplikasi Spring . Anotasi ini digunakan bersama dengan anotasi @Configuration .

Dalam artikel ini kita akan melihat beberapa penjelasan berikut:

  • @EnableWebMvc
  • @AnableCaching
  • @EnableScheduling
  • @EnableAsync
  • @EnableWebSocket
  • @AnableJpaRepositori
  • @EnableTransactionManagement
  • @EnableJpaAuditing

2. @EnableWebMvc

The @EnableWebMvc anotasi digunakan untuk membolehkan Spring MVC dalam aplikasi dan kerja-kerja dengan mengimport Spring MVC Konfigurasi dari WebMvcConfigurationSupport .

Setaraf XML dengan fungsi serupa adalah .

Konfigurasi dapat disesuaikan oleh kelas @Configuration yang menerapkan WebMvcConfigurer :

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

3. @AnableCaching

The @EnableCaching anotasi membolehkan pengurusan cache anotasi yang didorong oleh keupayaan dalam permohonan itu dan membolehkan kita untuk menggunakan @Cacheable dan @CacheEvict anotasi dalam permohonan kami.

Setara XML dengan fungsi yang serupa adalah ruang nama:

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

Anotasi ini juga mempunyai pilihan berikut:

  • mod - menunjukkan bagaimana nasihat cache harus diterapkan
  • pesanan - menunjukkan urutan penasihat caching pelaksanaan apabila digunakan pada titik gabungan tertentu
  • proxyTargetClass - menunjukkan sama ada proksi berasaskan subkelas (CGLIB) akan dibuat berbanding dengan proksi berasaskan antara muka Java standard

Konfigurasi ini lagi boleh disesuaikan oleh @Configuration kelas melaksanakan CachingConfigurerSupport kelas:

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

Untuk lebih lanjut mengenai penggunaan Spring caching, anda boleh merujuk artikel ini.

4. @EnableScheduling

The @EnableScheduling anotasi membolehkan dijadualkan keupayaan tugas dan membolehkan kita untuk menggunakan @Scheduled anotasi dalam permohonan itu. Setara XML dengan fungsi yang serupa adalahruang nama menggunakan atribut penjadual .

Konfigurasi ini sekali lagi dapat disesuaikan oleh kelas @Configuration yang melaksanakan kelas 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); } }

Untuk lebih lanjut mengenai penggunaan penjadualan musim bunga, anda boleh merujuk artikel ini.

5. @EnableAsync

The @EnableAsync anotasi membolehkan pemprosesan tak segerak dalam permohonan kami . Setara XML dengan fungsi yang serupa adalahruang nama menggunakan atribut pelaksana .

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

Untuk lebih lanjut mengenai penggunaan Spring async, anda boleh merujuk artikel ini.

6. @EnableWebSocket

The @EnableWebSocket anotasi digunakan untuk mengkonfigurasi pemprosesan permintaan soket web . Penyesuaian dapat dilakukan dengan menerapkan kelas 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(); } }

Untuk lebih lanjut mengenai penggunaan Spring Websockets, anda boleh merujuk artikel ini.

7. @EnableJpaRepositori

The @EnableJpaRepositories anotasi membolehkan repositori Spring Data JPA dengan mengimbas pakej kelas konfigurasi anotasi untuk repositori.

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

Beberapa pilihan yang tersedia untuk anotasi ini adalah:

  • nilai - alias untuk basePackages () atribut
  • basePackages - pakej asas untuk mengimbas komponen yang dianotasi
  • allowDefaultTransactions - mengkonfigurasi sama ada atau tidak untuk mengaktifkan transaksi lalai untuk repositori Spring Data JPA
  • entitiManagerFactoryRef - mengkonfigurasi namadefinisi kacang EntityManagerFactory untuk digunakan

8. @EnableTransactionManagement

The @EnableTransactionManagement anotasi membolehkan keupayaan pengurusan transaksi anotasi yang didorong oleh Spring . Setara XML adalah ruang nama.

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

Untuk lebih lanjut mengenai penggunaan Spring Transaction Management, anda boleh merujuk artikel ini.

9. @AnableJpaAuditing

The @EnableJpaAuditing anotasi membolehkan pengauditan ke atas entiti JPA anda .

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

Untuk lebih lanjut mengenai penggunaan Spring Web Sockets, anda boleh merujuk artikel ini.

10. Kesimpulannya

Dalam artikel ringkas ini, kami melihat beberapa anotasi @Enable Spring dan bagaimana ia dapat digunakan untuk membantu kami mengkonfigurasi Aplikasi Spring.