You
can bind the properties using the prefix. For example, below file has the properties that are specific to beta and alpha version of the software.
application.yml
application.yml
--- beta: appName: "ChatServer_beta" appVersion: "1.5Beta" servers: - serverIp: "5.6.7.8" serverEnvironemnt: "Testing" - serverIp: "1.2.3.4" serverEnvironemnt: "Development" --- alpha: appName: "ChatServer_Alpha" appVersion: "1.5Alpha" servers: - serverIp: "15.16.17.18" serverEnvironemnt: "Testing" - serverIp: "11.12.13.14" serverEnvironemnt: "Development"
You
can bind beta properties by using below statements.
@Configuration
@ConfigurationProperties(prefix="beta")
public
class Service {
private String appName;
private String appVersion;
private List<Server> servers;
....
....
....
}
You
can bind alpha properties by using below statements.
@Configuration
@ConfigurationProperties(prefix="alpha")
public
class Service {
private String appName;
private String appVersion;
private List<Server> servers;
....
....
....
}
Find
the below working application.
Server.java
package com.sample.myApp.model; public class Server { private String serverIp; private String serverEnvironemnt; public String getServerIp() { return serverIp; } public void setServerIp(String serverIp) { this.serverIp = serverIp; } public String getServerEnvironemnt() { return serverEnvironemnt; } public void setServerEnvironemnt(String serverEnvironemnt) { this.serverEnvironemnt = serverEnvironemnt; } }
Service.java
Application.java
When you ran above application, you can able to see below messages in the console.
package com.sample.myApp.model; import java.util.List; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; @Configuration @ConfigurationProperties(prefix="beta") public class Service { private String appName; private String appVersion; private List<Server> servers; public String getAppName() { return appName; } public void setAppName(String appName) { this.appName = appName; } public String getAppVersion() { return appVersion; } public void setAppVersion(String appVersion) { this.appVersion = appVersion; } public List<Server> getServers() { return servers; } public void setServers(List<Server> servers) { this.servers = servers; } }
Application.java
package com.sample.myApp; import java.util.List; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import com.sample.myApp.model.Server; import com.sample.myApp.model.Service; @SpringBootApplication public class Application { public static void main(String[] args) { ConfigurableApplicationContext applicationContext = SpringApplication.run(Application.class, args); Service service = applicationContext.getBean(Service.class); String appName = service.getAppName(); String appVersion = service.getAppVersion(); System.out.println("*******************************************"); System.out.printf("Application Name : %s\n", appName); System.out.printf("Application Version %s\n", appVersion); System.out.println("Servers Information"); List<Server> servers = service.getServers(); for (Server server : servers) { System.out.printf("Environment : %s\n", server.getServerEnvironemnt()); System.out.printf("Server Ip : %s\n", server.getServerIp()); } System.out.println("*******************************************"); applicationContext.close(); } }
When you ran above application, you can able to see below messages in the console.
******************************************* Application Name : ChatServer_beta Application Version 1.5Beta Servers Information Environment : Testing Server Ip : 5.6.7.8 Environment : Development Server Ip : 1.2.3.4 *******************************************
Project
structure looks like below.
No comments:
Post a Comment