Panduan Cepat untuk Anotasi Spring @Enable

1. Ikhtisar

Spring hadir dengan serangkaian anotasi @Enable yang memudahkan pengembang untuk mengonfigurasi aplikasi Spring . Anotasi ini digunakan bersama dengan anotasi @Configuration .

Pada artikel ini kita akan melihat beberapa anotasi ini:

  • @EnakYuk
  • @Enable
  • @Aktifitas penjadwalan
  • @EnableAss
  • @Tokopedia
  • @EnakPramuka
  • @EnableTransactionManagement
  • @Bayu_joo

2. @EnableWebvc

The @EnableWebMvc penjelasan digunakan untuk memungkinkan Spring MVC dalam aplikasi dan bekerja dengan mengimpor Spring MVC Konfigurasi dari WebMvcConfigurationSupport .

Setara XML dengan fungsionalitas serupa adalah .

Konfigurasi tersebut dapat disesuaikan oleh kelas @Configuration yang mengimplementasikan WebMvcConfigurer :

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

3. @EnableCaching

The @EnableCaching penjelasan memungkinkan manajemen cache penjelasan-driven kemampuan dalam aplikasi dan memungkinkan kita untuk menggunakan @Cacheable dan @CacheEvict penjelasan dalam aplikasi kita.

Setara XML dengan fungsionalitas serupa adalah namespace:

@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 memiliki opsi berikut:

  • mode - menunjukkan bagaimana saran cache harus diterapkan
  • order - menunjukkan urutan penasihat caching eksekusi ketika diterapkan pada titik gabungan tertentu
  • proxyTargetClass - menunjukkan apakah proxy berbasis subclass (CGLIB) akan dibuat sebagai lawan dari proxy standar berbasis antarmuka Java

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

Untuk mengetahui lebih lanjut tentang menggunakan Spring caching, Anda dapat merujuk ke artikel ini.

4. @EnableScheduling

The @EnableScheduling penjelasan memungkinkan dijadwalkan kemampuan tugas dan memungkinkan kita untuk menggunakan @Scheduled penjelasan dalam aplikasi. Setara XML dengan fungsionalitas serupa adalahnamespace menggunakan atribut scheduler .

Konfigurasi ini sekali lagi dapat disesuaikan oleh kelas @Configuration yang mengimplementasikan 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 tentang menggunakan penjadwalan Musim Semi, Anda dapat merujuk ke artikel ini.

5. @EnableAsync

The @EnableAsync penjelasan memungkinkan pengolahan asynchronous dalam aplikasi kita . Setara XML dengan fungsionalitas serupa adalahnamespace menggunakan atribut pelaksana .

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

Untuk mengetahui lebih lanjut tentang menggunakan asinkron Spring, Anda dapat merujuk ke artikel ini.

6. @EnableSocket

The @EnableWebSocket penjelasan digunakan untuk mengkonfigurasi pengolahan permintaan web socket . Kustomisasi dapat dilakukan dengan mengimplementasikan 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 tentang menggunakan Spring Websockets, Anda dapat merujuk ke artikel ini.

7. @EnableJpaRepositories

The @EnableJpaRepositories penjelasan memungkinkan Musim Semi data JPA repositori dengan memindai paket kelas konfigurasi dijelaskan untuk repositori.

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

Beberapa opsi yang tersedia untuk anotasi ini adalah:

  • nilai - alias untukatribut basePackages ()
  • basePackages - paket dasar untuk memindai komponen beranotasi
  • enableDefaultTransactions - mengonfigurasi apakah akan mengaktifkan transaksi default untuk repositori JPA Spring Data atau tidak
  • entityManagerFactoryRef - mengkonfigurasi namadefinisi kacang EntityManagerFactory yang akan digunakan

8. @EnableTransactionManagement

The @EnableTransactionManagement penjelasan memungkinkan kemampuan manajemen transaksi penjelasan-driven Spring . Setara XML adalah namespace.

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

Untuk lebih lanjut tentang menggunakan Manajemen Transaksi Musim Semi, Anda dapat merujuk ke artikel ini.

9. @EnableJpaAuditing

The @EnableJpaAuditing penjelasan memungkinkan audit pada entitas JPA Anda .

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

Untuk lebih lanjut tentang menggunakan Spring Web Sockets, Anda dapat merujuk ke artikel ini.

10. Kesimpulan

Dalam artikel singkat ini, kami melihat beberapa anotasi @Enable Spring dan bagaimana anotasi tersebut dapat digunakan untuk membantu kami mengonfigurasi Aplikasi Spring.