{"id":19102,"date":"2024-03-15T18:16:17","date_gmt":"2024-03-15T18:16:17","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/"},"modified":"2024-03-21T14:53:54","modified_gmt":"2024-03-21T14:53:54","slug":"how-to-dynamically-load-database-configurations-in-spring-boot","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/","title":{"rendered":"How to dynamically load database configurations in Spring Boot?"},"content":{"rendered":"<p>In Spring Boot, static loading of database configurations can be achieved by setting them in the application.properties or application.yml files. However, for dynamic loading of database configurations, the dynamic configuration feature of Spring Boot can be used.<\/p>\n<p>Below are the steps to implement dynamically loading database configuration.<\/p>\n<ol>\n<li>Add necessary dependencies to the pom.xml file, including Spring Boot Starter, Spring Boot DevTools, and Spring Boot Configuration Processor.<\/li>\n<li>Create a configuration class<br \/>\nCreate a class, like DatabaseConfig.java, to load database configurations. Use the @ConfigurationProperties annotation in this class to bind properties from the configuration file.<\/li>\n<li>The class DatabaseConfig is annotated with @Component and @ConfigurationProperties with a prefix of &#8220;database&#8221;. It holds properties for the url, username, and password of the database.<\/li>\n<li>Add database configuration properties in the application.properties or application.yml file.<\/li>\n<li>.properties file for application:<\/li>\n<li>The database is located at jdbc:mysql:\/\/localhost:3306\/mydb with the username as root and password as root.<\/li>\n<li>configuration file named application.yml<\/li>\n<li>database connection details:<br \/>\n  url: jdbc:mysql:\/\/localhost:3306\/mydb<br \/>\n  username: root<br \/>\n  password: root<\/li>\n<li>Load the configuration class in the main class by using the @EnableConfigurationProperties annotation.<\/li>\n<li>Declare the following imports in order to utilize the Spring Boot framework: SpringApplication, SpringBootApplication, and EnableConfigurationProperties. SpringApplication will be used to run the application, while EnableConfigurationProperties will enable the use of DatabaseConfig class for configuration properties. The main method within the Application class will run the application.<\/li>\n<\/ol>\n<p>Now, you can inject the DatabaseConfig class in your code and use its properties.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> org.springframework.beans.factory.annotation.Autowired;\r\n<span class=\"hljs-keyword\">import<\/span> org.springframework.stereotype.Service;\r\n\r\n<span class=\"hljs-meta\">@Service<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">MyService<\/span> {\r\n\r\n    <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">final<\/span> DatabaseConfig databaseConfig;\r\n\r\n    <span class=\"hljs-meta\">@Autowired<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-title function_\">MyService<\/span><span class=\"hljs-params\">(DatabaseConfig databaseConfig)<\/span> {\r\n        <span class=\"hljs-built_in\">this<\/span>.databaseConfig = databaseConfig;\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">doSomething<\/span><span class=\"hljs-params\">()<\/span> {\r\n        <span class=\"hljs-type\">String<\/span> <span class=\"hljs-variable\">url<\/span> <span class=\"hljs-operator\">=<\/span> databaseConfig.getUrl();\r\n        <span class=\"hljs-type\">String<\/span> <span class=\"hljs-variable\">username<\/span> <span class=\"hljs-operator\">=<\/span> databaseConfig.getUsername();\r\n        <span class=\"hljs-type\">String<\/span> <span class=\"hljs-variable\">password<\/span> <span class=\"hljs-operator\">=<\/span> databaseConfig.getPassword();\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u4f7f\u7528\u6570\u636e\u5e93\u914d\u7f6e\u6267\u884c\u64cd\u4f5c<\/span>\r\n    }\r\n\r\n}\r\n<\/code><\/pre>\n<p>This way, you can dynamically load database configurations. When the database configurations in the configuration file change, there is no need to restart the application &#8211; the changes will take effect automatically.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Spring Boot, static loading of database configurations can be achieved by setting them in the application.properties or application.yml files. However, for dynamic loading of database configurations, the dynamic configuration feature of Spring Boot can be used. Below are the steps to implement dynamically loading database configuration. Add necessary dependencies to the pom.xml file, including [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-19102","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to dynamically load database configurations in Spring Boot? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to dynamically load database configurations in Spring Boot?\" \/>\n<meta property=\"og:description\" content=\"In Spring Boot, static loading of database configurations can be achieved by setting them in the application.properties or application.yml files. However, for dynamic loading of database configurations, the dynamic configuration feature of Spring Boot can be used. Below are the steps to implement dynamically loading database configuration. Add necessary dependencies to the pom.xml file, including [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T18:16:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T14:53:54+00:00\" \/>\n<meta name=\"author\" content=\"Liam\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Liam\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/\"},\"author\":{\"name\":\"Liam\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\"},\"headline\":\"How to dynamically load database configurations in Spring Boot?\",\"datePublished\":\"2024-03-15T18:16:17+00:00\",\"dateModified\":\"2024-03-21T14:53:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/\"},\"wordCount\":289,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/\",\"name\":\"How to dynamically load database configurations in Spring Boot? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T18:16:17+00:00\",\"dateModified\":\"2024-03-21T14:53:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to dynamically load database configurations in Spring Boot?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\",\"name\":\"Liam\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"caption\":\"Liam\"},\"sameAs\":[\"http:\/\/Wilson\"],\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to dynamically load database configurations in Spring Boot? - Blog - Silicon Cloud","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:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/","og_locale":"en_US","og_type":"article","og_title":"How to dynamically load database configurations in Spring Boot?","og_description":"In Spring Boot, static loading of database configurations can be achieved by setting them in the application.properties or application.yml files. However, for dynamic loading of database configurations, the dynamic configuration feature of Spring Boot can be used. Below are the steps to implement dynamically loading database configuration. Add necessary dependencies to the pom.xml file, including [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T18:16:17+00:00","article_modified_time":"2024-03-21T14:53:54+00:00","author":"Liam","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Liam","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/"},"author":{"name":"Liam","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671"},"headline":"How to dynamically load database configurations in Spring Boot?","datePublished":"2024-03-15T18:16:17+00:00","dateModified":"2024-03-21T14:53:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/"},"wordCount":289,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/","name":"How to dynamically load database configurations in Spring Boot? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T18:16:17+00:00","dateModified":"2024-03-21T14:53:54+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-load-database-configurations-in-spring-boot\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to dynamically load database configurations in Spring Boot?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671","name":"Liam","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","caption":"Liam"},"sameAs":["http:\/\/Wilson"],"url":"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=19102"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19102\/revisions"}],"predecessor-version":[{"id":52825,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19102\/revisions\/52825"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=19102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=19102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=19102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}