Using
'org.springframework.core.env.Environment' class, you can get all the
environment properties.
Below
snippet return all the environment properties as map.
public Map<String, Object> configs() {
Map<String, Object> properties = new HashMap<>();
Iterator iterator = ((AbstractEnvironment) env).getPropertySources().iterator();
while (iterator.hasNext()) {
PropertySource propertySource = (PropertySource) iterator.next();
if (propertySource instanceof MapPropertySource) {
String[] propertyNames = ((MapPropertySource) propertySource).getPropertyNames();
for (String propName : propertyNames) {
properties.put(propName, propertySource.getProperty(propName));
}
}
}
return properties;
}
Find the
below working application.
package com.sample.app;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.AbstractEnvironment;
import org.springframework.core.env.Environment;
import org.springframework.core.env.MapPropertySource;
import org.springframework.core.env.PropertySource;
@SpringBootApplication
public class App implements CommandLineRunner {
@Autowired
private Environment env;
public static void main(String args[]) {
ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
}
public Map<String, Object> configs() {
Map<String, Object> properties = new HashMap<>();
Iterator iterator = ((AbstractEnvironment) env).getPropertySources().iterator();
while (iterator.hasNext()) {
PropertySource propertySource = (PropertySource) iterator.next();
if (propertySource instanceof MapPropertySource) {
String[] propertyNames = ((MapPropertySource) propertySource).getPropertyNames();
for (String propName : propertyNames) {
properties.put(propName, propertySource.getProperty(propName));
}
}
}
return properties;
}
@Override
public void run(String... args) throws Exception {
Map<String, Object> map = configs();
System.out.println("****************************************");
for (String key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
System.out.println("****************************************");
}
}
Create
application.properties file under src/main/resources folder.
server.port=9999
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>springbootCore</groupId>
<artifactId>springbootCore</artifactId>
<version>1</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
</dependencies>
</project>
Run
App.java, you can see below messages in console.
**************************************** gopherProxySet : false PATH : /usr/bin:/bin:/usr/sbin:/sbin awt.toolkit : sun.lwawt.macosx.LWCToolkit spring.groovy.template.cache : false file.encoding.pkg : sun.io java.specification.version : 1.8 sun.cpu.isalist : sun.jnu.encoding : UTF-8 spring.thymeleaf.cache : false java.class.path : /Users/krishna/Documents/EclipseWorkSpaces/Learnings/springbootCore/target/classes:/Users/krishna/.m2/repository/org/springframework/boot/spring-boot-starter/2.1.6.RELEASE/spring-boot-starter-2.1.6.RELEASE.jar:/Users/krishna/.m2/repository/org/springframework/boot/spring-boot/2.1.6.RELEASE/spring-boot-2.1.6.RELEASE.jar:/Users/krishna/.m2/repository/org/springframework/spring-context/5.1.8.RELEASE/spring-context-5.1.8.RELEASE.jar:/Users/krishna/.m2/repository/org/springframework/spring-aop/5.1.8.RELEASE/spring-aop-5.1.8.RELEASE.jar:/Users/krishna/.m2/repository/org/springframework/spring-beans/5.1.8.RELEASE/spring-beans-5.1.8.RELEASE.jar:/Users/krishna/.m2/repository/org/springframework/spring-expression/5.1.8.RELEASE/spring-expression-5.1.8.RELEASE.jar:/Users/krishna/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.1.6.RELEASE/spring-boot-autoconfigure-2.1.6.RELEASE.jar:/Users/krishna/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.1.6.RELEASE/spring-boot-starter-logging-2.1.6.RELEASE.jar:/Users/krishna/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar:/Users/krishna/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar:/Users/krishna/.m2/repository/org/slf4j/slf4j-api/1.7.26/slf4j-api-1.7.26.jar:/Users/krishna/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.11.2/log4j-to-slf4j-2.11.2.jar:/Users/krishna/.m2/repository/org/apache/logging/log4j/log4j-api/2.11.2/log4j-api-2.11.2.jar:/Users/krishna/.m2/repository/org/slf4j/jul-to-slf4j/1.7.26/jul-to-slf4j-1.7.26.jar:/Users/krishna/.m2/repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/Users/krishna/.m2/repository/org/springframework/spring-core/5.1.8.RELEASE/spring-core-5.1.8.RELEASE.jar:/Users/krishna/.m2/repository/org/springframework/spring-jcl/5.1.8.RELEASE/spring-jcl-5.1.8.RELEASE.jar:/Users/krishna/.m2/repository/org/yaml/snakeyaml/1.23/snakeyaml-1.23.jar:/Users/krishna/.m2/repository/org/springframework/boot/spring-boot-devtools/2.1.6.RELEASE/spring-boot-devtools-2.1.6.RELEASE.jar java.vm.vendor : Oracle Corporation sun.arch.data.model : 64 server.error.include-stacktrace : ALWAYS java.vendor.url : http://java.oracle.com/ user.timezone : Asia/Kolkata os.name : Mac OS X java.vm.specification.version : 1.8 LOGNAME : krishna user.country : IN sun.java.launcher : SUN_STANDARD spring.resources.chain.cache : false sun.boot.library.path : /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib spring.resources.cache.period : 0 sun.java.command : com.sample.app.App http.nonProxyHosts : local|*.local|169.254/16|*.169.254/16 SHELL : /bin/bash SSF_LIBRARY_PATH_64 : /Applications/Secure Login Client.app/Contents/MacOS/lib/libsapcrypto.dylib sun.cpu.endian : little spring.mvc.log-resolved-exception : true user.home : /Users/krishna user.language : en java.specification.vendor : Oracle Corporation spring.freemarker.cache : false java.home : /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre SSF_LIBRARY_PATH : /Applications/Secure Login Client.app/Contents/MacOS/lib/libsapcrypto.dylib TMPDIR : /var/folders/z6/sfz8h4s11bg905bg7yf0g6340000gq/T/ file.separator : / line.separator : spring.h2.console.enabled : true XPC_FLAGS : 0x0 java.vm.specification.vendor : Oracle Corporation java.specification.name : Java Platform API Specification java.awt.graphicsenv : sun.awt.CGraphicsEnvironment java.awt.headless : true __CF_USER_TEXT_ENCODING : 0x1F7:0x0:0x0 spring.template.provider.cache : false Apple_PubSub_Socket_Render : /private/tmp/com.apple.launchd.xrK7AadmQO/Render spring.reactor.stacktrace-mode.enabled : true sun.boot.class.path : /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/classes server.servlet.jsp.init-parameters.development : true sun.management.compiler : HotSpot 64-Bit Tiered Compilers ftp.nonProxyHosts : local|*.local|169.254/16|*.169.254/16 java.runtime.version : 1.8.0_191-b12 user.name : krishna path.separator : : APP_ICON_92687 : ../Resources/Eclipse.icns JAVA_MAIN_CLASS_84687 : com.sample.app.App os.version : 10.14.6 java.endorsed.dirs : /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib/endorsed java.runtime.name : Java(TM) SE Runtime Environment file.encoding : UTF-8 JAVA_STARTED_ON_FIRST_THREAD_92687 : 1 spring.beaninfo.ignore : true server.port : 9999 java.vm.name : Java HotSpot(TM) 64-Bit Server VM XPC_SERVICE_NAME : org.eclipse.platform.ide.19784 java.vendor.url.bug : http://bugreport.sun.com/bugreport/ java.io.tmpdir : /var/folders/z6/sfz8h4s11bg905bg7yf0g6340000gq/T/ java.version : 1.8.0_191 user.dir : /Users/krishna/Documents/EclipseWorkSpaces/Learnings/springbootCore os.arch : x86_64 SQLITE_EXEMPT_PATH_FROM_VNODE_GUARDS : /Users/krishna/Library/WebKit/Databases PID : 84687 java.vm.specification.name : Java Virtual Machine Specification java.awt.printerjob : sun.lwawt.macosx.CPrinterJob USER : krishna sun.os.patch.level : unknown spring.mustache.cache : false SSH_AUTH_SOCK : /private/tmp/com.apple.launchd.mX0NF5ajRW/Listeners java.library.path : /Users/krishna/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:. SNC_LIB_64 : /Applications/Secure Login Client.app/Contents/MacOS/lib/libsapcrypto.dylib java.vm.info : mixed mode java.vendor : Oracle Corporation java.vm.version : 25.191-b12 SNC_LIB : /Applications/Secure Login Client.app/Contents/MacOS/lib/libsapcrypto.dylib server.servlet.session.persistent : true java.ext.dirs : /Users/krishna/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java sun.io.unicode.encoding : UnicodeBig java.class.version : 52.0 socksNonProxyHosts : local|*.local|169.254/16|*.169.254/16 HOME : /Users/krishna ****************************************
You can
download complete working application from this link.
No comments:
Post a Comment