Ace-T's Blog 내 검색 [네이버 커넥트 이웃 합니다~^-^/ 요청 大 환영~~]

ace-t의 Spring Boot 따라잡기(기본 - freeMarker 연동)

OpenSource/Spring Boot 2016.08.28 18:59
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

오랜만에 강좌를 쓰네요^0^ 

오늘은 freeMarker라는 템플릿을 이용하여  view를 만들어보겠습니다. ㅎㅎ

왜 freemarker냐?! 라고 하시면..회사에서 현재 사용하고 있어서라고..후훗


우선 지난번의 강좌를 통해 새롭게 검토하는 겸 따라서 해보겠습니다.

2016/03/22 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(셋팅편)

2016/03/22 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - 헬로우월드찍어보기!)

2016/03/23 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - SourceTree에 연결 및 Repository에 올리기)

2016/03/23 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - 외부톰캣 연동하기!)

2016/03/24 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - CouchBase 연동하기)

2016/03/24 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - logging)

2016/03/24 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - 예외처리)


셋팅편을 참고하여 2분만에 샤샤샤~(JPA는 우선 셀렉 하지 마세용~)



압축 되어진 친구를 원하는 디렉토리에 압축을 풀어보면 아래와 같이 되어있습니다.



STS던지 인텔리J던지 원하는 에디터에 연결하여 줍니다. 저는 회사에서 제공해주는 인텔리J에 연결을 해보겠슴돠~

 

그리고나서 헬로우월드 한번 찍어주시고~(위의 링크 참조!)

그리고나서 우리가 원하는 freemarker를 설정해보겠습니다.


1. 위에서 freemarker를 선택하지 않았을 경우!  build.gradle에 아래의 디펜던시를 추가!


compile('org.springframework.boot:spring-boot-starter-freemarker')


2. 우리가 접근하고 싶은 view 를 하나 만들어 봅니다. templates dir에 index.ftl 하나를 만들어 줍니다.

    확장자는 ftl 입니다.


index.ftl의 내용은 아래와 같습니다.

<html>
<h1> hello~ ${message}</h1>
</html>

 




3. 그리고 이 view를 컨트롤할 Controller를 하나 만들어줍니다.


   


    import org.slf4j.Logger;

import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

@Controller
@RequestMapping(value = "/")
public class FreeMarkerController {
public static final Logger log = LoggerFactory.getLogger(FreeMarkerController.class);

@RequestMapping(method = RequestMethod.GET)
public String showIndex(Map<String,Object> model){
String msg = "terry~";
model.put("message", msg);
return "index";
}

}


 


서버를 띄운 뒤에 아래와 같이 나오면 성공!


http://localhost:8080/





test 관련

http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html


요렇게 간단하게 웹을 구현할 수 가 있었습니다.

앞으로는 더 멋있는 녀석을 구현해보도록 하겠습니다.



 - 다음 이시간에.. -



저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

spring boot 환경 나누기(profiles)

OpenSource/Spring Boot 2016.07.18 10:38
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T



TEST Code


@RunWith(SpringJUnit4ClassRunner.class)

@SpringApplicationConfiguration(classes = LineupFantaApplication.class)

public class ServerHolderTest {


    public static final Logger logger = LoggerFactory.getLogger(ServerHolderTest.class);



    @Autowired ServerHolder serverHolder;


//    @Before

//    public void setUp(){}


    @Test

    public void testServerProfiles() throws Exception {

        Map<String,Map<String,String>> servers = serverHolder.getServerInfo();

        Assert.assertThat(servers.size(), is(1));

    }


} 


옛날 spring 방식하고 다르게 C언어처럼 main이 있으니 @SpringApplicationConfiguration(classes = LineupFantaApplication.class) 만 추가해주면 컨텍스트 쭉쭉 올라감! 굿굿!


@Autowired된 친구쪽에서 application.yml 읽어들임!

application.yml은 우리가 사용하게 되는 application.properties와 같은 친구!




@Component

@ConfigurationProperties(locations={"classpath:application.yml"})

public class ServerHolder {


    public Map<String, Map<String, String>> serverInfo = new HashMap<String, Map<String, String>>();

    public Map<String, Map<String, String>> getServerInfo() {

        return serverInfo;

    }

} 


application.yml의 내용은 아래와 같음.

serverInfo:

    - name: lineup

      ip: xxx.xxx.xxx.xxx

---


spring:

    profiles: real

serverInfo:

    - name: lineup

      ip: xxx.xxx.xxx.xxx



사용법은 아래와 같이 원하는 곳에서 사용하면 됨!

protected List<String> getBootstrapHosts() {

        return Arrays.asList(serverHolder.getServerInfo().get("0").get("ip"));

}



profiles는 tomcat같은 경우 vm argument에 이처럼 정보를 넣어서 사용!

-Dspring.profiles.active=real 옵션~안해주면 default 정보

1) 디폴트 : No active profile set, falling back to default profiles: default

2) -Dspring.profiles.active=real 옵션 : The following profiles are active: real


즉, 위의 옵션으로 yml의 정보를 real이냐 default냐 읽어들여서 profiles를할 수가 있다.

참고 사이트 : http://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html




저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

uses unchecked or unsafe operations.

OpenSource/Spring Boot 2016.04.01 17:38
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T



uses unchecked or unsafe operations. 와 같은 워닝이 뜨면 확인해보아야할 것이있다.


아래와 같이 ArrayList 를 하나 선언했다.

ArrayList keyArr = new ArrayList();


위처럼 선언을 하면 uses unchecked or unsafe operations. 라고 warning이 뜬다.


ArrayList<String> keyArr = new ArrayList<String>();  이렇게 해야 경고는 뜨지 않는다.


관련해서 이펙티브 자바책을 한번 보면 좋을것 같다.


  - 끝 -



저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

ace-t의 Spring Boot 따라잡기(기본 - 예외처리)

OpenSource/Spring Boot 2016.03.24 18:05
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

예외처리!

예외가 발생하면 그냥 찍기만 하는가?!!! 그것이 예외처리를 한것인가? 

예외의 종류는 런타임, 체크드 2가지가 있다카던데.. 어떻게 해야 예외처리 잘했다고 소문이 날것인가??


우리는 런타임예외가 발생하면 그녀석을 잡아다가! 조치를 취할 것 입니다.

1) CommonLineupException.java,CommonLineupResponse.java, ExceptionAdvice.java를 

    만들어 줍니다.




내용은?

CommonLineupException에서는

  • extends RuntimeException를 상속.
  • 생성자를 통해 메시지를 부모생성자에 전달.

  public CommonLineupException(String message){

     super(message);

  }


source

더보기


ComonLineupRespose에서는

  • message를 전달받아 getMessage()를 만들어 전달하도록 합니다.

source

더보기


ExceptionAdvice에서는

@ControllerAdvice, @ExceptionHandler, @ResponseStatus를 사용!

source

더보기


이제 예외처리를 하기 위한 것을 만들었으니 예외를 발생시켜보고 어떻게 동작하는지 알아봅시다.

tip. 보통은 로직이 있는 서비스쪽에서 런타임예외를 발생! 컨트롤러까지 올라오게 되어집니다.


TEST로 기존에 만들었던 컨트롤러에 아래의 메소드를 추가하여 줍니다.

    @RequestMapping("/fail")

    public String fail() {

        throw new CommonLineupException("  This is Fail Test!!");

    } 


결과

http://localhost:8080/lineup/fail



이것을 기반으로 예외처리 구조를 잡으면 된다!

Tip. ExceptionAdvice.java에 위에는 사용자정의 예외만 잡는것을 해보았는데

다른 일반적인 예외도 잡아서 처리가 가능함!!


   @ExceptionHandler(NoHandlerFoundException.class)

    public @ResponseBody CommonLineupResponse noHandlerFoundException(NoHandlerFoundException ex) {

        return new CommonLineupResponse("["+ex.getHttpMethod()+"] / NoHandlerFoundException~!!."+ex.getMessage());

    } 




  - 끝 -


저작자 표시 비영리 변경 금지
신고

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

ace-t의 Spring Boot 따라잡기(기본 - logging)

OpenSource/Spring Boot 2016.03.24 16:55
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


참고 : https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html

Spring Boot의 로깅은 의무적인게 아니라서 commons-logging이 제외 되어있어서 

Logback같은 녀석이 필요하면 spring-boot-starter-logging에 의존되어진 common-logging을 사용. 

(단, web을 사용한다면 spring-boot-starter-web에 포함되어있다고 한다. 굿!)

즉, build.gradle의 compile("org.springframework.boot:spring-boot-starter-web")이 있으면 OK!



logging의 레벨은 application.properties에서 조정할 수가 있다.

  • logging.level.org.springframework.web=DEBUG
의 레벨을 ERROR, INFO, DEBUG등으로 변경해서 로그를 보면 조정되어지는것을 알수가 있다.

이제 우리가 셋팅해야할 Logback logging에 대해서 알아보자.
  • logback-spring.xml을 만들어준다. logback.xml도 되지만 logback-spring.xml이 이점이 있다고 한다.

ex)


logback-spring.xml의 안의 간단한 내용은

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <logger name="org.springframework.web" level="DEBUG"/>
</configuration>

여기에서 base.xml은 spring-boot.jar에 있고 위에처럼 간단하게 처리가 가능하다. 하지만 따로 logback의 포맷으로 지지고 볶고 해도 무관!

참고할 좋은 예제는 아래에!

http://www.mkyong.com/logging/logback-xml-example/


위를 참고하여~

더보기


아래처럼 log들이 생긴다. logback의 지식이 있어야 더 잘사용할 수 있다는게 함정ㅋ 



  - 끝 -





저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

ace-t의 Spring Boot 따라잡기(기본 - CouchBase 연동하기)

OpenSource/Spring Boot 2016.03.24 11:16
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T



2016/03/23 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - 외부톰캣 연동하기!)


Rest api + CouchBase 연동

CouchBase 셋팅은 따로 다루지 않겠습니다.

이미 셋팅이 되어있다는 전제하에 진행합니다.


1) build.gradle의  dependency 추가

    compile('org.springframework.data:spring-data-couchbase:2.0.0.RELEASE') 를 추가.


2) Controller 작성

  • Controller 작성 후 Service를 호출하는 방식이 보통 MVC 패턴이며, Repository라는 interface를 implements하여 Service에서 구현해 나가는 구조 입니다. 또한 couchbase의 config관련도 필요합니다.
  • Controller 뼈대 코딩 후 필요한 Config -> Interface -> Service 순으로 만들어 가겠습니다.
  • Restful api 방식은 @RestController와 @PathVariable를 통해 간단하게 구현할 수 있습니다. 단, Restful은 아키텍처를 따로 공부하여 업무에 맞게 알맞게 구현해보세요~
  • add source

import com.kakaocorp.www.api.service.LineupDataService;

import com.kakaocorp.www.api.config.CouchBaseConfig;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.*;


import java.util.List;

import java.util.Map;


@RestController

public class LineupDataController {

    @Autowired

    CouchBaseConfig couchBaseConfig;

    @Autowired

    LineupDataService lineupDataService;


    @RequestMapping(value = "/{version}/findAll", method = RequestMethod.GET)

    public List<Map<String, Object>> getStaticData(@PathVariable String version, @RequestParam String query, @RequestParam(defaultValue = "mobile") String platform){

        if("v1".equals(version)){

            return lineupDataService.findAll(couchBaseConfig, query, platform);

        }

        return null;

    }


}



3) CouchBaseConfig.java 생성

  • extends AbstractCouchbaseConfiguration
  • add source

    @Override    
    protected List<String> getBootstrapHosts() {

        return Arrays.asList("couchbase ip or domain");

    }



    @Override

    public String getBucketName() {

        return "wirite bucket name";

    }


    @Override

    protected String getBucketPassword() {

        return "";

    }


    @Bean

    public Bucket contextBucket() throws Exception {

        return couchbaseCluster().openBucket("wirite bucket name", "");

    }


    @Bean(name = "contextTemplate")

    public CouchbaseTemplate contextTemplate() throws Exception {

        CouchbaseTemplate template = new CouchbaseTemplate(couchbaseClusterInfo(), //reuse the default bean

                contextBucket(), mappingCouchbaseConverter(), translationService() //default beans here as well

        );

        template.setDefaultConsistency(getDefaultConsistency());

        return template;

    }

 

3) CouchBaseDataReposiry interface를 하나 만듭니다.

  • 원하는 기능을 interface에 넣고 service에서 재구현할 것이다.
  • add source

import java.util.List;

import java.util.Map;

public interface CouchBaseDataRepository {

    public List<Map<String, Object>> findAll(final CouchBaseConfig couchBaseConfig, final String searchKeyword, String platform);

} 



4) CouchBaseDataService.java 생성

  • 위에서 만든 interface를 implements 하여 구현 합니다.
  • add source : N1ql을 사용 함.

아래의 소스는 프로토타입으로 간단하게 구현되었음. 무조건 실행! 아래의 소스를 바탕으로 확장하시면 됩니다.

참고 : http://developer.couchbase.com/documentation/server/4.0/n1ql/n1ql-intro/data-access-using-n1ql.html

import com.couchbase.client.java.query.N1qlQuery;

import com.couchbase.client.java.query.N1qlQueryResult;

import com.couchbase.client.java.query.N1qlQueryRow;

import com.couchbase.client.java.query.Statement;

import com.couchbase.client.java.query.dsl.path.AsPath;

import com.kakaocorp.www.api.config.CouchBaseConfig;

import com.kakaocorp.www.api.repository.CouchBaseDataRepository;

import org.springframework.dao.DataRetrievalFailureException;

import org.springframework.stereotype.Service;


import java.util.ArrayList;

import java.util.List;

import java.util.Map;


import static com.couchbase.client.java.query.Select.select;

import static com.couchbase.client.java.query.dsl.Expression.i;

import static com.couchbase.client.java.query.dsl.Expression.s;

import static com.couchbase.client.java.query.dsl.Expression.x;


@Service

public class LineupDataService implements CouchBaseDataRepository {


    @Override

    public List<Map<String, Object>> findAll(CouchBaseConfig couchBaseConfig, final String searchKeyword, String platform) {

        Statement query;


        AsPath prefix = select("D, H, P").from(i(couchBaseConfig.getBucketName()));

        query = prefix.where(x("QUERY").eq(s(searchKeyword)).and("PLATFORM").eq(s(platform)));


        logQuery(query.toString());

        N1qlQueryResult result = null;

        try {

            result = couchBaseConfig.contextBucket().query(N1qlQuery.simple(query));

        } catch (Exception e) {

            e.printStackTrace();

        }

        return extractResultOrThrow(result);

    }


    private static List<Map<String, Object>> extractResultOrThrow(N1qlQueryResult result) {

        if (!result.finalSuccess()) {

            //log.warn("Query returned with errors: " + result.errors());

            throw new DataRetrievalFailureException("Query error: " + result.errors());

        }


        List<Map<String, Object>> content = new ArrayList<Map<String, Object>>();

        for (N1qlQueryRow row : result) {

            content.add(row.value().toMap());

        }

        return content;

    }


    /**

     * Helper method to log the executing query.

     */

    private static void logQuery(String query) {

        //log.info("Executing Query: {}", query);

    }

 

  - 끝 -



저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

ace-t의 Spring Boot 따라잡기(기본 - 외부톰캣 연동하기!)

OpenSource/Spring Boot 2016.03.23 16:01
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


2016/03/23 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - SourceTree에 연결 및 Repository에 올리기)


외부 톰캣을 사용하고자 한다면!! 

jar -> war로 변경을 해주면 됩니다.


방법은? 

1) build.gradle에서 주황색 부분을 변경 jar->war

apply plugin: 'war'


war {

baseName = 'lineup-fanta'

version = '0.0.1-SNAPSHOT'

}


2) main 소스에 추가 작업

  • extends SpringBootServletInitializer
  • add overriding source

@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {

    return application.sources(LineupFantaApplication.class);

}


3) gradle clean, build 후 체크


4) 생성한 war를 톰캣에 올려서 띄워보도록 하겠습니다.

  • editor configuration을 통해 미리 받아놓은 톰캣과 연동 시킵니다.



  • 리가 생성한 war를 선택하여 줍니다.



  • 실행 ㄱ ㄱ




5) 추가적으로 build.gradle에서 exclude module 추가


compile("org.springframework.boot:spring-boot-starter-web") {

   exclude module: "spring-boot-starter-tomcat"

}


  - 끝 -






저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

ace-t의 Spring Boot 따라잡기(기본 - SourceTree에 연결 및 Repository에 올리기)

OpenSource/Spring Boot 2016.03.23 11:49
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

1. 로컬에 있는 소스를 소스트리에 연동 시킵니다.




2. 아래와 같이 gitignore.io에 접속하여 커밋하면 안되거나 불필요한 액션을 줄이기 위해 ignore할 파일들에 대해서 Generate 해줍니다.

 https://www.gitignore.io/




/.git/info의  exclude에 위에서 생성되어진 내용을 붙여넣기를 해준다.

붙여넣을 내용.

더보기


그러한 뒤에 github에 push를 해주면 된다.



  - 끝 -


저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

ace-t의 Spring Boot 따라잡기(기본 - 헬로우월드찍어보기!)

OpenSource/Spring Boot 2016.03.22 13:42
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


2016/03/22 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(셋팅편)


주저리 - 헬로우월드를 찍기전에 스프링의 구조를 한번 생각해볼 필요가 있겠습니다.

특히나 팀으로 혹은 2~3명이서 개발을 하는거라면 서로 각자 개발하지말고 먼저 물어보세요~

당신은 어떤구조로 개발하였나요? 라구요! 

주변에 너무 혼자서만 개발하시는분들이 많기 때문에 각자 자기만의 스타일을 고집한다면..

유지보수도 힘들고 커뮤니케이션을 함에 있어서도 힘든 부분이 있으니깐요! 

예를 들어 아래와 같이 기본적인 구조로 생각을 하신다는 가정하에 진행해보도록 하겠습니다.

api

  ㄴ config

  ㄴ controller

  ㄴ repository

  ㄴ service


이제 코딩을 한번 해볼 차례 입니다. 헬로우월드를 한번 찍어보겠습니다. 

controller에 아래와 같이 HelloWorldcontroller.java를 하나 만듭니다.


아래와 같이 소스코딩을한 뒤에 내장된 서버로 띄어봅니다.

소스코드

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

import org.springframework.web.bind.annotation.RequestParam;

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


@RestController

public class HelloWorldController {

    private static final String template = "Hello";

    @RequestMapping("/greeting")

    public String greeting(@RequestParam(value="name", defaultValue="World") String name) {

        return template+":"+name;

    }

}

결과는 아래와 같습니다.

http://localhost:8080/greeting?name=terry



  - 끝 -










저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

ace-t의 Spring Boot 따라잡기(셋팅편)

OpenSource/Spring Boot 2016.03.22 13:18
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

1. 목표

현재 개발중인 프로젝트에서 필요한 api를 Spring Boot로 구현하고자 함.

정리를 해두면 다른사람도 좋고 나도 좋고~도랑치고 가재잡고~

CouchBase storege - SpringBoot api



2. 환경

Mac OS X

JDK 8

Tomcat 8

Gradle 1.3.3

Spring Boot

CouchBase 4.x

인텔리J IDE 12

git


3. Spring Boot 간단 셋팅!

  • http://start.spring.io/  에 접속!
  • 아래의 그림처럼 필요한 것들을 찾아서 Dependencies 선택! 나중에 찾아서 넣어도 되니 신중하게 생각하지 않아도 됨.


위에서 Group는 패키지라고 생각하시면 됩니다. 

또한 Gradle Project Artifact를 설정, 디펜던시 설정 후에 Generaate Project!!

아래와 같이 zip파일로 프로젝트 소스가 똭!





압축을 해제한 뒤 원하는 위치에 복사!




그런 다음 인텔리J에서 프로젝트를 가져옵니다.




Gradle 기반이므로 Gradle을 선택하여 줍니다.



다음x2 을 해주면 아래와 같이 프로젝트가 import 되어집니다.

단, gradle이 로컬에 없으면 다음다음이 안될수가 있겠네요~ 고렇다면 gradle 다운 받은다음에 아래와 같이 연결 시켜주면 됩니다.





이제 소스코딩을 하거나 원하는 셋팅을 하시어 사용하시면 됩니다. 참 쉽죠잉? 

셋팅편 끝~


다음편은..항상 우리가 하던 헬로우월드찍기! 를 해보겠습니다.


2016/03/22 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - 헬로우월드찍어보기!)







저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

step by step - spring boot

OpenSource/Spring Boot 2016.02.17 03:29
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T



스프링 부트를 프로젝트에 적용시켜 구현을 하고 있다.

위의 소스는 해당 프로젝트를 위한 가이드 소스이다. 

꼭 필요한 작업이라고 생각이 되어 개발 가이드 소스를 조금씩 습득하며 구현하고 있다.

전체적인 아키텍처와 as-is 분석도 해야하니..새벽에 더 볼수 밖에 없지만 뭔가 하고있다는게 즐거운듯 하다.

또한 다른업무에 치여 손도 못댔었는데..그나마 요즘 운동을 시작했더니 새벽에 안졸리고 집중이 되어 조금이라도 코드를 짜봐서 조으다~

2016년 목표한바 성취하도록 화이팅 하자!


저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

티스토리 툴바