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());
}
}
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
Post a Comment