Configuration Properties

1.

2.

3. DemoApplication Class
package com.example.configurationproperties;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;

@SpringBootApplication
public class DemoApplication {

public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(DemoApplication.class, args);
MyAppConfig config=(MyAppConfig) ctx.getBean("myAppConfig");
System.out.println(config.toString());
}
}


4. MyAppConfig Class

package com.example.configurationproperties;

import org.springframework.stereotype.Component;

@Component
public class MyAppConfig {
private String appName;
private String appDescription;
private String adminFirstName;
private String adminEmail;
public String getAppName() {
return appName;
}
public void setAppName(String appName) {
this.appName = appName;
}
public String getAppDescription() {
return appDescription;
}
public void setAppDescription(String appDescription) {
this.appDescription = appDescription;
}
public String getAdminFirstName() {
return adminFirstName;
}
public void setAdminFirstName(String adminFirstName) {
this.adminFirstName = adminFirstName;
}
public String getAdminEmail() {
return adminEmail;
}
public void setAdminEmail(String adminEmail) {
this.adminEmail = adminEmail;
}
@Override
public String toString() {
return "MyAppConfig [appName=" + appName + ", appDescription=" + appDescription + ", adminFirstName="
+ adminFirstName + ", adminEmail=" + adminEmail + "]";
}

}

5.  application.yml file

myconfig:
  app-name: My Application Name
  app-description: ${myconfig.app-name} is a Spring Boot Application
  admin-first-name : Chandra 
  admin-last-name: Vega
  adminEmail: abc@gmail.com
  

6. Run Program.

It will display Following in console.

2018-03-22 22:09:04.903  INFO 23948 --- [           main] c.e.c.DemoApplication                    : Started DemoApplication in 4.748 seconds (JVM running for 5.776)
MyAppConfig [appName=null, appDescription=null, adminFirstName=null, adminEmail=null]

-------------------------------------------
7. Now Modify MyAppConfig Class.
package com.example.configurationproperties;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class MyAppConfig {
@Value("${myconfig.app-name}")
private String appName;
private String appDescription;
private String adminFirstName;
private String adminEmail;
public String getAppName() {
return appName;
}
public void setAppName(String appName) {
this.appName = appName;
}
public String getAppDescription() {
return appDescription;
}
public void setAppDescription(String appDescription) {
this.appDescription = appDescription;
}
public String getAdminFirstName() {
return adminFirstName;
}
public void setAdminFirstName(String adminFirstName) {
this.adminFirstName = adminFirstName;
}
public String getAdminEmail() {
return adminEmail;
}
public void setAdminEmail(String adminEmail) {
this.adminEmail = adminEmail;
}
@Override
public String toString() {
return "MyAppConfig [appName=" + appName + ", appDescription=" + appDescription + ", adminFirstName="
+ adminFirstName + ", adminEmail=" + adminEmail + "]";
}

}

8. Run Program.

It will display Following in console.
018-03-22 22:26:54.442  INFO 12352 --- [           main] c.e.c.DemoApplication                    : Started DemoApplication in 4.907 seconds (JVM running for 5.914)
MyAppConfig [appName=My Application Name, appDescription=null, adminFirstName=null, adminEmail=null]

------------------------------------------
9. Add following code in pom file

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>


10 Modify code in MyAppConfig
package com.example.configurationproperties;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "myconfig")
public class MyAppConfig {
//@Value("${myconfig.app-name}")
private String appName;
private String appDescription;
private String adminFirstName;
private String adminEmail;
public String getAppName() {
return appName;
}
public void setAppName(String appName) {
this.appName = appName;
}
public String getAppDescription() {
return appDescription;
}
public void setAppDescription(String appDescription) {
this.appDescription = appDescription;
}
public String getAdminFirstName() {
return adminFirstName;
}
public void setAdminFirstName(String adminFirstName) {
this.adminFirstName = adminFirstName;
}
public String getAdminEmail() {
return adminEmail;
}
public void setAdminEmail(String adminEmail) {
this.adminEmail = adminEmail;
}
@Override
public String toString() {
return "MyAppConfig [appName=" + appName + ", appDescription=" + appDescription + ", adminFirstName="
+ adminFirstName + ", adminEmail=" + adminEmail + "]";
}

}

11. Run program

2018-03-22 22:40:41.494  INFO 23424 --- [           main] c.e.c.DemoApplication                    : Started DemoApplication in 4.799 seconds (JVM running for 5.813)
MyAppConfig [appName=My Application Name, appDescription=My Application Name is a Spring Boot Application, adminFirstName=Chandra, adminEmail=abc@gmail.com]




  

Comments

Popular posts from this blog