How to get local server host and port in Spring Boot? -


i'm starting spring boot application mvn spring-boot:run.

one of @controllers needs information host , port application listening on, i.e. localhost:8080 (or 127.x.y.z:8080). following spring boot documentation, use server.address , server.port properties:

@controller public class mycontroller {      @value("${server.address}")     private string serveraddress;      @value("${server.port}")     private string serverport;      //...  } 

when starting application mvn spring-boot:run, following exception:

org.springframework.beans.factory.beancreationexception: error creating bean name 'mycontroller': injection of autowired dependencies failed; nested exception  org.springframework.beans.factory.beancreationexception: not autowire field: ... string ... serveraddress; nested exception java.lang.illegalargumentexception: not resolve placeholder 'server.address' in string value "${server.address}" 

both server.address , server.port cannot autowired.

how can find out (local) host/address/nic , port spring boot application binding on?

ip address

you can network interfaces networkinterface.getnetworkinterfaces(), ip addresses off networkinterface objects returned .getinetaddresses(), string representation of addresses .gethostaddress().

port

if make @configuration class implements applicationlistener<embeddedservletcontainerinitializedevent>, can override onapplicationevent port number once it's set.

@override public void onapplicationevent(embeddedservletcontainerinitializedevent event) {     int port = event.getembeddedservletcontainer().getport(); } 

Comments

Popular posts from this blog

java - Spring Data JPA: Why findOne(id) executing delete query internally? -

python - Mongodb How to add addtional information when aggregating? -

java - Incorrect order of records in M-M relationship in hibernate -