jar를 쉽게 묶어주는 이클립스 플러그인입니다.


보통 서버에 프로젝트를 jar파일로 묶어 올리게 되면 해당 프로젝트에 Add된 jar들의 path는 일일이 잡아줘야됩니다.


이러한 번거로움을 해소하기 위해 나온 플러그인이 fat 플러그인입니다.


fat플러그인은 path를 잡아줄 필요없이 프로젝트 export시 Add된 jar들 까지 통으로 묶어버리는 아주 편리한 플러그인 입니다.




jar로 묶인 파일을 서버에 올린후 기타 설정없이 java -jar xxx.jar 하면 손쉽게 데몬이 가동하겠죠? ~




luna 이하버젼
http://sourceforge.net/projects/fjep/files/fatjar/fatjar_0_0_31/net.sf.fjep.fatjar_0.0.31.zip/download


net.sf.fjep.fatjar_0.0.31.jar

 

 

luna 최신버젼 or mars (참고로 neon 버젼에서는 안됩니다 ... TT)

http://www.oschina.net/code/snippet_570396_36930


net.sf.fjep.fatjar_0.0.32.jar

 



위 파일중 하나를 eclipse 설치폴더 내의 plugins 폴더 안으로 복사 후 이클립스를 재실행하면 아래와 같이 Build Fat jar가 추가됩니다.

 

 

이후는 jar-name 설정과 Main-class 만 설정해 주시면 프로젝트내에 사용된 모든 jar 파일들이 묶여서 생성되는것을 보실수 있으십니다.~

 

끝.

 

Spring Boot 시작하기 

- #9. Srping Boot JSP ModelAndView 설정하기



8장에 이어 ModelAndView 를 이용해 jstl로 데이터를 연동하는 진행해 보겠습니다.



ModelAndViewTestController.java

package com.example.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class ModelAndViewTestController {
  
    @RequestMapping(value="/mv")                // http://localhost/mv
    public ModelAndView root() {
        ModelAndView mv = new ModelAndView();
        
        List listTest = new ArrayList();
        
        listTest.add("test1");
        listTest.add("test2");
        listTest.add("test3");
        
        mv.addObject("listTest",listTest);      // jstl로 호출
        mv.addObject("ObjectTest","테스트입니다."); // jstl로 호출
        mv.setViewName("mv/testMv");         // 실제 호출될 /WEB-INF/jsp/model/testMv.jsp
        return mv;                                      
    }
}

** 맨 마지막줄에 </string></string> 은 무시하셔요 **


/WEB-INF/jsp/mv/testMv.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>

ModelAndView 테스트 페이지입니다.


${ObjectTest}
${listTest}

${listTest}


로 작성하신 후

http://localhost/mv 를 호출하시면 됩니다.





Spring Boot 시작하기 

- #8. Srping Boot JSP view 설정하기



이번 장은 JSP 파일들을 연결 할 수 있는 방법을 알아 보겠습니다. viewer 의 연결은 여러가지 방법( thymeleaf, velocity 등등 )이 있으나 사용해 보지 않은 관계로 JSP viewer 로 연결토록 하겠습니다.



spring-boot-starter-web 에 포함된 tomcat 은 JSP 엔진을 포함하고 있지 않습니다.


pom.xml 에 아래 내용 추가. 

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

위와 같이 jasper 와 jstl 을 의존성에 포함시켜줘야 JSP파일의 구동이 가능합니다.


application.properties 에 아래 내용 추가. 

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp


jsp 파일은 Springboot 의 templates 폴더안에서 작동하지 않습니다.

/webapp/WEB-INF/jsp 폴더를 만든 다음 jsp 파일들을 넣어야됩니다.

그럼 이제 controller 와 jsp 파일을 설정해 보겠습니다.


JspViewTestController.java

package com.example.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class JspViewTestController {
    
    @RequestMapping(value="/")      // localhost
    public String root() {
        return "viewtest";          // 실제 호출될 /WEB-INF/jsp/viewtest.jsp        
    }
    
    @RequestMapping(value="/test")  // localhost/test
    public String test() {
        return "test/test2";        // 실제 호출될 /WEB-INF/jsp/test/viewtest2.jsp        
    }

}


/WEB-INF/jsp/viewtest.jsp

/WEB-INF/jsp/test/test2.jsp

위 파일들에 내용은 임의로 작성해주시면 됩니다.




위와 같이 설정해 주시면 됩니다.

http://localhost

http://localhost/test


를 하시면 jsp 파일들이 열리는 것을 확인하실수 있습니다.




다음으로 ModelAndView 설정을 알아보겠습니다.




Spring Boot 시작하기

- #7. Mybatis Multi DataSource 운용


이번장에서는 Spring boot로 mybatis 연동시 2개 이상의 DataSource를 연동하는 방법을 살펴 보도록 하겠습니다. 앞장의 설정과 곂치는 부분이 있으니 참고부탁드려요.



pom.xml 에 아래 내용 추가. 

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
			
		<dependency>
			<groupId>org.mariadb.jdbc</groupId>
			<artifactId>mariadb-java-client</artifactId>
			<version>1.3.2</version>
		</dependency>
		
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.3.0</version>
		</dependency>
		
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.2.3</version>
		</dependency>

# dependency 추가 후 이클립스에서 alt + F5를 실행하면 자동으로 jar파일들을 추가합니다.  ( 프로젝트 우클릭 -> maven -> Update Project.. )




application.properties내에 아래 내용 추가
두개의 db계정에 대한  정보 설정

# DB1
spring.db1.datasource.driverClassName=org.mariadb.jdbc.Driver
spring.db1.datasource.url=jdbc:mariadb://localhost1:3306/test1
spring.db1.datasource.username=test
spring.db1.datasource.password=test

# DB2
spring.db2.datasource.driverClassName=org.mariadb.jdbc.Driver
spring.db2.datasource.url=jdbc:mariadb://localhost2:3306/test2
spring.db2.datasource.username=test
spring.db2.datasource.password=test


아래와 같이 DataBaseConfig 파일을 두개로 생성합니다.

Database1Config.java

package com.example;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@MapperScan(value="com.example.dao1", sqlSessionFactoryRef="db1SqlSessionFactory")
@EnableTransactionManagement
public class Db1DatabaseConfig {

    @Bean(name = "db1DataSource")
    @Primary
    @ConfigurationProperties(prefix = "spring.db1.datasource")
    public DataSource db1DataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "db1SqlSessionFactory")
    @Primary
    public SqlSessionFactory db1SqlSessionFactory(@Qualifier("db1DataSource") DataSource db1DataSource, ApplicationContext applicationContext) throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(db1DataSource);
        sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:com/example/dao1/*.xml"));
        return sqlSessionFactoryBean.getObject();
    }

    @Bean(name = "db1SqlSessionTemplate")
    @Primary
    public SqlSessionTemplate db1SqlSessionTemplate(SqlSessionFactory db1SqlSessionFactory) throws Exception {

        return new SqlSessionTemplate(db1SqlSessionFactory);
    }
}



Database2Config.java

package com.example;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@MapperScan(value="com.example.dao2", sqlSessionFactoryRef="db2SqlSessionFactory")
@EnableTransactionManagement
public class Db2DatabaseConfig {

    @Bean(name = "db2DataSource")
    @ConfigurationProperties(prefix = "spring.db2.datasource")

    public DataSource db2DataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "db2SqlSessionFactory")
    public SqlSessionFactory db2SqlSessionFactory(@Qualifier("db2DataSource") DataSource db2DataSource, ApplicationContext applicationContext) throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(db2DataSource);
        sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:com/example/dao2/*.xml"));
        return sqlSessionFactoryBean.getObject();
    }

    @Bean(name = "db2SqlSessionTemplate")
    public SqlSessionTemplate db2SqlSessionTemplate(SqlSessionFactory db2SqlSessionFactory) throws Exception {

        return new SqlSessionTemplate(db2SqlSessionFactory);
    }
}



DbController.java

package com.example.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.example.service.DbService;

@RestController
public class DbController {
    @Autowired
    DbService dbService;
    
    @RequestMapping("/")
    public @ResponseBody String root_test() throws Exception{   
        return "Hello World";
    }

    @RequestMapping("/db1")
    public @ResponseBody String db1() throws Exception{
        return dbService.getDb1Dual();
    }
    
    @RequestMapping("/db2")
    public @ResponseBody String db2() throws Exception{
        return dbService.getDb2Dual();
    }
}



DbService.java

package com.example.service;

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

import com.example.dao1.Db1Mapper;
import com.example.dao2.Db2Mapper;

@Service
public class DbService {

	@Autowired
	Db1Mapper db1Mapper;
	@Autowired
    Db2Mapper db2Mapper;

	/* select dual */
    public String getDb1Dual() throws Exception{
        return db1Mapper.getDb1Dual();
    }

    /* select dual */
    public String getDb2Dual() throws Exception{
        return db2Mapper.getDb2Dual();
    }

}


Db1Mapper.java

package com.example.dao1;

public interface Db1Mapper {
        public String getDb1Dual() throws Exception;
}


Db2Mapper.java

package com.example.dao2;

public interface Db2Mapper {
 	public String getDb2Dual() throws Exception;
}


Db1.xml

src/main/resources/com/exmaple/dao1/Db1.xml 로 생성





	




Db2.xml

src/main/resources/com/exmaple/dao2/Db2.xml 로 생성





	




여기 까지 진행하시면 두개의 Database로 연결되는 것을 보실 수 있으실껍니다.


해당 이클립스의 폴더 구조는 아래를 참고 하세요.




demo_muliDataSource.zip


위의 zip 파일을 풀어서 #5-2 이클립스 셋팅과 동일하게 진행하시면 바로 MultiDataSource 가 적용되는것을 확인하실 수 있으십니다.


솔라라스나 리눅스 같은 서버에도 그대로 풀어서 maven 만 실행하시면 동일한 웹프로젝트를 확인하실 수 있습니다.


Spring Boot 시작하기

- #6. MariaDb + Mybatis 연동


이번장에서는 Database 연동에 대해 진행하겠습니다.

mariaDB는 미리 설치가 되어져 있어야됩니다.



pom.xml 에 아래 내용 추가. 

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
			
		<dependency>
			<groupId>org.mariadb.jdbc</groupId>
			<artifactId>mariadb-java-client</artifactId>
			<version>1.3.2</version>
		</dependency>
		
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.3.0</version>
		</dependency>
		
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.2.3</version>
		</dependency>

# dependency 추가 후 이클립스에서 alt + F5를 실행하면 자동으로 jar파일들을 추가합니다.  ( 프로젝트 우클릭 -> maven -> Update Project.. )


application.properties내에 아래 내용 추가
db계정 / id , pw는 설치하신 MariaDB 정보 입력

spring.datasource.driverClassName=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/test
spring.datasource.username=test
spring.datasource.password=test


DatabaseConfig.java

package com.example; import javax.sql.DataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration @MapperScan(basePackages="com.example.dao") @EnableTransactionManagement public class DatabaseConfig { @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); sessionFactory.setMapperLocations(resolver.getResources("classpath:com/example/dao/*.xml")); return sessionFactory.getObject(); } @Bean public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) throws Exception { final SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory); return sqlSessionTemplate; } }


DbController.java

package com.example.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.example.service.DbService;

@RestController
public class DbController {
    @Autowired
    DbService dbService;
    
    @RequestMapping("/")
    public @ResponseBody String root_test() throws Exception{   
        return "Hello World";
    }

    @RequestMapping("/now")
    public @ResponseBody String now() throws Exception{
        return dbService.getDual();
    }
}


DbService.java

package com.example.service;

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

import com.example.dao.DbMapper;

@Service
public class DbService {

	@Autowired
	DbMapper dbMapper;

	/* select dual */
    public String getDual() throws Exception{
        return dbMapper.getDual();
    }

}


DbMapper.java

package com.example.dao;

public interface DbMapper {
    /* DB Select  */
	public String getDual() throws Exception;
}


Db.xml

src/main/resources/com/exmaple/dao/Db.xml 로 생성

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.dao.DbMapper">

   	<!-- /* select dual */ -->
	<select id="getDual" resultType="java.lang.String">
		SELECT NOW() FROM DUAL
	</select>

</mapper>


결과화면


http://localhost/now

현재 시각이 출력되는 것을 볼 수 있습니다.



총 수정 / 추가파일은 아래그림과 같습니다.



# maraiDB 의 설치 및 연동은 따로 블로깅하도록 하겠습니다.

Spring Boot 시작하기

- #5_3. Spring Boot 웹 페이지 설정


앞서 Whitelabel Error Page 를 띄우기 까지 살펴보았습니다. 이제 정상적인 페이지 호출을 진행하도록 하겠습니다.



  Spring Boot Port 설정


기본적으로 설정된 8080 포트를 80포트로 변환하겠습니다.

( http://localhost:8080 -> http://localhost )




application.properties 파일에 아래 구문을 추가 해 주시면 됩니다.
server.port=80


  Spring Boot 페이지 출력


Whitelabel Error page 가 아닌 Text를 출력 하는 페이지를 작성토록 하겠습니다.



HelloWorld.java 파일을 생성해 주세요.

package com.example;

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

@RestController
public class HelloWorld {
    @RequestMapping("/")
    public @ResponseBody String root_test() throws Exception{
        return "Hello World";
    }

    @RequestMapping("/demo")
    public @ResponseBody String demo_test() throws Exception{
        return "데모 페이지에 접속 하셨습니다.";
    }
}

위 HelloWorld.java 파일을 생성 후


여기 까지 생성이 완료되시면

아래와 같은 페이지들을 보실 수 있습니다.



앞서 말씀드린대로 localhost는 각 서버에 맞는 ip를 적어 주시면됩니다.~



  Spring Boot 재가동


Spring-boot를 재가동 해주시면 됩니다.

혹, 기존 Spring-boot 모듈이 떠 있는 상태라면


Windows 작업 관리자 에서 javaw.exe 의 프로세스 끝내기를 하신 후

프로젝트 우클릭(demo) -> Run As -> Java Application 를 진행하세요.


아니면 아래 그림처럼 로그창에서 빨간 버튼을 클릭하신 후 재가동 하셔도 됩니다.



Spring Boot 시작하기

- #5_2. Eclipse Srping Boot 웹프로젝트

생성 / 가동



이번 장에서는 #3. 에서 진행 하였던 centOS에 Spring boot 웹프로젝트 생성을 동일하게 Eclipse 에서 같은 방식으로 진행해 보도록 하겠습니다.


( 이 방식은 프로젝트를 import 시키는 방식입니다. 이클립스에서 new project 생성방식과는 다른 방식이니 참고 부탁드려요.)




  Spring Boot 웹 프로젝트 생성하기 (#3 과 중복내용)


우선 아래 사이트에 접속해 정보를 입력하고 demo.zip 파일을 다운받겠습니다.

http://start.spring.io



* 주의 : search for dependencies 아래 inputbox에 WEB을 필히 입력하셔야 됩니다~~~~


Generate ProJect 버튼을 클릭하게되면 demo.zip 파일을 다운받수 있습니다.


압축을 해제 하면 아래와 같이 deom 폴더내에 5개의 파일/폴더가 생성됨을 볼 수 있습니다.



이제 이클립스로 돌아가서 위 demo 폴더를 import 해주도록 하겠습니다.



Existing Maven Projects 를 선택합니다.



demo.zip 을 해제한 demo 폴더를 선택 후 Finish




아래와 같이 Maven Project 생성




  Spring Boot 웹 프로젝트 가동하기 (Embeded Tomcat 실행)


이클립스에서 톰캣 가동은 간단합니다. ^^

프로젝트 우클릭(demo) -> Run As -> Java Application



DemoApplication - com.example 클래스 선택


아래와 같이 Embeded Tomcat 이 가동되어진 것을 볼 수 있습니다.



  Spring Boot 웹 페이지 실행

웹 브라우져에 http://localhost:8080 입력합니다.



아래와 같이 Whitlabel Error Page 가 뜬다면 셋팅이 완료된 것입니다.


페이지 설정은 #4의 내용을 그대로 답습하시면 됩니다. ~ ~

Spring Boot 시작하기

- #5_1. 이클립스 설치



이번 챕터 5에서는 이클립스에 Spring-boot 프로젝트를 생성 시키는 방법에 대해 알아보도록 하겠습니다.


이클립스 설치 부터 진행하겠습니다.

이클립스는 neon 으로 설치하도록 하겠습니다.




http://www.eclipse.org/ 에서 다운로드 진행





다운로드 완료 후 eclipse-inst-win64.exe 파일이 생성 되었습니다.

이번 버젼에서는 installer를 지원해주네요..

OS 버젼도 알아서 판단해주고 이클립스 설치가 한결 간편해졌네요.



위 그림처럼 Eclipse IDE for Java Developers 를 선택하시고 install을 진행합니다.

설치가 완료되면 아래와 같이 LAUNCH 를 실행할 것인가를 뭍네요 클릭해주세요~




eclipse Neon 의 설치가 완료되었습니다.

오랜만에 다시 설치하는 이클립스지만 엄청 쉬워졌네요...

기본적으로 maven, gradle 등을 지원해주고 있어 원하는 플러그인만 따로 설치해주시면 될것 같습니다.


다음은 장으로는 - #3. Spring Boot 웹 프로젝트 생성

을 이클립스에서 진행하도록 하겠습니다.


Spring Boot 시작하기

- #4. MariaDB + Mybatis 연동


이번 장에서는 DataBase 연결에 대해 알아보도록 하겠습니다.

mariaDb로 진행하였습니다.

기본적으로 DB의 준비는 되어 있으셔야됩니다.~




  mariaDB + Mybatis 연동


이전장의 demo 프로젝트의 연속으로 진행하겠습니다.

아래의 파일들을 추가해 주시면됩니다.



DatabaseConfig.java

package com.example;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@MapperScan(basePackages="com.example.dao")
@EnableTransactionManagement
public class DatabaseConfig {

    @Bean
    public  SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        sessionFactory.setMapperLocations(resolver.getResources("classpath:com/example/dao/*.xml"));
        return sessionFactory.getObject();
    }
    
    @Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) throws Exception {
      final SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory);
      return sqlSessionTemplate;
    }

}


Spring Boot 시작하기

- #3. Spring Boot 웹 프로젝트 생성



JDK 와 MAVEN 의 설정이 완료된 후 Embeded Tomcat 을 이용하여 서버 가동을 해보도록 하겠습니다.



  Spring Boot 웹 프로젝트 생성하기


우선 아래 사이트에 접속해 정보를 입력하고 demo.zip 파일을 다운받겠습니다.

http://start.spring.io



Generate ProJect 버튼을 클릭하게되면 demo.zip 파일을 다운받수 있습니다.


압축을 해제 하면 아래와 같이 5개의 파일/폴더가 생성됨을 볼수있습니다.



위 파일들을 앞서 셋팅된 서버에 업로드 해주세요.


# mkdir /home

# cd /home

# mkdir demo

# cd demo


임의로 /home/demo 를 생성 하였습니다. demo 폴더에 압축해제 된 파일들을 업로드 한 후


# mvn spring-boot:run



위와 같이 Embeded Tomcat 이 실행 되어진것을 볼수 있습니다.



  Spring Boot 웹 페이지 실행


웹 브라우져에 http://192.169.1.10:8080 입력합니다.

(서버의 ip를 입력합니다. 포트는 기본 8080으로 셋팅되어져 있어서

http://서버의IP:8080 과 같은 형식으로 입력합니다. 포트는 방화벽 오픈 확인요)



아래와 같이 Whitlabel Error Page 가 뜬다면 셋팅이 완료된 것입니다.

(localhost 는 ip노출때문에 임의로 작성하였으니 본인 서버IP를 입력하시면 됩니다.)

Error 가 아닌 실 페이지는 다음 장에서 다시 살펴보겠습니다.

+ Recent posts