-
스프링부트 런타임시 호스트와 포트 주소 가져오기웹개발/스프링부트 2019. 3. 21. 15:43
일단 @SpringBootApplication 이 붙은 Applicaiton.java에서 ApplicationListner라는 인터페이스를
구현해주고 거기서 받은 ip, port값을 다른클래스에서 사용할수 잇게 햇다...
Application.java
@SpringBootApplication public class Application implements ApplicationListener
{ @Autowired private ApplicationContext applicationContext; public int portnum; public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override public void onApplicationEvent(ApplicationEvent event) { // TODO Auto-generated method stub try { String ip = InetAddress.getLocalHost().getHostAddress(); int port = applicationContext.getBean(Environment.class).getProperty("server.port", Integer.class, 8080); portnum = port; } catch (UnknownHostException e) { e.printStackTrace(); } } } - @SpringbootApplication이 붙은 클래스가 ApplicationListener를 구현하도록 한다
- onApplicationEvent라는 메소드를 오버라이딩한다
- ip는 InetAddress 클래스의 getLocalHost()로 Localhost객체를 불러온후 getHostAddress()로 가져온다
- 포트는 applicationContext 클래스를 통해 가져온다
WebController.java
@Controller @AllArgsConstructor public class WebController { private PostsService postsService; private Application application; @GetMapping("/") public String main(Model model) { model.addAttribute("posts", postsService.findAllDesc()); int portnum = application.portnum; model.addAttribute("port", portnum); return "main"; } }
원하는 클래스에서 Application.java에서 생성된 portnum이라는 변수를 가져와서 쓴다.'웹개발 > 스프링부트' 카테고리의 다른 글
스프링부트 프로젝트 복사하기 (0) 2019.03.22 [문제해결]JPA를 이용한 생성시간 자동화 구현후 DB에 날짜가 null로 들어가는 문제 (0) 2019.03.22 [에러]Correct the classpath of your application so that it contains a single, compatible version of (0) 2019.03.22 댓글