노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.


Spring Boot 소개 및 HelloWorld 작성


- Spring Boot Application 작성 하기

- Spring Boot(Jar)를 War 배포/전환 하기


Spring은 수년간 좋은 프레임웍이었지만 결점은 거의 없었다. 이 강좌에서, Spring Boot의 소개는 Spring Boot가 얼마나 결점들을 해결하면서 최신 현대적인 소프트웨어 아키텍처를 지원하는지를 보여준다.

저자는 2014년말경 부터 spring boot를 사용했으며, 최신버젼 1.3.3으로 이 문서를 작성했다.


What is Spring Boot ?

한 문장으로, Spring Boot는 Spring Framework에서 XML Configuration을 빼고, 통합된 서버를 제공한다.


Spring Boot Components


- Spring Boot Auto Configure

스프링 프로젝트를 다양하게 자동 구성하는 모듈. Batch, Data JPA, Hibernate, JDBC등의 프레임웍을 감지할 수 있다. 감지하게 되면, 자동 구성을 하고, (생성된) 프레임웍은 다소 필수적인 기본(구성)값을 갖는다.

- Spring Boot Core ,  Spring Boot CLI ,  Spring Boot Actuator

이 프로젝트가 추가 되면, 어플리케이션을 확실하게 기업 특성(보안, 지표, 기본 에러 페이지등)이 가능하게 한다.

- Spring Boot Starters ,  Spring Boot Tools


How to use Spring Boot


다른 글에서 어떻게 사용하고 어떻게 Spring Boot를 실행하는지를 보여주겠지만, 여기서는

아래 절차를 따라하는 것이 필요하다.


- 초기 설정을 생성하기 위해 스프링 초기화를 사용할 수 있다.

  : start.spring.io를 방문하거나 이클립스/IDEA에서 쓸 수있는 STS(Spring Tool Suite)를 사용해서 Spring Boot Starters를 선택한다.

  : start.spring.io를 사용하게 되면, zip파일을 다운로드해야 하고, workspace를 구성해야한다.


- 빌드Tool 로써 Maven 또는 Gradle를 선택할 수 있다.

- 필요한 code를 추가한다.

- mvn clean package를 사용하거나 이클립스/IDEA에서 빌드하고 jar를 생성하라.

- 기본으로 JAR는 통합 Tomcat server에 포함되고, JAR를 실행하므로써, 프로그램을 사용할 수 있다.


http://www.adeveloperdiary.com/java/spring-boot/an-introduction-to-spring-boot/



How to Create Spring Boot Application Step By Step


1) Create Spring Boot Application using start.spring.io 

- 선택 : Web(필수), Actuator(옵션)

옵션 선택후에 Generate Project를 누르면, 프로젝트가 다운로드 시작된다.

다운로드 완료후에 풀고, import를 한다.



* Eclipse에서 생성시 선택 화면

* Dependencies는 필요한 부분을 선택


2) Controller 작성 및 실행


@RestController
public class HelloRestController {


    @RequestMapping("/")
    public String index() {

         return "helloworld!";
    }

}

3) Run Spring Boot Application in Eclipse ( Run As -> Spring Boot App )




* 실행 오류 Dependencies에서 DB(MySQL, PostgreSQL)를 선택후에 설정을 하지 않는 

경우에는 다음과 같은 에러가 발생한다.

***************************
APPLICATION FAILED TO START
***************************

Description:

Cannot determine embedded database driver class for database type NONE


- application.properties에 아래와 같은 항목과 알맞게 우측 내용을 채워야 한다.

#DataSource settings : set here configuration for the database connection
#spring.datasource.url=
#spring.datasource.username=
#spring.datasource.password=
#spring.datasource.driver-class-name=org.postgresql.Driver



* Spring Boot,  jar -> war 배포로 변경


- Spring Boot Application -> Tomcat에 war 배포 하기


1) Application을 SpringBootServletInitializer으로 extends한다.

-- org.springframework.boot.context.web.SpringBootServletInitializer

-- org.springframework.boot.web.support.SpringBootServletInitializer

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }

}

2) pom,xml에서 war로 packing를 변경한다

<packaging>war</packaging>

3) pom.xml에서 tomcat dependency를 추가한다. ( spring-boot-starter-tomcat )

<dependencies>
    <!-- … -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- … -->
</dependencies>

- 추가후 Maven -> Update Project 실행 필요


* 실행 오류 : The selection cannot be run on any server.


- tomcat server선택시에 상단의 붉은색 메시지 부분을 확인 후에 해제

 해제는 Project Facets


( start.spring.io 의 default설정 값으로 보임 )


참고 : 

http://www.adeveloperdiary.com/java/spring-boot/create-spring-boot-application-step-step/ ,

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


http://camon85.blogspot.co.id/2015/12/spring-boot-war.html

Spring Boot war배포


http://stackoverflow.com/questions/35702975/how-to-deploy-a-simple-spring-boot-with-gradle-build-system-to-apache-tomcat

How to deploy a simple Spring Boot (with Gradle build system) to Apache Tomcat (real server, not embed server)?

package hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
package hello;

public class Greeting {

    private final long id;
    private final String content;

    public Greeting(long id, String content) {
        super();
        this.id = id;
        this.content = content;
    }

    public long getId() {
        return id;
    }

    public String getContent() {
        return content;
    }

}
package hello;

import java.util.concurrent.atomic.AtomicLong;

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

@RestController
public class GreetingController {

    private static final String template = "Hello, %s";
    private final AtomicLong counter = new AtomicLong();

    @RequestMapping("/greeting")
    public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
        return new Greeting(counter.incrementAndGet(), String.format(template, name));
    }

}


http://stackoverflow.com/questions/32571437/why-am-i-getting-project-facet-cloud-foundry-standalone-application-version-1-0

Why am I getting “Project facet Cloud Foundry Standalone Application version 1.0 is not supported”?



블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,