이번 포스팅은 스프링 부트를 활용하여 웹 애플리케이션 만들기 예제를 적을 것이다.
이번에 스프링 부트 웹 애플리케이션을 만들면서 여러 문제가 생겼엇는데 이에 대해서도 같이 언급할 것이다.
아래는 간단한 스프링 부트 애플리케이션을 구성하면서 생긴 문제들이다.
1. Whitelabel Error Page 에러 (@SpringBootApplication 사용시 주의할 점)
2. spring boot address already in use
먼저 문제점에 대한 대책을 적기 전에 스프링 부트 웹 애플리케이션 구성에 대해 적는다.
위 프로젝트는 maven project로 시작하였으며 ide환경은 IntelliJ IDEA CE 버전이다.
위 프로젝트에서 가장 중요한 파일들은
* HelloController.java
* Application.java
* application.properties
* pom.xml
이다.
* HelloController.java
* Application.java
* application.properties
- 현재는 아무것도 없으나 이전 포스트(http://coalamovement.tistory.com/48)처럼 속성을 추후에 넣을때 중요하게 작동한다.
* pom.xml
위와 같은 코드로 run을 수행하고 http://localhost:8080 으로 접속하면 아래와 같은 화면이 나올 것이다.
하지만 제대로 되기 전에 몇가지 잘못한 점이 있어서 위에서 언급한 문제가 생겼다. 이에 대한 해결책은 아래와 같다.
1. Whitelabel Error Page 페이지가 나옴.(@SpringBootApplication 사용시 주의할 점)
문제 원인 및 해결책 : @SpringBootApplication 은 [ @Configuration, @EnableAutoConfiguration, @ComponentScan]을 모두 포함시킨 것과 같다. 해당 annotation을 사용시, 디폴트 패키지의 사용을 권장하지 않고 반드시 피해야 한다.든 jar의 모든 클래스를 읽어야 하므로 특정한 문제가 발생할 수 있다. 그러므로 위 프로젝트 구조를 보듯이 default package에서 컨트롤러를 모두 작성하는 것이 아니라 하위 package를 만들어서 java file을 놓아야지 scan 등이 가능하여 문제가 생기지 않는다.
2. spring boot address already in use
문제 원인 및 해결책 : IntelliJ를 사용시에 run을 하면 application이 계속해서 켜져 있는 상태로 된다 이럴때 반드시 Application을 Stop하여 중복 실행 되지 않도록 해야한다.
* 스프링 부트 web application 작성시 유용하게 사용하는 템플릿 설명 - > http://millky.com/@origoni/post/1144?language=ko_kr