جاوا و تکنولوژی های آن

java programming language

در این وبلاگ به بررسی نکات موجود در جاوا و تکنولوژی های آن می پردازیم

طبقه بندی موضوعی


Spring Boot با تنظیمات اتوماتیکی که دارد کمک میکند سریعتر محیط کدنویسی را آماده کنیم و تمرکز اصلی را روی پیاده سازی منطق کد کنیم ولی گاهی ما این تنظیمات اتوماتیک را نمیخواهیم و دوست داریم تنظیمات دلخواه خودمان را اعمال کنیم در این بخش ما به دو روش غیر فعال کردن این تنظیمات برای دو دیتابیس Redis و MongoDB و Spring Data JPA میپردازیم 




روش غیر فعال سازی با Annotation :


کافی است کلاس هایی که این تنظیمات اتوماتیک را انجام میدهند بصورت Exclude ست کنیم :


Mongo :

@SpringBootApplication(exclude = {
    MongoAutoConfiguration.class, 
    MongoDataAutoConfiguration.class
})


Redis :

@SpringBootApplication(exclude = {
    RedisAutoConfiguration.class, 
    RedisRepositoryAutoConfiguration.class
})


Spring Data JPA :

@SpringBootApplication(exclude = {
    DataSourceAutoConfiguration.class, 
    DataSourceTransactionManagerAutoConfiguration.class, 
    HibernateJpaAutoConfiguration.class
})




روش غیر فعال سازی با فایل Properties در Spring Boot :




Mongo :

spring.autoconfigure.exclude= \
  org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, \
  org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration


Redis :

spring.autoconfigure.exclude= \
  org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration, \
  org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration


Spring Data JPA :

spring.autoconfigure.exclude= \ 
  org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration, \
  org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration, \
  org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration




Test کردن غیر فعال بودن تنظیمات اتوماتیک :


وقتی این تنظیمات اتوماتیک توسط Spring Boot ست میشود یکسری Bean برای کار بصورت اتوماتیک ایجاد میشود که وقتی ساخته نشوند متوجه میشویم که تنظیمات اتوماتیک اعمال نشده 



برای تست MongoDB نبود MongoTemplate Bean را چک میکنیم :


@Test(expected = NoSuchBeanDefinitionException.class)
public void givenAutoConfigDisabled_whenStarting_thenNoAutoconfiguredBeansInContext() { 
    context.getBean(MongoTemplate.class); 
}



برای تست Redis نبود  RedisTemplate Bean را چک میکنیم :


@Test(expected = NoSuchBeanDefinitionException.class)
public void givenAutoConfigDisabled_whenStarting_thenNoAutoconfiguredBeansInContext() {
    context.getBean(RedisTemplate.class);
}



برای تست Spring Data JPA نبود DataSource Bean را چک میکنیم :


@Test(expected = NoSuchBeanDefinitionException.class)
public void givenAutoConfigDisabled_whenStarting_thenNoAutoconfiguredBeansInContext() {
    context.getBean(DataSource.class);
}









نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی