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
Post a Comment