STS에서 Gradle로 Spring MVC 적용하기 #3 자바파일 설정하기STS에서 Gradle로 Spring MVC 적용하기 #3 자바파일 설정하기

Posted at 2015. 6. 20. 08:45 | Posted in Spring/Gradle

 

Gradle 기본 프로젝트로 만들고나서 기본 패키지 및 파일들을 지저분해서 지웠고, 새로 만들겠습니다.

저는 패키지 메인을 com.gradle.mvc 만들겠습니다.

 

 

 

 

그리고, 그 com.gradle.mvc 안에 컨트롤러 파일인 HomeController.java를 만들어줍니다.

 

 

 
package com.gradle.mvc;

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class HomeController {
	
	private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
	
	@RequestMapping(value = "/", method = RequestMethod.GET)
	public String home(Locale locale, Model model) {
		logger.info("Welcome home! The client locale is {}.", locale);
		
		Date date = new Date();
		DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
		
		String formattedDate = dateFormat.format(date);
		
		model.addAttribute("serverTime", formattedDate );
		
		return "home";
	}

}
 

 

 

 

그러고나서 다시 설정정보를 가질 패키지인 com.gradle.mvc.config 를 만들어줍니다. (아까 패키지 한꺼번에 안만든건 패키지안에 내용물없이 다른 패키지 만드니까 사라져서 그랬습니다. 상위 패키지명이 같으면 자동으로 사라지나 봅니다.)

 

 

 

 

com.gradle.mvc.config 패키지 안에는 AppConfig.javaAppInitializer.java 파일 2개를 만듭니다.

 

먼저 AppConfig.java 를 아래와 같이 만들겠습니다.

 

 

컨트롤러에서 편하게 jsp와 맵핑시키기 위해 ViewResolver함수와

리소스 인식을 위한 addResourceHandlers 함수를 작성합니다.

 
package com.gradle.mvc.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

import com.gradle.mvc.HomeController;

@Configuration
@EnableWebMvc
public class AppConfig extends WebMvcConfigurerAdapter {

	@Bean
	public HomeController homeController(){
		return new HomeController();
	}
	
	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		// TODO Auto-generated method stub
		registry.addResourceHandler("/resources/**").addResourceLocations(
				"/resources/");
	}

	@Bean
	public ViewResolver getViewResolver() {
		InternalResourceViewResolver resolver = new InternalResourceViewResolver();
		resolver.setPrefix("/WEB-INF/views/");
		resolver.setSuffix(".jsp");
		return resolver;
	}

}
 

 

 

 

그리고 AppInitializer.java 를 아래와 같이 만듭니다.

 

 

AppInitializer 에서는 DispatcherServlet 을 설정시켜줍니다.

 

 

이제 다 끝났습니다. 빌드해서 톰캣으로 돌려봅니다.

 

 

 

 

잘 되는것을 확인할 수 있습니다. 첨에 잘 몰라서 어색하고 그런데 확실히 메이븐보다 가벼워보이고 자바파일 수정할때마다 빌드 안해도 되는것 같습니다. build.gradle 이 수정될때만 해주면 될것같은데.. (걍 느낌상입니다.... 잘 모르겠습니다ㅋ) 그냥 Run on Server 하니까 바로바로 적용되더군요. 너무 편해서 이제 메이븐 당분간 안쳐다볼것 같습니다.

 

이상으로 STS에서 Spring MVC를 Gradle로 적용하는것 마치겠습니다.

 

//
^