origoni's Blog from Millky

origoni의 스프링 블로그 입니다.

[블로그개발_01] STS로 Spring Boot 웹 프로젝트 시작하기

블로그개발 시리즈 - 다른글 : http://millky.com/@origoni/folder/30/post/list

라이브 데모 : http://blog.millky.com/post/list

자바 웹 개발 시작하기 : http://www.slideshare.net/origoni/presentations




밀키 스프링 블로그를 오픈소스화 하기로 하였다.

지금 밀키는 크고(?) 너저분 해서 블로그의 기본기능만 심플하게 옮길 생각이다.

개발 툴을 뭘로 할까 고민을 하다가 집에있는 컴터에서도 개발을 해야 하고 하니 이클립스로 진행을 하려 한다.
요즘 회사에서는 IDEA 를 사용하고 있지만 주변을 둘러보면 아직까지는 이클립스(Eclipse)가 많이 사용되고 있다. IntelliJ는 유료인 것도 있고...

스프링에서 커스터마이징 한 STS(Spring Tool Suite) 로 간단하게 SpringBoot 프로젝트 시작하는 방법이 있어서 공유해본다.

작년에 쓴글이 있지만(http://millky.com/@origoni/post/10001000) 이번에는 밀키 스프링블로그 만드는 과정을 연재하려 한다.
사실 얼마전 시작하려 했는데;;; STS 버그로 인해 프로젝트가 이상하게 생성되어;;;; 이제서야 다시 공유를 한다.

우선 최신버전의 STS가 필요하다. 지금 기준으로 3.6.4 이다. (3.6.3.sr1 은 버그가있다. 아래에서 다룬다.)

STS 3.6.4.RELEASE

이전에 테스트 하던 버전의 경우 버그가 있으니... 꼭 STS 3.6.4.RELEASE 이상으로 다운받기 바란다.

밀키 블로그는 빌드를 그래들로 진행할 예정이다.

다운받고 처음 설치를 했다면 Gradle 플러그인을 설치하도록 하자.

대시보드의 IDE EXTENSIONS 에 들어가면

설치 할 수 있다.


이렇게 플러그인까지 설치가 완료되었으면 간단하게 시작해 보자 ^^

우선 새로운 프로젝트를 만드는데 Spring Starter Project 로 생성하면 된다.


New -> Spring Starter Project

New를 하면 아래와 같이 스프링 부트 프로젝트를 생성 할 수 있다.


나는 새로 만드는 블로그를 생성해 보려고 위와 같이 적었다.
테스트라 이것 저것 넣어 보았고 build.gradle 파일에서 간단하게 수정 가능하다.

Finish를 하면 아래와 같이 프로젝트를 만들어준다!!


이 부분이 이전 버전(3.6.3.sr1)에서는 아래와 같이 나왔다;;

잘 보면 가장 중요한 패키지 부분이 없다;;;

그래서 그냥 아래처럼 패키지가 demo로 세팅되어 나온다;;


프로젝트가 생성이 되었으니 helloworld를 찍어보자 ^^

우선.. 스프링 시큐리티를 좀 빼두어야 한다. 권한 설정에 대해서는 나중에 알아보도록 하자.

build.gradle 파일에서 compile("org.springframework.boot:spring-boot-starter-security") 부분을 주석처리 하자


그리고 아주 간단한 컨트롤러를 만들어 보자.

package com.millky.blog;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloRestController {
	@RequestMapping("/")
	public String index() {
		return "helloworld!";
	}
}

컨트롤러를 만들고 bootRun 을 한다.

프로젝트에서 오른쪽 버튼 누르고 -> Run As -> Spring Boot App 

하면 시작이 된다!


브라우저로 http://localhost:8080/ 열어보면


짜잔~ 완료 되었다! 엄청 간단하지 아니한가!!


이렇게 해서 간단하게 Spring Starter Project로 Spring Boot 프로젝트를 시작하는 법을 알아 보았다.

이 글은 스프링 또는 스프링 부트를 이미 안다는 가정 하에 간단하게 시작할 수 있는 방법이다. 

스프링을 써본 사람이라면 부트는 아주 금방 사용 할 수 있을것이다. (단지 스프링 프로젝트들 + 알파를 쓰기 좋게 묶어 놓은것이다.) 자세한 사항은 앞으로 작성해 보겠다.

스프링 부트에 대해 알고 싶은 사람은 http://docs.spring.io/spring-boot/docs/1.2.2.RELEASE/reference/htmlsingle/ 참고 부탁드린다. 문서가 너무 잘 되어있어.. 사실 더이상의 설명이 필요 없을 정도다 ^^;;


밀키 오픈소스 블로그를 만드는 과정을 계속 글로 남겨보고 싶긴한데 ^^;; 과연 잘 할 수 있을지는 모르겠다.
일주일에 한번씩이라도 도전해 봐야지.


다른글 : http://millky.com/@origoni/folder/30/post/list
코드는 : https://github.com/origoni/Spring-Blog



schemak 2015-06-17 17:43:59

안녕하세요.
올려주신내용보고 똑같이햇는데 http://localhost:8080/접속시 인증하라며 아이디/패스워드 넣으라는데 어떻게 해야할까요?

origoni 2015-06-19 07:09:17

안녕하세요.
혹시 "build.gradle 파일에서 compile("org.springframework.boot:spring-boot-starter-security") 부분을 주석처리"
요 부분 진행하셨는지 확인 부탁드립니다.
감사합니다 ^^

feelsagood 2015-07-02 23:34:59

저도 주석처리했는데 인증하라고 id와 암호를 넣으라고 나타나네요;;

origoni 2015-07-08 20:29:01

안녕하세요~
/build.gradle 파일에서 dependencies를 아래처럼 변경 하고 테스트 부탁드립니다.
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
testCompile("org.springframework.boot:spring-boot-starter-test")
}

추가적으로 실행환경과 STS 버전 자바 버전등도 알려주시면 더욱 정확한 정보를 드릴 수 있을 것 같습니다.

schemak 2015-07-14 09:58:30

감사합니다.ㅎ 잘해결되었습니다.

origoni 2015-07-15 13:56:40

잘 되셨다니 다행입니다 ^^
감사합니다.

origoni 2015-07-08 20:30:08

혹시나 해서..
지금 다시 위처럼 만들어서 테스트 해 보았는데요.. 잘 동작하고 있습니다 ㅠㅠ
안되시는 분들은 OS, Java, STS 버전등을 적어서 댓글 부탁드립니다.

jcongar 2015-07-09 14:45:50

인증시 아이디/패스워드 입력하라고 나왔는데 주석처리만으론 안되더라구요
그래서 Gradle->Refresh All하고 톰캣 서버 내렸다가 다시 올리니 되더라구요 강의 잘 보겠습니다 ㅎ

origoni 2015-07-12 11:13:43

앗 감사합니다!!

압둘라 2015-10-15 11:17:00

아래 에러가 나오네요 STS version 은 3.7.1 입니다.

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private javax.sql.DataSource org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.dataSource; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration$NonEmbeddedConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embedded database please put a supported one on the classpath.

qwdqwf1549 2016-09-05 02:31:26

메이븐에

<dependency>
<groupid>com.h2database</groupid>
<artifactid>h2</artifactid>
<version>1.3.156</version>
</dependency>

추가해주시면 해결될것같아요 ~

출처 : http://culinarydeveloper.tistory.com/8
도움 : http://okky.kr/article/287049

jaeng 2016-07-02 16:37:00

안녕하세요 스프링을 처음 시작하는 학생입니다. 기본적인 질문인것 같은데 ㅠ 써주신 대로 모두 따라했는데 오류: 기본 클래스 패키지명.프로젝트명Apllication을(를) 찾거나 로드할 수 없습니다. 라고 나오네요 이유가 뭘까요...

beeegle 2016-07-12 15:01:56

최신 STS에서 버그인지는 모르겠으나, JRE가 두개가 추가되어서 프로젝트 생성이 되는 듯 합니다. 정확한건 아닙니다만 저도 jaeng님과 같은 경우라서 아래와 같이 해결했습니다.

프로젝트 우클릭 -> Build path -> Configure build path -> Libraries 탭으로 이동하셔서, 하단에 추가되어있는 JRE System Library를 삭제해주시고, 화면 우측에 Add Library를 버튼을 눌러 라이브러리를 추가합니다.
JRE System Library 선택 -> Next -> Workspace default JRE -> Finish 이후 Apply 눌러서 적용해주시면 됩니다.

오늘도 즐프하세요.

ice3238 2016-08-12 06:27:35

안녕하세요 염치 불구 하고 하나 여쭙겠습니다.. ㅠㅠ
처음 gradle 설치 때 부터 에러가 나네요...

대시보드의 IDE EXTENSIONS 들어가서 Gradle Support 선택 후
인스톨을 진행 하면 아래와 같은 에러가 발생 합니다.
An internal error occurred during: "Computing size".
The profile is currently in use.

참고로 STS 버전은 3.6.4 이고 Mac OS를 사용 중입니다.

인터넷을 찾아보니, 임시 파일을 삭제 하라 해서
STS설치 폴더에서 아래 와 같이 실행 하였습니다.

find . -iname '._*' -exec rm -rf {} \;

위와 같이 했는대도 똑같내요.. ㅠㅠ
고견 좀 부탁드립니다..

gansik 2016-10-28 02:07:23

우왕~~잘봤습니다

ruji704 2017-01-03 15:28:26

안녕하세요 security관련해서 주석처리를 하고 처음에 구동했을때는 잘 되다가 port가 겹친다는 에러가 있어서 강제로 process를 kill하고
재실행하니깐 주석처리한 security부분이 주석적용이 안되는지 로그인하라는 창이 뜨네요 ㅜㅜ
그래서 아예 security부분을 제거하고 재실행해도 안되네요.. 해결법이 있을까요?
back to top