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로 적용하는것 마치겠습니다.

 

//

STS에서 Gradle로 Spring MVC 적용하기 #2 프로젝트 생성 및 build.gradle 설정 및 JSP파일 생성STS에서 Gradle로 Spring MVC 적용하기 #2 프로젝트 생성 및 build.gradle 설정 및 JSP파일 생성

Posted at 2015. 6. 19. 00:05 | Posted in Spring/Gradle

 

Spring start project (Spring boot)에서 제공되는게 있긴한데 Spring MVC 풀버전을 사용하고 싶으니 그냥 프로젝트를 만들어보겠습니다.

 

프로젝트를 새로 만듭니다.

 

 

 

 

 

Java Quickstart 때문에 기본으로 생성되는 패키지들을 지워줍니다. (새로 패키지를 만들어서 사용할것이기 때문에)

 

 

 

그런후에 이제 build.gradle 을 먼저 수정하겠습니다.

 
apply plugin: 'java'
apply plugin: 'eclipse-wtp'	// 이클립스에서 구동하고 배포하기위해 플러그인 설치합니다.
apply plugin: 'war'

sourceCompatibility = 1.8	// 자바 버전입니다.
targetCompatibility = 1.8

version = '1.0'

// 귀찮은 버전관리를 편하게 하기 위해서
def version = [
spring: '4.1.6.RELEASE',
servletAPI: '3.1.0',
commonsCollections: '3.2.1',
junit: '4.12',
slf4j: '1.7.12'
]

eclipse {
	// 빌드하고나면 프로젝트정보도 같이 지워지는데, Gradle프로젝트임을 인식시켜줍니다.
	project.natures "org.springsource.ide.eclipse.gradle.core.nature"
	wtp {
		facet {
			facet name: 'jst.web', version: '3.1'
			facet name: 'jst.java', version: '1.8'
		}
	}
}

jar {
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart',
                   'Implementation-Version': version
    }
}

repositories {
    mavenCentral()
}

dependencies {
	// ${version.~}변수는 위에서 정의한 버전으로 사용됩니다.
    providedCompile "javax.servlet:javax.servlet-api:${version.servletAPI}"
	
	compile "org.springframework:spring-webmvc:${version.spring}"
	
	compile "org.slf4j:slf4j-api:${version.slf4j}"
    compile group: 'commons-collections', name: 'commons-collections', version: "${version.commonsCollections}"
    testCompile group: 'junit', name: 'junit', version: "${version.junit}"
}

[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'	// 인코딩 UTF-8로 통일합니다.

test {
    systemProperties 'property': 'value'
}

uploadArchives {
    repositories {
       flatDir {
           dirs 'repos'
       }
    }
}
 

 

 

그리고 JSP파일을 생성해주는데, src > main 에서 (webapp/WEB-INF/views)폴더를 만들고 생성해줍니다.

 

 

 

 

 

그리고 src/main/webapp/WEB-INF/views/ 밑에 JSP파일을 만듭니다. (home.jsp)

 

 

 

 

 

 

그리고나서 home.jsp 에 테스트용 문구를 대충 적어줍니다. (Spring MVC 기본프로젝트처럼~)

 

 

 

그러고 난후 일단 빌드를 해보겠습니다.

프로젝트 마우스 오른쪽버튼을 눌러 Run as > Gradle build... 을 눌러줍니다

 

 

 

정확히 어떤작업인지는 공부가 덜되어서 잘 모르지만 프로젝트 빌드정보 지워주고 이클립스 프로젝트라는걸 설정해주는 옵션 명령어입니다.

clean

cleanEclipse

eclipse

 

 

 

빌드를 하게되면 대충 아래와 같은 결과가 나옵니다.

 

 

 

 

빌드후에 프로젝트에서 F5를 눌러 새로고침을 하게되면 build.gradle 에서 의존성 추가해준 라이브러리들이 자동으로

추가됩니다.

 

 

 

 

이상 build.gradle과 home.jsp 및 프로젝트 빌드를 마쳤구요.

이제 자바파일 초기설정은 다음 게시물에서 올리겠습니다 !

 

//

STS에서 Gradle로 Spring MVC 적용하기 #1 도구 설치 및 설정하기STS에서 Gradle로 Spring MVC 적용하기 #1 도구 설치 및 설정하기

Posted at 2015. 6. 18. 01:28 | Posted in Spring/Gradle

 

STS(Spring Tool Suite) 에서 제공하는 템플릿인 Spring MVC Project 를 만들면 Maven 으로 만들어집니다.

물론 Configure > Convert to Gradle Projects 가 있긴 하지만 말이 좋아 변환이지 제대로 변환이 안됩니다.

껍데기만 변환되는 꼴...

그리고 검색해도 자료가 별로 없고 잘모르기도 하고 cmd창에서 빌드하고 톰캣올리고 하려니 너무 귀찮아서 포기했다가 얼마전 다시했는데 STS에서도 귀찮은 반복적인 작업없이 되길래 작성해봅니다.

저같은 초보분들도 쉽게 하실수 있을겁니다 ~

 

http://dynaticy.tistory.com/

 

위에 분 자료를 참고하여 적용하였습니다.

 

 

제 PC와 도구들 스펙입니다.

 

OS : Windows 8.1 64bit

(이하 도구들 설치는 윈도우 8.1 64비트 기준으로 작성되었으니 각자 환경에 맞게 다운받으세요!)

 

 

 

STS : 3.6.4RELEASE (http://spring.io/tools/sts/all/)

 

 

 

 

메인 페이지(http://spring.io/)에서 다운로드 받는곳이 어딘지 몰라 한참 헤맸는데, 그냥 검색창에 Spring Tool Suite의 줄인말인 sts 검색해서 접근하는 방법밖에 모르겠습니다. 암튼 Based on Eclipse 4.4.2 클릭하시면 자신의 OS에 맞게 다운로드 하시면 됩니다.

 

 

Java : jdk1.8.0_45 (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)

 

 

링크가 언제까지 유지될지는 모르지만 라이센스 동의하시고 받으시면 됩니다. 링크가 깨지면 오라클 검색하셔서 다운받으시면 됩니다.

 

 

Tomcat : 8.0.23 (http://tomcat.apache.org/download-80.cgi)

 

 

자료도 많고 안정적인 톰캣 7 버전을 사용하고 있었는데 STS에서 바로 Run on Server 항목이 실행되지않아 8.0을 설치하고 나니 바로 사용이 가능했습니다. 왜그런지는 잘 모르지만 암튼 그래서 8 버전으로 업그레이드...

윈도우쓰시는 분들 중에 저처럼 초보분이거나 GUI툴이 좋다 하시는분들은 그냥 Windows Installer를 받으세요

서비스 자동으로 등록되고 껐다키기가 편하고 좋습니다.

 

 

 

Gradle Plugin :

 

 

 

 

 

저는 이미 설치를 해놔서 저렇게 나오는데 Help > Dashboard > Extensions 에서 Gradle검색하셔서
Gradle Support 설치하시면 됩니다.

 

 

 

STS, 자바, 톰캣, 그래들 플러그인 설치가 다 끝나면 준비가 끝났습니다. 다음글에서 계속 올리도록 할게요~

 

//
^