{"id":32137,"date":"2025-10-18T05:30:59","date_gmt":"2025-10-18T02:30:59","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/"},"modified":"2025-10-18T05:30:59","modified_gmt":"2025-10-18T02:30:59","slug":"spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/","title":{"rendered":"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi is&#8230;"},"content":{"rendered":"<p><span class=\"article-title\">Spring Boot&#8217;ta Portal Manager Konfig\u00fcrasyonlar\u0131n\u0131 \/actuator\/refresh ile Canl\u0131 Yenileme<\/span><\/p>\n<p><body><\/p>\n<p>Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi istiyorsunuz? Uygulaman\u0131z\u0131 yeniden ba\u015flatmadan, \u00e7al\u0131\u015fma zaman\u0131nda konfig\u00fcrasyon de\u011fi\u015fikliklerini nas\u0131l uygulayabilece\u011finizi ve \/actuator\/refresh endpoint&#8217;inin bu s\u00fcre\u00e7te oynad\u0131\u011f\u0131 kritik rol\u00fc ad\u0131m ad\u0131m ke\u015ffedin!<\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen dijital d\u00fcnyas\u0131nda, yaz\u0131l\u0131m uygulamalar\u0131n\u0131n dinamik ve esnek olmas\u0131 bir l\u00fcks olmaktan \u00e7\u0131k\u0131p bir zorunluluk haline gelmi\u015ftir. \u00d6zellikle Portal Manager gibi s\u00fcrekli g\u00fcncellenen ve kullan\u0131c\u0131ya anl\u0131k deneyim sunan sistemlerde, uygulama ayarlar\u0131n\u0131 \u00e7al\u0131\u015fma zaman\u0131nda de\u011fi\u015ftirebilmek hayati \u00f6nem ta\u015f\u0131r. Geleneksel yakla\u015f\u0131mlar, bir konfig\u00fcrasyon de\u011fi\u015fikli\u011fi gerekti\u011finde uygulaman\u0131n tamamen yeniden ba\u015flat\u0131lmas\u0131n\u0131 gerektirir. Bu durum, \u00f6zellikle b\u00fcy\u00fck ve karma\u015f\u0131k sistemlerde, kullan\u0131c\u0131n\u0131n eri\u015fimini kesintiye u\u011fratan, da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini yava\u015flatan ve operasyonel maliyetleri art\u0131ran ciddi bir problem yarat\u0131r. D\u00fc\u015f\u00fcn\u00fcn ki, bir Portal Manager uygulamas\u0131nda k\u00fc\u00e7\u00fck bir banner metnini veya bir API endpoint&#8217;ini de\u011fi\u015ftirmek i\u00e7in t\u00fcm sistemi kapat\u0131p yeniden a\u00e7man\u0131z gerekiyor. Bu, sadece zaman kayb\u0131 de\u011fil, ayn\u0131 zamanda olas\u0131 gelir kayb\u0131 ve kullan\u0131c\u0131 memnuniyetsizli\u011fi anlam\u0131na gelir.<\/p>\n<p>Bu gibi senaryolarda, hot-reload veya canl\u0131 yenileme yetene\u011fi, geli\u015ftiricilere ve operasyon ekiplerine b\u00fcy\u00fck bir esneklik sunar. Spring Boot ekosistemi, \u00f6zellikle Spring Cloud projesi kapsam\u0131nda sunulan \u00f6zelliklerle bu ihtiyaca m\u00fckemmel \u00e7\u00f6z\u00fcmler getirmi\u015ftir. Bahsetti\u011fimiz bu \u00e7\u00f6z\u00fcmlerden biri de Spring Boot Actuator ve onun sa\u011flad\u0131\u011f\u0131 \/actuator\/refresh endpoint&#8217;idir. Bu endpoint sayesinde, Portal Manager gibi kritik uygulamalar\u0131n konfig\u00fcrasyonlar\u0131, uygulaman\u0131n \u00e7al\u0131\u015f\u0131r durumdayken, s\u0131f\u0131r kesintiyle g\u00fcncellenebilir. B\u00f6ylece, kullan\u0131c\u0131lar kesintisiz bir deneyim ya\u015famaya devam ederken, geli\u015ftiriciler de h\u0131zl\u0131 ve \u00e7evik bir \u015fekilde de\u011fi\u015fiklikleri devreye alabilirler. Ayr\u0131ca, bu yakla\u015f\u0131m, A\/B testleri, \u00f6zellik bayraklar\u0131 (feature flags) veya b\u00f6lgesel konfig\u00fcrasyon farkl\u0131l\u0131klar\u0131 gibi dinamik senaryolar\u0131 y\u00f6netme konusunda da b\u00fcy\u00fck avantajlar sa\u011flar. Uygulama yeniden ba\u015flatma gereksinimi ortadan kalkt\u0131\u011f\u0131nda, CI\/CD pipeline&#8217;lar\u0131 \u00e7ok daha h\u0131zl\u0131 i\u015fleyebilir ve hata ay\u0131klama s\u00fcre\u00e7leri kolayla\u015f\u0131r. Dolay\u0131s\u0131yla, dinamik konfig\u00fcrasyon yenileme, modern yaz\u0131l\u0131m geli\u015ftirme ve operasyon pratiklerinin vazge\u00e7ilmez bir par\u00e7as\u0131 haline gelmi\u015ftir. Bu makalede, Spring Boot&#8217;un bu g\u00fc\u00e7l\u00fc \u00f6zelli\u011fini Portal Manager konfig\u00fcrasyonlar\u0131 \u00f6zelinde nas\u0131l kullanaca\u011f\u0131m\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h2 id=\"temel-kavramlar-spring-boot-actuator-ve-dinamik-konfigurasyon-nedir\">Temel Kavramlar: Spring Boot Actuator ve Dinamik Konfig\u00fcrasyon Nedir?<\/h2>\n<p>Spring Boot ekosisteminde, uygulama y\u00f6netimini ve izlenmesini kolayla\u015ft\u0131ran temel ara\u00e7lardan biri Spring Boot Actuator&#8217;d\u00fcr. Peki, Actuator tam olarak ne i\u015fe yarar ve dinamik konfig\u00fcrasyonla ili\u015fkisi nedir? Actuator, uygulaman\u0131z\u0131n \u00fcretim ortam\u0131nda veya geli\u015ftirme a\u015famas\u0131nda &#8220;ne yapt\u0131\u011f\u0131n\u0131&#8221; g\u00f6rmenizi sa\u011flayan bir dizi endpoint sa\u011flar. Bu endpoint&#8217;ler sayesinde, uygulaman\u0131z\u0131n durumunu (health), metriklerini, ortam de\u011fi\u015fkenlerini, log seviyelerini ve \u00e7ok daha fazlas\u0131n\u0131 uzaktan izleyebilir ve y\u00f6netebilirsiniz. K\u0131sacas\u0131, uygulaman\u0131za bir &#8220;g\u00f6z ve kumanda paneli&#8221; ekler. \u00d6rne\u011fin, bir Portal Manager uygulamas\u0131n\u0131n haf\u0131za kullan\u0131m\u0131n\u0131, HTTP isteklerinin yan\u0131t s\u00fcrelerini veya hangi \u00f6zellik bayraklar\u0131n\u0131n etkin oldu\u011funu Actuator \u00fczerinden kolayca g\u00f6r\u00fcnt\u00fcleyebilirsiniz. Bu, performans sorunlar\u0131n\u0131 tespit etmek veya sistem sa\u011fl\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in olduk\u00e7a de\u011ferlidir.<\/p>\n<p>Dinamik konfig\u00fcrasyon ise, uygulaman\u0131n \u00e7al\u0131\u015fma zaman\u0131nda, yani \u00e7al\u0131\u015fmaya devam ederken, ayarlar\u0131n\u0131n de\u011fi\u015ftirilebilmesi yetene\u011fidir. Geleneksel olarak, bir uygulaman\u0131n konfig\u00fcrasyonu, genellikle bir dosya (<code>application.properties<\/code>, <code>application.yml<\/code>) i\u00e7inde saklan\u0131r ve uygulama ba\u015flad\u0131\u011f\u0131nda okunur. E\u011fer bu ayarlar de\u011fi\u015ftirilirse, de\u011fi\u015fikli\u011fin etkin olmas\u0131 i\u00e7in uygulaman\u0131n yeniden ba\u015flat\u0131lmas\u0131 gerekir. Dinamik konfig\u00fcrasyon bu k\u0131s\u0131tlamay\u0131 ortadan kald\u0131r\u0131r. \u00d6zellikle mikroservis mimarilerinde veya birden fazla sunucu \u00fczerinde \u00e7al\u0131\u015fan Portal Manager uygulamalar\u0131nda, her bir servisi veya sunucuyu ayr\u0131 ayr\u0131 yeniden ba\u015flatmak hem karma\u015f\u0131k hem de kesintiye yol a\u00e7\u0131c\u0131 bir s\u00fcre\u00e7tir. Bu nedenle, merkezi bir konfig\u00fcrasyon sunucusundan (\u00f6rne\u011fin, Spring Cloud Config Server) ayarlar\u0131n al\u0131nmas\u0131 ve \u00e7al\u0131\u015fma zaman\u0131nda yenilenmesi, modern da\u011f\u0131t\u0131k sistemlerin temel bir ihtiyac\u0131 haline gelmi\u015ftir.<\/p>\n<p>Bu dinamik yenileme yetene\u011fini m\u00fcmk\u00fcn k\u0131lan ana bile\u015fenlerden biri Spring Cloud projesi kapsam\u0131nda sunulan <code>@RefreshScope<\/code> anotasyonudur. Bir bean \u00fczerine <code>@RefreshScope<\/code> anotasyonu eklendi\u011finde, o bean&#8217;in i\u00e7erdi\u011fi konfig\u00fcrasyon de\u011ferleri, bir yenileme olay\u0131 (\u00f6rne\u011fin, <code>\/actuator\/refresh<\/code> endpoint&#8217;ine yap\u0131lan bir \u00e7a\u011fr\u0131) tetiklendi\u011finde otomatik olarak g\u00fcncellenir. Ancak, bu anotasyon sadece belirli bir scope i\u00e7indeki bean&#8217;leri etkiler; yani, bean&#8217;in ilk olu\u015fturuldu\u011fu andaki de\u011ferler de\u011fil, refresh event&#8217;i sonras\u0131 yeni de\u011ferlerle yeniden olu\u015fturulmas\u0131 sa\u011flan\u0131r. \u00d6zellikle <code>@ConfigurationProperties<\/code> ile birlikte kullan\u0131ld\u0131\u011f\u0131nda, d\u0131\u015far\u0131dan gelen konfig\u00fcrasyon de\u011fi\u015fikliklerinin, ilgili Java s\u0131n\u0131flar\u0131na kolayca yans\u0131mas\u0131n\u0131 sa\u011flar. Bu sayede, Portal Manager&#8217;\u0131n\u0131zdaki metinler, tema bilgileri, d\u0131\u015f API anahtarlar\u0131 veya veritaban\u0131 ba\u011flant\u0131 ayarlar\u0131 gibi pek \u00e7ok kritik parametreyi, uygulaman\u0131z\u0131 kesintiye u\u011fratmadan g\u00fcncelleyebilirsiniz. Nitekim, bu \u00f6zellik, DevOps pratiklerini benimseyen ekipler i\u00e7in b\u00fcy\u00fck bir kolayl\u0131k ve verimlilik art\u0131\u015f\u0131 sa\u011flamaktad\u0131r. Bu ba\u011flamda, <code>\/actuator\/refresh<\/code> endpoint&#8217;i, bu dinamik konfig\u00fcrasyon yenileme s\u00fcrecini tetikleyen anahtar mekanizmad\u0131r.<\/p>\n<h2 id=\"portal-manager-konfigurasyonlarini-nasil-tanimlariz\">Portal Manager Konfig\u00fcrasyonlar\u0131n\u0131 Nas\u0131l Tan\u0131mlar\u0131z?<\/h2>\n<p>Spring Boot&#8217;ta dinamik konfig\u00fcrasyon yenilemesi yapabilmek i\u00e7in \u00f6ncelikle yenilenecek konfig\u00fcrasyonlar\u0131 do\u011fru bir \u015fekilde tan\u0131mlamam\u0131z gerekmektedir. Bunun i\u00e7in genellikle <code>@ConfigurationProperties<\/code> anotasyonunu ve <code>@RefreshScope<\/code> anotasyonunu bir arada kullan\u0131r\u0131z. Bu iki anotasyonun birle\u015fimi, harici kaynaklardan gelen konfig\u00fcrasyon de\u011ferlerinin Java nesnelerine e\u015flenmesini ve bu de\u011ferlerin \u00e7al\u0131\u015fma zaman\u0131nda g\u00fcncellenebilmesini sa\u011flar. Diyelim ki, bir Portal Manager uygulaman\u0131z var ve bu portal\u0131n ana sayfa ba\u015fl\u0131\u011f\u0131, footer metni ve destek e-posta adresi gibi \u00e7e\u015fitli metinsel bilgilerini harici bir kaynaktan y\u00f6netmek istiyorsunuz. Bu senaryo i\u00e7in \u015f\u00f6yle bir yap\u0131 kurabiliriz:<\/p>\n<p>\u0130lk olarak, konfig\u00fcrasyon de\u011ferlerini tutacak bir Java s\u0131n\u0131f\u0131 olu\u015ftural\u0131m. Bu s\u0131n\u0131f, <code>application.yml<\/code> veya <code>application.properties<\/code> dosyas\u0131nda tan\u0131mlanan prefix&#8217;e g\u00f6re ilgili de\u011ferleri alacakt\u0131r. \u00d6rne\u011fin, <code>portal.manager.title<\/code>, <code>portal.manager.footer<\/code> gibi anahtarlar\u0131m\u0131z olsun:<\/p>\n<pre><code>\npackage com.example.portalmanager.config;\n\nimport org.springframework.boot.context.properties.ConfigurationProperties;\nimport org.springframework.cloud.context.config.annotation.RefreshScope;\nimport org.springframework.stereotype.Component;\n\n@Component\n@RefreshScope\n@ConfigurationProperties(prefix = \"portal.manager\")\npublic class PortalManagerProperties {\n\n    private String title;\n    private String footerText;\n    private String supportEmail;\n    private boolean maintenanceMode;\n\n    \/\/ Getter ve Setter metotlar\u0131\n    public String getTitle() {\n        return title;\n    }\n\n    public void setTitle(String title) {\n        this.title = title;\n    }\n\n    public String getFooterText() {\n        return footerText;\n    }\n\n    public void setFooterText(String footerText) {\n        this.footerText = footerText;\n    }\n\n    public String getSupportEmail() {\n        return supportEmail;\n    }\n\n    public void setSupportEmail(String supportEmail) {\n        this.supportEmail = supportEmail;\n    }\n\n    public boolean isMaintenanceMode() {\n        return maintenanceMode;\n    }\n\n    public void setMaintenanceMode(boolean maintenanceMode) {\n        this.maintenanceMode = maintenanceMode;\n    }\n\n    @Override\n    public String toString() {\n        return \"PortalManagerProperties{\" +\n               \"title='\" + title + '\\'' +\n               \", footerText='\" + footerText + '\\'' +\n               \", supportEmail='\" + supportEmail + '\\'' +\n               \", maintenanceMode=\" + maintenanceMode +\n               '}';\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki kod blo\u011funda, <code>@Component<\/code> anotasyonu Spring'e bu s\u0131n\u0131f\u0131n bir bean oldu\u011funu belirtir. <code>@ConfigurationProperties(prefix = \"portal.manager\")<\/code> anotasyonu, Spring'in <code>application.yml<\/code> veya <code>application.properties<\/code> dosyas\u0131ndaki <code>portal.manager<\/code> ile ba\u015flayan anahtarlar\u0131 bu s\u0131n\u0131f\u0131n ilgili alanlar\u0131na e\u015flemesini sa\u011flar. En kritik k\u0131s\u0131m ise <code>@RefreshScope<\/code> anotasyonudur. Bu anotasyon sayesinde, Spring Cloud Context mod\u00fcl\u00fc, <code>\/actuator\/refresh<\/code> endpoint'ine bir \u00e7a\u011fr\u0131 yap\u0131ld\u0131\u011f\u0131nda bu bean'i yeniden olu\u015fturacak ve b\u00f6ylece en g\u00fcncel konfig\u00fcrasyon de\u011ferlerini almas\u0131n\u0131 sa\u011flayacakt\u0131r.<\/p>\n<p>\u015eimdi de <code>application.yml<\/code> dosyam\u0131zda bu konfig\u00fcrasyonlar\u0131 nas\u0131l tan\u0131mlayaca\u011f\u0131m\u0131za bakal\u0131m:<\/p>\n<pre><code>\nportal:\n  manager:\n    title: \"Ho\u015f Geldiniz: Benim Portal\u0131m\"\n    footerText: \"T\u00fcm Haklar\u0131 Sakl\u0131d\u0131r \u00a9 2023 Benim Portal\u0131m\"\n    supportEmail: \"destek@benimportalim.com\"\n    maintenanceMode: false\n<\/pre>\n<p><\/code><\/p>\n<p>Bu konfig\u00fcrasyon dosyas\u0131 ile <code>PortalManagerProperties<\/code> s\u0131n\u0131f\u0131m\u0131zdaki alanlar otomatik olarak doldurulacakt\u0131r. Uygulaman\u0131z\u0131n herhangi bir yerinde bu konfig\u00fcrasyonlara eri\u015fmek i\u00e7in <code>PortalManagerProperties<\/code> bean'ini enjekte edebilirsiniz:<\/p>\n<pre><code>\npackage com.example.portalmanager.service;\n\nimport com.example.portalmanager.config.PortalManagerProperties;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\n@Service\npublic class PortalContentService {\n\n    private final PortalManagerProperties portalManagerProperties;\n\n    @Autowired\n    public PortalContentService(PortalManagerProperties portalManagerProperties) {\n        this.portalManagerProperties = portalManagerProperties;\n    }\n\n    public String getPortalHeader() {\n        return portalManagerProperties.getTitle() + \" - Bak\u0131m Modu: \" + portalManagerProperties.isMaintenanceMode();\n    }\n\n    public String getPortalFooter() {\n        return portalManagerProperties.getFooterText();\n    }\n\n    public String getSupportContact() {\n        return \"Sorular\u0131n\u0131z i\u00e7in: \" + portalManagerProperties.getSupportEmail();\n    }\n\n    \/\/ Ek olarak, mevcut konfig\u00fcrasyonlar\u0131 loglamak veya g\u00f6r\u00fcnt\u00fclemek i\u00e7in bir y\u00f6ntem\n    public void logCurrentConfig() {\n        System.out.println(\"Mevcut Portal Konfig\u00fcrasyonu: \" + portalManagerProperties.toString());\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki <code>PortalContentService<\/code> s\u0131n\u0131f\u0131, <code>PortalManagerProperties<\/code> bean'ini kullanarak portal i\u00e7eri\u011fini sunuyor. Bu servis, uygulaman\u0131z \u00e7al\u0131\u015f\u0131rken de\u011fi\u015fen konfig\u00fcrasyon de\u011ferlerini otomatik olarak alacak ve yeni de\u011ferleri kullanmaya ba\u015flayacakt\u0131r. Bu yap\u0131 sayesinde, Portal Manager'\u0131n\u0131zdaki dinamik ayarlar\u0131n y\u00f6netimini merkezi ve kolay bir hale getirebilirsiniz. Unutmay\u0131n, <code>@RefreshScope<\/code> anotasyonu olmadan yap\u0131lan de\u011fi\u015fiklikler, uygulaman\u0131n yeniden ba\u015flat\u0131lmas\u0131n\u0131 gerektirecektir. Bu nedenle, dinamik g\u00fcncellemeler i\u00e7in bu anotasyonun kullan\u0131m\u0131 kritiktir. Ayr\u0131ca, bu konfig\u00fcrasyonlar\u0131 harici bir Spring Cloud Config Server'dan da alabilirsiniz, bu da merkezi y\u00f6netim i\u00e7in daha da g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm sunar.<\/p>\n<h2 id=\"spring-boot-actuatori-ve-actuatorrefresh-endpointini-nasil-aktif-ederiz\">Spring Boot Actuator'\u0131 ve \/actuator\/refresh Endpoint'ini Nas\u0131l Aktif Ederiz?<\/h2>\n<p>Portal Manager konfig\u00fcrasyonlar\u0131m\u0131z\u0131 dinamik olarak yenileyebilmek i\u00e7in Spring Boot Actuator'\u0131 projemize dahil etmemiz ve gerekli endpoint'leri etkinle\u015ftirmemiz gerekmektedir. Bu s\u00fcre\u00e7, birka\u00e7 basit ad\u0131m\u0131 i\u00e7erir ve olduk\u00e7a kolayd\u0131r. \u0130\u015fte ad\u0131m ad\u0131m yapman\u0131z gerekenler:<\/p>\n<p>\u0130lk olarak, Spring Boot projenize <code>spring-boot-starter-actuator<\/code> ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 eklemeniz gerekir. Bu ba\u011f\u0131ml\u0131l\u0131k, uygulaman\u0131z i\u00e7in \u00e7e\u015fitli y\u00f6netim ve izleme endpoint'lerini otomatik olarak yap\u0131land\u0131r\u0131r. Maven kullan\u0131yorsan\u0131z, <code>pom.xml<\/code> dosyan\u0131za a\u015fa\u011f\u0131daki ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 ekleyin:<\/p>\n<pre><code>\n<dependency>\n    <groupId>org.springframework.boot<\/groupId>\n    <artifactId>spring-boot-starter-actuator<\/artifactId>\n<\/dependency>\n<\/pre>\n<p><\/code><\/p>\n<p>Gradle kullan\u0131yorsan\u0131z, <code>build.gradle<\/code> dosyan\u0131za \u015funu ekleyin:<\/p>\n<pre><code>\nimplementation 'org.springframework.boot:spring-boot-starter-actuator'\n<\/pre>\n<p><\/code><\/p>\n<p>Bu ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 ekledikten sonra, Actuator varsay\u0131lan olarak baz\u0131 endpoint'leri etkinle\u015ftirir ancak genellikle <code>\/actuator\/refresh<\/code> gibi kritik y\u00f6netim endpoint'leri varsay\u0131lan olarak d\u0131\u015far\u0131ya a\u00e7\u0131lmaz. G\u00fcvenlik nedeniyle, bu endpoint'leri manuel olarak etkinle\u015ftirmemiz gerekmektedir. Bunun i\u00e7in <code>application.yml<\/code> veya <code>application.properties<\/code> dosyan\u0131za a\u015fa\u011f\u0131daki ayarlar\u0131 eklemelisiniz:<\/p>\n<pre><code>\nmanagement:\n  endpoints:\n    web:\n      exposure:\n        include: \"health,info,refresh\" # Yaln\u0131zca gerekli endpoint'leri a\u00e7\u0131n\n        # include: \"*\" # T\u00fcm endpoint'leri a\u00e7mak i\u00e7in (g\u00fcvenlik riski ta\u015f\u0131yabilir)\n  endpoint:\n    health:\n      show-details: \"always\" # Sa\u011fl\u0131k durum detaylar\u0131n\u0131 her zaman g\u00f6ster\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki konfig\u00fcrasyonda, <code>management.endpoints.web.exposure.include<\/code> \u00f6zelli\u011fi ile hangi Actuator endpoint'lerinin HTTP \u00fczerinden eri\u015filebilir olaca\u011f\u0131n\u0131 belirleriz. Burada \u00f6zellikle <code>refresh<\/code> endpoint'ini dahil etti\u011fimizden emin olmal\u0131y\u0131z. <code>*<\/code> kullanmak t\u00fcm endpoint'leri a\u00e7ar, ancak g\u00fcvenlik a\u00e7\u0131s\u0131ndan yaln\u0131zca ihtiyac\u0131n\u0131z olanlar\u0131 a\u00e7man\u0131z tavsiye edilir. \u00d6rne\u011fin, <code>health<\/code> ve <code>info<\/code> genellikle bilgilendirme ama\u00e7l\u0131 a\u00e7\u0131l\u0131rken, <code>refresh<\/code> gibi de\u011fi\u015fiklik yap\u0131c\u0131 endpoint'ler daha dikkatli y\u00f6netilmelidir.<\/p>\n<p>Actuator endpoint'lerinin g\u00fcvenli\u011fi de olduk\u00e7a \u00f6nemlidir. \u00dcretim ortam\u0131nda, bu endpoint'lere herkesin eri\u015fmesini engellemek i\u00e7in genellikle Spring Security ile entegre bir kimlik do\u011frulama ve yetkilendirme mekanizmas\u0131 kullan\u0131l\u0131r. \u00d6rne\u011fin, yaln\u0131zca belirli bir rol veya kullan\u0131c\u0131ya <code>\/actuator\/refresh<\/code> endpoint'ini \u00e7a\u011f\u0131rma izni verebilirsiniz. Bu, k\u00f6t\u00fc niyetli veya yanl\u0131\u015fl\u0131kla yap\u0131lan konfig\u00fcrasyon de\u011fi\u015fikliklerinin \u00f6n\u00fcne ge\u00e7er.<\/p>\n<p>T\u00fcm bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, uygulaman\u0131z\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n. Art\u0131k <code>\/actuator\/refresh<\/code> endpoint'i haz\u0131r olacakt\u0131r. Bu endpoint'e genellikle bir <code>POST<\/code> iste\u011fi g\u00f6nderilerek yenileme i\u015flemi tetiklenir. \u00d6rne\u011fin, bir CLI arac\u0131 olan <code>curl<\/code> veya bir GUI arac\u0131 olan Postman\/Insomnia kullanarak bu iste\u011fi g\u00f6nderebilirsiniz. A\u015fa\u011f\u0131da, yerel olarak \u00e7al\u0131\u015fan bir Spring Boot uygulamas\u0131nda <code>\/actuator\/refresh<\/code> endpoint'ine nas\u0131l POST iste\u011fi g\u00f6nderece\u011finize dair bir <code>curl<\/code> \u00f6rne\u011fi bulunmaktad\u0131r:<\/p>\n<pre><code>\ncurl -X POST http:\/\/localhost:8080\/actuator\/refresh\n<\/pre>\n<p><\/code><\/p>\n<aside class=\"expert-tip\">\n        Uzman \u0130pucu: \u00dcretim ortam\u0131nda <code>\/actuator\/refresh<\/code> endpoint'ini do\u011frudan eri\u015fime a\u00e7mak yerine, bir API Gateway veya g\u00fcvenlik duvar\u0131 arkas\u0131na gizleyerek ve yaln\u0131zca yetkili sistemlerin eri\u015fmesine izin vererek g\u00fcvenlik risklerini minimize edebilirsiniz. Ayr\u0131ca, Spring Security kullanarak bu endpoint'e eri\u015fimi rol tabanl\u0131 yetkilendirme ile k\u0131s\u0131tlamak ak\u0131ll\u0131ca olacakt\u0131r.<br \/>\n    <\/aside>\n<p>Bu iste\u011fi g\u00f6nderdi\u011finizde, Spring Boot uygulaman\u0131zda <code>@RefreshScope<\/code> ile i\u015faretlenmi\u015f t\u00fcm bean'ler yeniden olu\u015fturulacak ve <code>application.yml<\/code> veya harici konfig\u00fcrasyon sunucusundan (e\u011fer kullan\u0131yorsan\u0131z) en g\u00fcncel de\u011ferleri alacakt\u0131r. B\u00f6ylece Portal Manager'\u0131n\u0131zdaki t\u00fcm ilgili konfig\u00fcrasyonlar, uygulaman\u0131z\u0131 yeniden ba\u015flatmaya gerek kalmadan an\u0131nda g\u00fcncellenmi\u015f olacakt\u0131r. Bu, kesintisiz bir operasyon ve h\u0131zl\u0131 adaptasyon i\u00e7in olmazsa olmaz bir \u00f6zelliktir. Bu yetene\u011fi, Portal Manager'\u0131n\u0131z\u0131n dinamik \u00f6zelliklerini y\u00f6netmek i\u00e7in etkin bir \u015fekilde kullanabilirsiniz.<\/p>\n<h2 id=\"gercek-dunya-senaryosu-bir-portal-managerin-anlik-ayar-degisikligi-ihtiyaci\">Ger\u00e7ek D\u00fcnya Senaryosu: Bir Portal Manager'\u0131n Anl\u0131k Ayar De\u011fi\u015fikli\u011fi \u0130htiyac\u0131<\/h2>\n<p>Bir Portal Manager uygulamas\u0131n\u0131n dinamik ayar de\u011fi\u015fikliklerine duydu\u011fu ihtiyac\u0131 somut bir \u00f6rnek \u00fczerinden inceleyelim. Diyelim ki, yo\u011fun kullan\u0131lan bir e-ticaret portal\u0131n\u0131z var. Yakla\u015fan Kara Cuma indirimleri i\u00e7in portal\u0131n ana sayfas\u0131nda \u00f6zel bir duyuru banner\u0131 g\u00f6stermeniz, kampanya s\u00fcresince baz\u0131 \u00f6zellikleri (\u00f6rne\u011fin, \"H\u0131zl\u0131 Sipari\u015f\" butonu) ge\u00e7ici olarak devre d\u0131\u015f\u0131 b\u0131rakman\u0131z ve destek e-posta adresini d\u00f6nemsel olarak de\u011fi\u015ftirebilmeniz gerekiyor. Geleneksel yakla\u015f\u0131mla, her de\u011fi\u015fiklik i\u00e7in uygulaman\u0131z\u0131 yeniden derleyip da\u011f\u0131tman\u0131z ve kesintiye yol a\u00e7man\u0131z gerekecekti. Bu, b\u00fcy\u00fck bir y\u00fck ve risk ta\u015f\u0131r. Ancak <code>\/actuator\/refresh<\/code> ile bu s\u00fcre\u00e7 \u00e7ok daha basit ve kesintisiz hale gelir.<\/p>\n<p><strong>Vaka Analizi: Kara Cuma Kampanya Y\u00f6netimi<\/strong><\/p>\n<ol>\n<li><strong>Ba\u015flang\u0131\u00e7 Durumu:<\/strong> Portal Manager'\u0131n\u0131z, yukar\u0131da tan\u0131mlad\u0131\u011f\u0131m\u0131z <code>PortalManagerProperties<\/code> s\u0131n\u0131f\u0131n\u0131 kullan\u0131yor. \u0130lk konfig\u00fcrasyonu a\u015fa\u011f\u0131daki gibi:<\/p>\n<pre><code>\nportal:\n  manager:\n    title: \"Ho\u015f Geldiniz: e-Ticaret Portal\u0131m\u0131z\"\n    footerText: \"T\u00fcm Haklar\u0131 Sakl\u0131d\u0131r \u00a9 2023\"\n    supportEmail: \"support@eticaret.com\"\n    maintenanceMode: false\n    banner:\n      text: \"Harika F\u0131rsatlar Sizi Bekliyor!\"\n      enabled: false\n    feature:\n      quickOrder:\n        enabled: true\n<\/pre>\n<p><\/code><\/p>\n<p>Uygulama \u00e7al\u0131\u015f\u0131yor ve kullan\u0131c\u0131lar sorunsuz bir \u015fekilde gezinmekte. Portal ana sayfas\u0131nda varsay\u0131lan ba\u015fl\u0131k ve footer metni g\u00f6r\u00fcn\u00fcyor, \u00f6zel banner devre d\u0131\u015f\u0131 ve h\u0131zl\u0131 sipari\u015f butonu aktif.<\/li>\n<li><strong>Kampanya \u00d6ncesi De\u011fi\u015fiklikler:<\/strong> Kara Cuma kampanyas\u0131 yakla\u015f\u0131yor. Ana sayfa banner\u0131n\u0131 etkinle\u015ftirmek, \u00f6zel bir kampanya metni g\u00f6stermek ve h\u0131zl\u0131 sipari\u015f \u00f6zelli\u011fini kampanya yo\u011funlu\u011fundan dolay\u0131 ge\u00e7ici olarak devre d\u0131\u015f\u0131 b\u0131rakmak istiyorsunuz. Ayr\u0131ca, kampanya s\u00fcresince yo\u011funlu\u011fu y\u00f6netmek i\u00e7in destek e-posta adresini \"kampanya@eticaret.com\" olarak de\u011fi\u015ftirmek istiyorsunuz. Bunun i\u00e7in <code>application.yml<\/code> dosyas\u0131n\u0131 (veya merkezi konfig\u00fcrasyon sunucunuzdaki ayarlar\u0131) a\u015fa\u011f\u0131daki gibi g\u00fcncellersiniz:<\/p>\n<pre><code>\nportal:\n  manager:\n    title: \"Kara Cuma \u0130ndirimleri Ba\u015flad\u0131!\" # Ba\u015fl\u0131k de\u011fi\u015fti\n    footerText: \"T\u00fcm Haklar\u0131 Sakl\u0131d\u0131r \u00a9 2023 - Kara Cuma \u00d6zel\"\n    supportEmail: \"kampanya@eticaret.com\" # Destek e-postas\u0131 de\u011fi\u015fti\n    maintenanceMode: false\n    banner:\n      text: \"KA\u00c7IRILMAYACAK FIRSATLAR! %50'ye Varan \u0130ndirimler!\" # Banner metni de\u011fi\u015fti\n      enabled: true # Banner etkinle\u015ftirildi\n    feature:\n      quickOrder:\n        enabled: false # H\u0131zl\u0131 sipari\u015f devre d\u0131\u015f\u0131 b\u0131rak\u0131ld\u0131\n<\/pre>\n<p><\/code>\n        <\/li>\n<li><strong>Konfig\u00fcrasyon Yenilemesi:<\/strong> Konfig\u00fcrasyon dosyas\u0131n\u0131 g\u00fcncelledikten sonra, uygulaman\u0131z\u0131 yeniden ba\u015flatman\u0131za gerek kalmadan, yaln\u0131zca <code>\/actuator\/refresh<\/code> endpoint'ine bir POST iste\u011fi g\u00f6nderirsiniz:<\/p>\n<pre><code>\ncurl -X POST http:\/\/localhost:8080\/actuator\/refresh\n<\/pre>\n<p><\/code><\/p>\n<p>Bu istek, uygulaman\u0131zdaki <code>@RefreshScope<\/code> ile i\u015faretlenmi\u015f <code>PortalManagerProperties<\/code> bean'ini yeniden olu\u015fturur ve yeni de\u011ferleri y\u00fcklemesini sa\u011flar. Uygulama loglar\u0131nda, konfig\u00fcrasyon de\u011fi\u015fikliklerinin alg\u0131land\u0131\u011f\u0131n\u0131 ve ilgili bean'lerin yenilendi\u011fini g\u00f6rebilirsiniz.<\/p>\n<\/li>\n<li><strong>Sonu\u00e7: Kesintisiz G\u00fcncelleme:<\/strong> An\u0131nda, hi\u00e7bir kullan\u0131c\u0131 kesintisi ya\u015famadan, portal\u0131n ana sayfa ba\u015fl\u0131\u011f\u0131, footer metni, destek e-posta adresi, kampanya banner\u0131 ve h\u0131zl\u0131 sipari\u015f butonunun durumu g\u00fcncellenir. Kullan\u0131c\u0131lar art\u0131k yeni kampanya ba\u015fl\u0131\u011f\u0131n\u0131, banner\u0131 ve g\u00fcncel destek bilgisini g\u00f6rmeye ba\u015flar, h\u0131zl\u0131 sipari\u015f butonu ise portalda g\u00f6r\u00fcnmez veya pasif hale gelir. Bu durum, \u00f6zellikle mobil cihazlardan eri\u015fen kullan\u0131c\u0131lar i\u00e7in de sorunsuz bir deneyim demektir, zira arka planda \u00e7al\u0131\u015fan uygulaman\u0131n anl\u0131k g\u00fcncellemeleri, mobil uygulaman\u0131n veya taray\u0131c\u0131n\u0131n yeniden y\u00fcklenmesine gerek kalmadan yans\u0131r. A\u015fa\u011f\u0131daki CSS medya sorgusu \u00f6rne\u011fi, bir mobil cihazda banner\u0131n nas\u0131l g\u00f6r\u00fcnebilece\u011fini betimleyebilir:\n<pre><code>\n@media (max-width: 768px) {\n  .portal-banner {\n    font-size: 1.2em;\n    padding: 10px;\n  }\n  .portal-header {\n    font-size: 1.8em;\n  }\n}\n<\/pre>\n<p><\/code><br \/>\n        Bu medya sorgusu, mobil cihazlarda banner ve ba\u015fl\u0131\u011f\u0131n daha okunur olmas\u0131 i\u00e7in boyutlar\u0131n\u0131 ayarlarken, konfig\u00fcrasyon i\u00e7eri\u011fi hala <code>actuator\/refresh<\/code> ile g\u00fcncellenebilir.<\/li>\n<\/ol>\n<p>Bu senaryo, <code>\/actuator\/refresh<\/code> endpoint'inin ger\u00e7ek d\u00fcnya uygulamalar\u0131nda, \u00f6zellikle Portal Manager gibi dinamik i\u00e7eri\u011fe sahip sistemlerde ne kadar de\u011ferli oldu\u011funu a\u00e7\u0131k\u00e7a g\u00f6stermektedir. Geli\u015ftirme, test ve \u00fcretim ortamlar\u0131nda, bu \u00f6zellik sayesinde esneklik ve \u00e7eviklik kazan\u0131l\u0131r, operasyonel y\u00fck azal\u0131r ve kullan\u0131c\u0131 deneyimi kesintisiz bir \u015fekilde devam eder. Bu t\u00fcr canl\u0131 g\u00fcncellemeler, s\u00fcrekli entegrasyon ve s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) s\u00fcre\u00e7lerinin de ayr\u0131lmaz bir par\u00e7as\u0131 haline gelmi\u015ftir. Bu, \u00f6zellikle h\u0131zla de\u011fi\u015fen pazar ko\u015fullar\u0131na uyum sa\u011flamak isteyen i\u015fletmeler i\u00e7in kritik bir avantajd\u0131r.<\/p>\n<h2 id=\"ileri-duzey-kullanim-ve-optimizasyon-buyuk-olcekli-sistemlerde-hot-reload\">\u0130leri D\u00fczey Kullan\u0131m ve Optimizasyon: B\u00fcy\u00fck \u00d6l\u00e7ekli Sistemlerde Hot-Reload<\/h2>\n<p>K\u00fc\u00e7\u00fck \u00f6l\u00e7ekli Spring Boot uygulamalar\u0131nda <code>\/actuator\/refresh<\/code> endpoint'i tek ba\u015f\u0131na yeterli olabilirken, b\u00fcy\u00fck \u00f6l\u00e7ekli ve da\u011f\u0131t\u0131k sistemlerde, \u00f6zellikle mikroservis mimarilerinde, bu s\u00fcrecin daha geli\u015fmi\u015f y\u00f6ntemlerle y\u00f6netilmesi gerekebilir. Zira, onlarca hatta y\u00fczlerce mikroservisin her birine manuel olarak refresh iste\u011fi g\u00f6ndermek hem verimsiz hem de hata yapmaya a\u00e7\u0131k bir y\u00f6ntemdir. \u0130\u015fte bu noktada Spring Cloud ekosisteminin sundu\u011fu ileri d\u00fczey ara\u00e7lar ve optimizasyon teknikleri devreye girer.<\/p>\n<p><strong>1. Spring Cloud Config Server ile Entegrasyon:<\/strong><br \/>\n    En yayg\u0131n ve g\u00fc\u00e7l\u00fc yakla\u015f\u0131mlardan biri, konfig\u00fcrasyonlar\u0131n\u0131z\u0131 merkezi bir Spring Cloud Config Server'da tutmakt\u0131r. Bu sunucu genellikle bir Git deposundan (GitHub, GitLab, Bitbucket) konfig\u00fcrasyon dosyalar\u0131n\u0131 okur. Uygulamalar\u0131n\u0131z (Portal Manager servisleri) bu Config Server'a ba\u011flanarak konfig\u00fcrasyonlar\u0131n\u0131 buradan \u00e7eker. Bir konfig\u00fcrasyon de\u011fi\u015fikli\u011fi oldu\u011funda, sadece Git deposundaki dosyay\u0131 g\u00fcncellersiniz. Config Server'\u0131n g\u00f6revi, bu g\u00fcncellenmi\u015f konfig\u00fcrasyonlar\u0131 uygulamalar\u0131n\u0131za sunmakt\u0131r. Ancak, uygulamalar\u0131n\u0131z\u0131n bu de\u011fi\u015fikli\u011fi otomatik olarak alg\u0131lamas\u0131 i\u00e7in yine bir tetikleyiciye ihtiya\u00e7 vard\u0131r.<\/p>\n<p><strong>2. Spring Cloud Bus ve Mesaj Kuyruklar\u0131 ile Refresh Yay\u0131l\u0131m\u0131:<\/strong><br \/>\n    B\u00fcy\u00fck \u00f6l\u00e7ekli sistemlerdeki en b\u00fcy\u00fck zorluk, konfig\u00fcrasyon de\u011fi\u015fikli\u011finin birden fazla servise veya servisin birden fazla instans\u0131na ayn\u0131 anda ve koordineli bir \u015fekilde yay\u0131lmas\u0131n\u0131 sa\u011flamakt\u0131r. \u0130\u015fte burada Spring Cloud Bus devreye girer. Spring Cloud Bus, bir mesaj kuyru\u011fu (RabbitMQ, Kafka gibi) kullanarak, bir serviste tetiklenen <code>\/actuator\/refresh<\/code> iste\u011finin di\u011fer t\u00fcm ba\u011fl\u0131 servislere otomatik olarak yay\u0131lmas\u0131n\u0131 sa\u011flar. Bu sayede, tek bir <code>\/actuator\/bus-refresh<\/code> endpoint'ine yap\u0131lan \u00e7a\u011fr\u0131 ile t\u00fcm mikroservislerinizdeki ilgili konfig\u00fcrasyonlar yenilenebilir. Bu, operasyonel y\u00fck\u00fc radikal bir \u015fekilde azalt\u0131r ve da\u011f\u0131t\u0131k sistemlerde tutarl\u0131l\u0131k sa\u011flar.<\/p>\n<pre><code>\n# application.yml'da Spring Cloud Bus ayarlar\u0131 (RabbitMQ \u00f6rne\u011fi)\nspring:\n  cloud:\n    bus:\n      enabled: true\n      destination: springCloudBus\n  rabbitmq:\n    host: localhost\n    port: 5672\n    username: guest\n    password: guest\n\nmanagement:\n  endpoints:\n    web:\n      exposure:\n        include: \"health,info,refresh,bus-refresh\" # bus-refresh endpoint'ini de a\u00e7may\u0131 unutmay\u0131n\n<\/pre>\n<p><\/code><\/p>\n<p><code>\/actuator\/bus-refresh<\/code> endpoint'ine bir POST iste\u011fi g\u00f6nderdi\u011finizde, bu mesaj kuyru\u011funa bir refresh olay\u0131 g\u00f6nderilir ve bu olay\u0131 dinleyen t\u00fcm servisler otomatik olarak kendi <code>\/actuator\/refresh<\/code> i\u015flemlerini tetikler. Bu, b\u00fcy\u00fck Portal Manager ekosistemlerindeki t\u00fcm ba\u011f\u0131ml\u0131 servislerin ayn\u0131 anda g\u00fcncellenmesini garanti eder.<\/p>\n<p><strong>3. G\u00fcvenlik Best Practices:<\/strong><br \/>\n    <code>\/actuator\/refresh<\/code> ve <code>\/actuator\/bus-refresh<\/code> gibi endpoint'ler, uygulaman\u0131z\u0131n \u00e7al\u0131\u015fma zaman\u0131 davran\u0131\u015f\u0131n\u0131 etkileyebilecek kritik endpoint'lerdir. Bu nedenle, bunlar\u0131n g\u00fcvenli\u011fi asla g\u00f6z ard\u0131 edilmemelidir.<\/p>\n<ul>\n<li><strong>Kimlik Do\u011frulama ve Yetkilendirme:<\/strong> Spring Security kullanarak bu endpoint'lere eri\u015fimi yaln\u0131zca belirli rollere sahip kullan\u0131c\u0131lara veya sistemlere k\u0131s\u0131tlay\u0131n.<\/li>\n<li><strong>A\u011f K\u0131s\u0131tlamalar\u0131:<\/strong> Bu endpoint'lere yaln\u0131zca belirli IP adreslerinden veya i\u00e7 a\u011flardan eri\u015fime izin verin. Bir API Gateway veya ters proxy arkas\u0131na gizleyin.<\/li>\n<li><strong>Denetim (Auditing):<\/strong> Her <code>\/actuator\/refresh<\/code> \u00e7a\u011fr\u0131s\u0131n\u0131 loglay\u0131n. Kimin, ne zaman ve hangi kaynaktan bu \u00e7a\u011fr\u0131y\u0131 yapt\u0131\u011f\u0131n\u0131 takip etmek, olas\u0131 sorunlar\u0131 tespit etmek i\u00e7in \u00f6nemlidir.<\/li>\n<\/ul>\n<aside class=\"expert-tip\">\n        Uzman \u0130pucu: B\u00fcy\u00fck \u00f6l\u00e7ekli sistemlerde, konfig\u00fcrasyon de\u011fi\u015fiklikleri genellikle bir CI\/CD pipeline'\u0131 \u00fczerinden y\u00f6netilir. \u00d6rne\u011fin, bir Git deposundaki <code>application.yml<\/code> dosyas\u0131 g\u00fcncellendi\u011finde, bir webhook tetiklenir ve bu webhook, otomatik olarak bir <code>POST<\/code> iste\u011fiyle <code>Config Server<\/code>'a veya do\u011frudan <code>Spring Cloud Bus<\/code> \u00fczerinden <code>bus-refresh<\/code> endpoint'ine \u00e7a\u011fr\u0131 yaparak t\u00fcm servisleri g\u00fcncelleyebilir. Bu yakla\u015f\u0131m, insan hatas\u0131n\u0131 minimize eder ve da\u011f\u0131t\u0131m\u0131 h\u0131zland\u0131r\u0131r.<br \/>\n    <\/aside>\n<p><strong>4. Performans ve \u0130zleme:<\/strong><br \/>\n    <code>@RefreshScope<\/code> anotasyonu, bir bean'in her yenileme \u00e7a\u011fr\u0131s\u0131nda yeniden olu\u015fturulmas\u0131na neden olur. E\u011fer \u00e7ok say\u0131da veya performans a\u00e7\u0131s\u0131ndan maliyetli bean'ler bu anotasyonla i\u015faretlenirse, her yenileme i\u015flemi anl\u0131k performans d\u00fc\u015f\u00fc\u015flerine yol a\u00e7abilir. Bu nedenle, sadece ger\u00e7ekten dinamik olarak g\u00fcncellenmesi gereken bean'leri <code>@RefreshScope<\/code> ile i\u015faretlemek \u00f6nemlidir. Ayr\u0131ca, Actuator'\u0131n sa\u011flad\u0131\u011f\u0131 metrik endpoint'lerini kullanarak yenileme i\u015flemlerinin s\u00fcrelerini ve ba\u015far\u0131 oranlar\u0131n\u0131 izleyebilirsiniz. Prometheus ve Grafana gibi ara\u00e7larla bu metrikleri g\u00f6rselle\u015ftirmek, sistemin sa\u011fl\u0131\u011f\u0131n\u0131 ve performans\u0131n\u0131 s\u00fcrekli takip etmenizi sa\u011flar.<\/p>\n<p>Bu ileri d\u00fczey teknikler, Portal Manager gibi kritik ve dinamik uygulamalar\u0131n b\u00fcy\u00fck \u00f6l\u00e7ekli ve da\u011f\u0131t\u0131k ortamlarda sorunsuz bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 ve g\u00fcncellenmesini garanti eder. Kesintisiz operasyon ve h\u0131zl\u0131 adaptasyon, modern bulut tabanl\u0131 mimarilerin temelini olu\u015fturmaktad\u0131r ve Spring Boot'un sundu\u011fu bu \u00f6zellikler, bu hedeflere ula\u015fmada kilit rol oynar.<\/p>\n<h2 id=\"sonuc-dinamik-konfigurasyonun-gelecegi-ve-sikca-sorulan-sorular\">Sonu\u00e7: Dinamik Konfig\u00fcrasyonun Gelece\u011fi ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>Bu makalede, Spring Boot uygulamalar\u0131nda, \u00f6zellikle Portal Manager gibi dinamik sistemlerde, konfig\u00fcrasyonlar\u0131 \u00e7al\u0131\u015fma zaman\u0131nda ve kesintisiz bir \u015fekilde nas\u0131l g\u00fcncelleyebilece\u011fimizi detayl\u0131 bir \u015fekilde inceledik. Geleneksel uygulama yeniden ba\u015flatma yakla\u015f\u0131mlar\u0131n\u0131n getirdi\u011fi zorluklar\u0131 a\u015fmak i\u00e7in Spring Boot Actuator'\u0131n <code>\/actuator\/refresh<\/code> endpoint'inin ve Spring Cloud Context'in <code>@RefreshScope<\/code> anotasyonunun ne kadar g\u00fc\u00e7l\u00fc ve kullan\u0131\u015fl\u0131 ara\u00e7lar oldu\u011funu g\u00f6rd\u00fck. Ayr\u0131ca, Portal Manager konfig\u00fcrasyonlar\u0131n\u0131 nas\u0131l tan\u0131mlayaca\u011f\u0131m\u0131z\u0131, Actuator'\u0131 nas\u0131l etkinle\u015ftirece\u011fimizi ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda bu yetene\u011fi nas\u0131l kullanaca\u011f\u0131m\u0131z\u0131 ad\u0131m ad\u0131m ele ald\u0131k.<\/p>\n<p>B\u00fcy\u00fck \u00f6l\u00e7ekli ve da\u011f\u0131t\u0131k sistemlerdeki ihtiya\u00e7lara cevap vermek i\u00e7in Spring Cloud Config Server ve Spring Cloud Bus gibi ileri d\u00fczey entegrasyonlar\u0131 da tart\u0131\u015ft\u0131k. Bu entegrasyonlar, y\u00fczlerce mikroservisin konfig\u00fcrasyonunu merkezi olarak y\u00f6netmeyi ve tek bir komutla t\u00fcm uygulamalarda g\u00fcncellemeleri tetiklemeyi m\u00fcmk\u00fcn k\u0131lar. G\u00fcvenlik, performans ve izleme konular\u0131ndaki en iyi pratikler de, bu kritik yetene\u011fin \u00fcretim ortamlar\u0131nda g\u00fcvenle kullan\u0131labilmesi i\u00e7in hayati \u00f6nem ta\u015f\u0131maktad\u0131r.<\/p>\n<p>Dinamik konfig\u00fcrasyon y\u00f6netimi, modern DevOps ve CI\/CD pratiklerinin temel ta\u015flar\u0131ndan biridir. Uygulama ayarlar\u0131n\u0131 an\u0131nda ve kesintisiz bir \u015fekilde de\u011fi\u015ftirebilmek, i\u015fletmelerin pazardaki de\u011fi\u015fimlere h\u0131zla adapte olmas\u0131n\u0131, yeni \u00f6zellikler sunmas\u0131n\u0131 ve operasyonel verimlili\u011fi art\u0131rmas\u0131n\u0131 sa\u011flar. Portal Manager gibi m\u00fc\u015fteri odakl\u0131 sistemler i\u00e7in bu, m\u00fc\u015fteri memnuniyetini art\u0131r\u0131rken ayn\u0131 zamanda i\u015f s\u00fcreklili\u011fini de garanti eder. \u00d6n\u00fcm\u00fczdeki d\u00f6nemde, otomatize edilmi\u015f konfig\u00fcrasyon y\u00f6netimi ve yapay zeka destekli adaptif sistemler gibi yeniliklerle bu alandaki geli\u015fmelerin daha da h\u0131zlanaca\u011f\u0131n\u0131 \u00f6ng\u00f6rmek yanl\u0131\u015f olmayacakt\u0131r. Bu beceri, her Spring Boot geli\u015ftiricisi ve sistem y\u00f6neticisi i\u00e7in vazge\u00e7ilmez bir yetkinlik haline gelmi\u015ftir.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<dl>\n<dt><strong>1. <code>\/actuator\/refresh<\/code> endpoint'ini her \u00e7a\u011f\u0131r\u0131\u015f\u0131mda uygulaman\u0131n t\u00fcm bean'leri yeniden mi olu\u015fturulur?<\/strong><\/dt>\n<dd>Hay\u0131r, yaln\u0131zca <code>@RefreshScope<\/code> anotasyonu ile i\u015faretlenmi\u015f bean'ler ve onlar\u0131n ba\u011f\u0131ml\u0131l\u0131klar\u0131 yeniden olu\u015fturulur. Di\u011fer bean'ler mevcut halleriyle kalmaya devam eder. Bu sayede, yenileme i\u015fleminin performansa etkisi minimal d\u00fczeyde tutulur.<\/dd>\n<dt><strong>2. <code>application.yml<\/code> dosyas\u0131n\u0131 do\u011frudan de\u011fi\u015ftirirsem <code>\/actuator\/refresh<\/code> \u00e7al\u0131\u015f\u0131r m\u0131?<\/strong><\/dt>\n<dd>E\u011fer konfig\u00fcrasyonlar\u0131n\u0131z sadece uygulaman\u0131n paketlendi\u011fi <code>application.yml<\/code> dosyas\u0131ndaysa ve uygulama \u00e7al\u0131\u015f\u0131rken bu dosyay\u0131 de\u011fi\u015ftirirseniz, <code>\/actuator\/refresh<\/code> bu de\u011fi\u015fikli\u011fi alg\u0131lamaz. <code>\/actuator\/refresh<\/code>, genellikle harici bir kaynaktan (\u00f6rne\u011fin, Spring Cloud Config Server, ortam de\u011fi\u015fkenleri veya komut sat\u0131r\u0131 arg\u00fcmanlar\u0131) g\u00fcncel konfig\u00fcrasyonlar\u0131 \u00e7ekmek i\u00e7in kullan\u0131l\u0131r. E\u011fer dosya tabanl\u0131 bir yenileme isteniyorsa, harici bir konfig\u00fcrasyon dizini belirten Spring Boot \u00f6zelliklerini kullanmak ve dosya sistemindeki de\u011fi\u015fiklikleri izlemek gibi ek mekanizmalar gerekebilir.<\/dd>\n<dt><strong>3. <code>@RefreshScope<\/code> her bean i\u00e7in kullan\u0131lmal\u0131 m\u0131d\u0131r?<\/strong><\/dt>\n<dd>Hay\u0131r. Yaln\u0131zca \u00e7al\u0131\u015fma zaman\u0131nda dinamik olarak de\u011fi\u015fmesini bekledi\u011finiz konfig\u00fcrasyon de\u011ferlerini i\u00e7eren bean'ler i\u00e7in <code>@RefreshScope<\/code> kullanmal\u0131s\u0131n\u0131z. T\u00fcm bean'lere bu anotasyonu eklemek, her yenileme i\u015fleminde gereksiz yere kaynak t\u00fcketimine ve potansiyel performans sorunlar\u0131na yol a\u00e7abilir.<\/dd>\n<dt><strong>4. \u00dcretim ortam\u0131nda <code>\/actuator\/refresh<\/code> g\u00fcvenli\u011fi nas\u0131l sa\u011flan\u0131r?<\/strong><\/dt>\n<dd>\u00dcretim ortam\u0131nda <code>\/actuator\/refresh<\/code> endpoint'ine eri\u015fimi mutlaka Spring Security ile kimlik do\u011frulama ve yetkilendirme mekanizmalar\u0131yla k\u0131s\u0131tlamal\u0131s\u0131n\u0131z. Ayr\u0131ca, bu endpoint'i bir API Gateway veya g\u00fcvenlik duvar\u0131 arkas\u0131na alarak sadece g\u00fcvenli a\u011flardan veya yetkili sistemlerden eri\u015fime izin vermeniz \u015fiddetle tavsiye edilir. HTTP iste\u011fi i\u00e7in TLS\/SSL (HTTPS) kullanmak da veri b\u00fct\u00fcnl\u00fc\u011f\u00fc ve gizlili\u011fi a\u00e7\u0131s\u0131ndan \u00f6nemlidir.<\/dd>\n<dt><strong>5. <code>\/actuator\/refresh<\/code> ve hot-swap \u00f6zellikleri aras\u0131ndaki fark nedir?<\/strong><\/dt>\n<dd><code>\/actuator\/refresh<\/code>, uygulaman\u0131n \u00e7al\u0131\u015f\u0131r durumdayken konfig\u00fcrasyon de\u011ferlerinin yenilenmesini sa\u011flar, yani veri odakl\u0131 bir g\u00fcncellemedir. Hot-swap ise, genellikle geli\u015ftirme ortamlar\u0131nda, bir Java s\u0131n\u0131f\u0131nda yap\u0131lan kod de\u011fi\u015fikliklerinin (metot g\u00f6vdesi gibi) uygulaman\u0131n yeniden ba\u015flat\u0131lmas\u0131na gerek kalmadan yans\u0131t\u0131lmas\u0131n\u0131 ifade eder. Hot-swap, daha \u00e7ok kod bazl\u0131 de\u011fi\u015fiklikler i\u00e7in kullan\u0131l\u0131rken, <code>\/actuator\/refresh<\/code> ayar bazl\u0131 de\u011fi\u015fiklikler i\u00e7in tasarlanm\u0131\u015ft\u0131r.<\/dd>\n<\/dl>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Spring Boot&#8217;ta Portal Manager Konfig\u00fcrasyonlar\u0131n\u0131 \/actuator\/refresh ile Canl\u0131 Yenileme Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-32137","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi is...<\/title>\n<meta name=\"description\" content=\"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi istiyorsunuz? Uygulaman\u0131z\u0131 yeniden ba\u015flatmadan, \u00e7al\u0131\u015fma zaman\u0131nda konfig\u00fcrasyon de\u011fi\u015fikliklerini nas\u0131l uygulayabilece\u011finizi ve \/actuator\/refresh endpoint&#039;inin bu s\u00fcre\u00e7te oynad\u0131\u011f\u0131 kritik rol\u00fc ad\u0131m ad\u0131m ke\u015ffedin!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi is...\" \/>\n<meta property=\"og:description\" content=\"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi istiyorsunuz? Uygulaman\u0131z\u0131 yeniden ba\u015flatmadan, \u00e7al\u0131\u015fma zaman\u0131nda konfig\u00fcrasyon de\u011fi\u015fikliklerini nas\u0131l uygulayabilece\u011finizi ve \/actuator\/refresh endpoint&#039;inin bu s\u00fcre\u00e7te oynad\u0131\u011f\u0131 kritik rol\u00fc ad\u0131m ad\u0131m ke\u015ffedin!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-18T02:30:59+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi is&#8230;\",\"datePublished\":\"2025-10-18T02:30:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/\"},\"wordCount\":4024,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/\",\"name\":\"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi is...\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-18T02:30:59+00:00\",\"description\":\"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi istiyorsunuz? Uygulaman\u0131z\u0131 yeniden ba\u015flatmadan, \u00e7al\u0131\u015fma zaman\u0131nda konfig\u00fcrasyon de\u011fi\u015fikliklerini nas\u0131l uygulayabilece\u011finizi ve \/actuator\/refresh endpoint'inin bu s\u00fcre\u00e7te oynad\u0131\u011f\u0131 kritik rol\u00fc ad\u0131m ad\u0131m ke\u015ffedin!\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi is&#8230;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi is...","description":"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi istiyorsunuz? Uygulaman\u0131z\u0131 yeniden ba\u015flatmadan, \u00e7al\u0131\u015fma zaman\u0131nda konfig\u00fcrasyon de\u011fi\u015fikliklerini nas\u0131l uygulayabilece\u011finizi ve \/actuator\/refresh endpoint'inin bu s\u00fcre\u00e7te oynad\u0131\u011f\u0131 kritik rol\u00fc ad\u0131m ad\u0131m ke\u015ffedin!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/","og_locale":"tr_TR","og_type":"article","og_title":"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi is...","og_description":"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi istiyorsunuz? Uygulaman\u0131z\u0131 yeniden ba\u015flatmadan, \u00e7al\u0131\u015fma zaman\u0131nda konfig\u00fcrasyon de\u011fi\u015fikliklerini nas\u0131l uygulayabilece\u011finizi ve \/actuator\/refresh endpoint'inin bu s\u00fcre\u00e7te oynad\u0131\u011f\u0131 kritik rol\u00fc ad\u0131m ad\u0131m ke\u015ffedin!","og_url":"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-18T02:30:59+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi is&#8230;","datePublished":"2025-10-18T02:30:59+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/"},"wordCount":4024,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/","url":"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/","name":"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi is...","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-18T02:30:59+00:00","description":"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi istiyorsunuz? Uygulaman\u0131z\u0131 yeniden ba\u015flatmadan, \u00e7al\u0131\u015fma zaman\u0131nda konfig\u00fcrasyon de\u011fi\u015fikliklerini nas\u0131l uygulayabilece\u011finizi ve \/actuator\/refresh endpoint'inin bu s\u00fcre\u00e7te oynad\u0131\u011f\u0131 kritik rol\u00fc ad\u0131m ad\u0131m ke\u015ffedin!","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/spring-boot-uygulamalarinizda-portal-manager-ayarlarini-kesintisiz-ve-aninda-guncellemek-mi-is\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Spring Boot uygulamalar\u0131n\u0131zda Portal Manager ayarlar\u0131n\u0131 kesintisiz ve an\u0131nda g\u00fcncellemek mi is&#8230;"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=32137"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32137\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}