반응형

사용 된 기술 :   Java SE 1.8 | Log4j 2.8.2 | 메이븐 3.3.9 | Jackson API 2.8.7 | Eclipse Neon.3

RollingFileAppender는 특정 크기 제한에 도달하거나 날짜 / 시간 패턴이 더 이상 적용되지 않으면 로그 파일을 롤오버하는 파일 첨부 프로그램입니다.

이 글에서는,를 사용 RollingFileAppender하여 이전 로그 파일을 백업하고 압축하는 방법을 설명합니다 

Jar dependencies

pom.xml 파일을 편집하고 log4j2 및 Jackson API 종속성을 추가하십시오.

<dependencies>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.8.2</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.8.2</version>
  </dependency>
  <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.7</version>
  </dependency>

  <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.7</version>
  </dependency>

  <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.8.7</version>
  </dependency>
</dependencies>

날짜 및 시간을 기준으로 롤링

TimeBasedTriggeringPolicy 를 사용하여 <FilePattern/>다음과 같이 요소에 사용 된 날짜 및 시간 패턴을 기반으로 로그 파일을 롤오버 할 수 있습니다 .

<RollingFile name="RollingFile">
  <FileName>C:/log/mylog.log</FileName>
  <FilePattern>C:/log/time-based-logs/%d{yyyy-MM-dd-hh-mm}.log.zip</FilePattern>
  <PatternLayout>
    <Pattern>%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n</Pattern>
  </PatternLayout>
  <Policies>
    <TimeBasedTriggeringPolicy interval="2" modulate="true" />
  </Policies>
  <DefaultRolloverStrategy max="5" />
</RollingFile>

다음은 날짜 / 시간에 기초한 파일 롤링의 날짜 / 시간 패턴 샘플입니다.

날짜 / 시간 패턴기술Intervale 속성 예
% d {yyyy-MM-dd-hh-mm} .log.zip매분마다 로그 파일 롤링

interval = 2이면 2 분마다 롤오버가 발생합니다.

예 :  2017-07-26-09-57.log.zip ,  2017-07-26-09-59.log.zip ,  2017-07-26-10-01.log.zip ,  2017-07-26- 10-03.log.zip 등 ..

% d {yyyy-MM-dd-hh} .log.zip로그 파일을 매 시간 롤업하십시오.

interval = 4이면 4 시간마다 롤오버가 발생합니다.

예 :  2017-07-26-09.log.zip ,  2017-07-26-10.log.zip ,  2017-07-26-11.log.zip  

% d {yyyy-MM-dd} .log.zip매일 로그 파일 롤링

interval = 1이면 롤오버가 매일 발생합니다.

예 :  2017-07-26.log.zip ,  2017-07-27.log.zip 등

다음은 log4j2.xml2 분마다 파일을 롤링하기위한 파일 의 전체 예제입니다  .

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>

    <!-- Console Appender -->
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n" />
    </Console>

    <!-- Rolling File Appender -->
    <RollingFile name="RollingFile">
      <FileName>C:/log/mylog.log</FileName>
      <FilePattern>C:/log/time-based-logs/%d{yyyy-MM-dd-hh-mm}.log.zip</FilePattern>
      <PatternLayout>
        <Pattern>%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n</Pattern>
      </PatternLayout>
      <Policies>
        <TimeBasedTriggeringPolicy interval="2" modulate="true" />
      </Policies>
      <DefaultRolloverStrategy max="5" />
    </RollingFile>

  </Appenders>
  <Loggers>
    <Logger name="com.boraji.tutorial.log4j2" level="debug" additivity="false">
      <AppenderRef ref="RollingFile" />
      <AppenderRef ref="Console" />
    </Logger>
    <Root level="trace">
      <AppenderRef ref="Console" />
    </Root>
  </Loggers>
</Configuration>

<DefaultRolloverStrategy>요소를 제거하기 전에 5 개의 파일을 유지하는 롤오버 전략을 정의합니다.

위의 log4j 2 구성을 테스트하는 간단한 Java 프로그램.

MainApp.java

package com.boraji.tutorial.log4j2;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class MainApp {

   private static final Logger logger = LogManager.getLogger(MainApp.class);

   public static void main(String[] args) {

      for (int i = 0; i < 10000; i++) {
         logger.info("Rolling file appender example...");
         try {
            Thread.sleep(500);
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
      }

   }
}

 

파일 크기에 따른 롤링

SizeBasedTriggeringPolicy 를 사용하여 다음과 같이 파일 크기에 따라 로그 파일을 롤오버 할 수 있습니다 .

<RollingFile name="RollingFile">
  <FileName>C:/log/mylog.log</FileName>
  <FilePattern>C:/log/size-based-logs/%d{yyyy-MM-dd-hh}-%i.log.zip</FilePattern>
  <PatternLayout>
    <Pattern>%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n</Pattern>
  </PatternLayout>
  <Policies>
    <SizeBasedTriggeringPolicy size="10 KB"/>
  </Policies>
  <DefaultRolloverStrategy max="5" />
</RollingFile>

KB, MB 또는 GB 접미 부와 함께 파일 크기를 바이트 단위로 지정할 수 있습니다.

다음은 요소 log4j2.xml의 지정된 크기를 기반으로 파일 롤링을위한 전체  파일입니다 <SizeBasedTriggeringPolicy/>.

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>

    <!-- Console Appender -->
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n" />
    </Console>

    <!-- Rolling File Appender -->
    <RollingFile name="RollingFile">
      <FileName>C:/log/mylog.log</FileName>
      <FilePattern>C:/log/size-based-logs/%d{yyyy-MM-dd-hh}-%i.log.zip</FilePattern>
      <PatternLayout>
        <Pattern>%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n</Pattern>
      </PatternLayout>
      <Policies>
        <SizeBasedTriggeringPolicy size="10 KB" />
      </Policies>
      <DefaultRolloverStrategy max="5" />
    </RollingFile>

  </Appenders>
  <Loggers>
    <Logger name="com.boraji.tutorial.log4j2" level="debug" additivity="false">
      <AppenderRef ref="RollingFile" />
      <AppenderRef ref="Console" />
    </Logger>
    <Root level="trace">
      <AppenderRef ref="Console" />
    </Root>
  </Loggers>
</Configuration>

다음은 위의 log4j2.xml 설정을 테스트하는 간단한 자바 프로그램이다.

package com.boraji.tutorial.log4j2;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class MainApp {

   private static final Logger logger = LogManager.getLogger(MainApp.class);

   public static void main(String[] args) {

      for (int i = 0; i < 50000; i++) {
         logger.info("Rolling file appender example...");
      }

   }
}

cron 표현식을 기반으로 한 롤링

다음과 같이 CronTriggeringPolicy 를 사용하여 지정된 cron 표현식을 기반으로 로그 파일을 롤오버 할 수 있습니다 .

<RollingFile name="RollingFile">
  <FileName>C:/log/mylog.log</FileName>
  <FilePattern>C:/log/cron-based-logs/%d{yyyy-MM-dd-hh-mm}-%i.log.zip</FilePattern>
  <PatternLayout>
    <Pattern>%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n</Pattern>
  </PatternLayout>
  <Policies>
    <CronTriggeringPolicy schedule="0 0/2 * 1/1 * ? *" />
  </Policies>
  <DefaultRolloverStrategy max="5" />
</RollingFile>

다음은 cron 표현식에 의해 엘리먼트의 속성에 log4j2.xml지정된 매 2 분마다 롤오버를 트리거 하는 전체  파일 입니다.schedule<CronTriggeringPolicy/>

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>

    <!-- Console Appender -->
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n" />
    </Console>

    <!-- Rolling File Appender -->
    <RollingFile name="RollingFile">
      <FileName>C:/log/mylog.log</FileName>
      <FilePattern>C:/log/cron-based-logs/%d{yyyy-MM-dd-hh-mm}-%i.log.zip</FilePattern>
      <PatternLayout>
        <Pattern>%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n</Pattern>
      </PatternLayout>
      <Policies>
        <CronTriggeringPolicy schedule="0 0/2 * 1/1 * ? *" />
      </Policies>
      <DefaultRolloverStrategy max="5" />
    </RollingFile>

  </Appenders>
  <Loggers>
    <Logger name="com.boraji.tutorial.log4j2" level="debug" additivity="false">
      <AppenderRef ref="RollingFile" />
      <AppenderRef ref="Console" />
    </Logger>
    <Root level="trace">
      <AppenderRef ref="Console" />
    </Root>
  </Loggers>
</Configuration>

다음은 위의 log4j2.xml 설정을 테스트하는 간단한 자바 프로그램이다.

package com.boraji.tutorial.log4j2;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class MainApp {

   private static final Logger logger = LogManager.getLogger(MainApp.class);

   public static void main(String[] args) {

      for (int i = 0; i < 1000; i++) {
         logger.info("Rolling file appender example...");
         try {
            Thread.sleep(1000);
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
      }

   }
}


반응형
반응형

기본적으로 Spring Boot 애플리케이션에서 'Starter'를 사용하는 경우 Logback 프레임 워크가 로깅에 사용됩니다. 

이 글에서는 Spring 부팅 애플리케이션에서 log4j 2 프레임 워크를 설정하는 방법을 배우게 될 것이다.

이 예제에 사용 된 도구 및 기술은 다음과 같습니다.

  • Spring Boot 1.5.8.RELEASE
  • Log4j 2.7
  • Maven 3.5.2
  • Eclipse Neon.3 (4.6.3)

예를 보자 ...

프로젝트 구조

다음과 같은 프로젝트 구조를 검토하십시오.

spring-boot-log4j.png

관련 -  이클립스 IDE에서 메이븐 프로젝트를 만드는 방법 .

Jar dependencies

우리가 알고있는 것처럼 기본적으로 의존 관계 관리를 위해 Starter 를 사용하는 경우 Logback이 로깅에 사용됩니다 스프링 부트 응용 프로그램에서 log4j 2를 사용하려면 Logback을 제외시킨 다음 log4j 2 Starter 를 다음과 같이 포함시켜야 합니다.

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.boraji.tutorial.springboot</groupId>
  <artifactId>spring-boot-log4j2-example</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <properties>
    <java.version>1.8</java.version>
  </properties>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.8.RELEASE</version>
  </parent>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>

Log4j 2 구성

 src/main/resources폴더안에 log4j2.xml생성 후 파일을 그 안에 넣고, 다음과 같은 코드를 작성합니다.

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
    <!-- Console Appender -->
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n" />
    </Console>
    <!-- File Appender -->
    <File name="File" fileName="d:/app.log">
      <PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n" />
    </File>
    
  </Appenders>

  <Loggers>
    <!-- Log everything in custom package -->
    <Logger name="com.boraji.tutorial.springboot" level="debug" additivity="false">
      <AppenderRef ref="Console" />
      <AppenderRef ref="File" />
    </Logger>

    <!-- Log everything in Spring Boot -->
    <Logger name="org.springframework.boot" level="debug" additivity="false">
      <AppenderRef ref="Console" />
      <AppenderRef ref="File" />
    </Logger>

    <!-- Log everything in Spring Core -->
    <Logger name="org.springframework.core" level="debug" additivity="false">
      <AppenderRef ref="Console" />
      <AppenderRef ref="File" />
    </Logger>

    <Root level="error">
      <AppenderRef ref="Console" />
      <AppenderRef ref="File" />
    </Root>
    
  </Loggers>
</Configuration>

 

Run application

주석으로 @SpringBootApplication 주석이 달린 메인 클래스를 작성  하여 log4j 2 구성을 다음과 같이 테스트하십시오.

MainApp.java

package com.boraji.tutorial.springboot;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MainApp {
  
  private static Logger logger = LogManager.getLogger(MainApp.class);

  public static void main(String[] args) {
    logger.info("Starting Spring Boot application..");
    SpringApplication app = new SpringApplication(MainApp.class);
    app.run(args);
  }
}

를 실행하면 MainApp.java콘솔 출력은 다음과 같이 보입니다.

spring-boot-log4j_01.png

소스 다운로드


반응형
반응형

이 글에서는 스프링 부트 프레임 워크를 사용하여 스프링 MVC 웹 애플리케이션을 만들고 부트 스트랩하는 방법을 설명하겠다. JSP를 웹 애플리케이션의보기로 사용합니다.

이 응용 프로그램에 사용되는 도구 및 기술은 다음과 같습니다.


  • Spring Boot 1.5.4.RELEASE
  • Spring WebMVC 4.3.9.RELEASE
  • Tomcat Embedded 8.5
  • JavaSE 1.8
  • Maven 3.3.9
  • Eclipse Neon.3


프로젝트 구조 

스프링 부트 프로젝트 구조를 검토하십시오.

spring-boot-mvc-jsp.png

관련 -  이클립스 IDE에서 메이븐 프로젝트를 만드는 방법 .

Jar dependencies

스프링 부트에서 스프링 MVC 웹 애플리케이션을 생성하고 실행하려면  파일에 spring-boot-starter 의존성  을 추가해야한다  pom.xml

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

다음은 전체 pom.xml파일입니다.

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.boraji.tutorial.springboot</groupId>
  <artifactId>spring-boot-web-application-example</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <properties>
    <java.version>1.8</java.version>
  </properties>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.4.RELEASE</version>
  </parent>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- JSTL tag lib -->
    <dependency>
      <groupId>javax.servlet.jsp.jstl</groupId>
      <artifactId>javax.servlet.jsp.jstl-api</artifactId>
      <version>1.2.1</version>
    </dependency>

    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>

    <!-- Tomcat for JSP rendering -->
    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-jasper</artifactId>
      <scope>provided</scope>
    </dependency>

  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
  <packaging>war</packaging>
</project>

컨트롤러 클래스

 패키지 HelloController아래 에 클래스를 com.boraji.tutorial.springboot.controller만들고 다음 코드를 작성하십시오.

HelloController.java

package com.boraji.tutorial.springboot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class HelloController {

   @RequestMapping("/")
   public String index() {
      return "index";
   }

   @PostMapping("/hello")
   public String sayHello(@RequestParam("name") String name, Model model) {
      model.addAttribute("name", name);
      return "hello";
   }
}

JSP 뷰

프로젝트 구조에 표시된대로 폴더  아래에 파일을 index.jsp만들고 hello.jsp파일을 만듭니다 src/main/webapp/WEB-INF/views.

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<!-- Static content -->
<link rel="stylesheet" href="/resources/css/style.css">
<script type="text/javascript" src="/resources/js/app.js"></script>

<title>Spring Boot</title>
</head>
<body>
  <h1>Spring Boot - MVC web application example</h1>
  <hr>

  <div class="form">
    <form action="hello" method="post" onsubmit="return validate()">
      <table>
        <tr>
          <td>Enter Your name</td>
          <td><input id="name" name="name"></td>
          <td><input type="submit" value="Submit"></td>
        </tr>
      </table>
    </form>
  </div>

</body>
</html>

hello.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Spring Boot</title>
</head>
<body>
  <h1>Spring Boot - MVC web application example</h1>
  <hr>

  <h2>Your name is ${name}</h2>

</body>
</html>

 

Static web resources

기본적으로 봄 부팅은에서 정적 웹 콘텐츠를 제공 /static또는 /public또는 /resources또는 /META-INF/resources폴더 클래스 경로에 있습니다. 이 예제에서는 스타일 시트, 자바 스크립트 파일과 같은 모든 정적 리소스를 /static폴더에 저장합니다.

src/main/resources/static/css폴더 아래에 스타일 시트 파일을 만들고 그 안에 다음 코드를 작성하십시오.

style.css

.form {
	background-color: #efefef;
	width: 400px;
	height: 50px;
	border-radius: 7px;
	padding: 20px;
}

자, src/main/resources/static/js폴더 아래에 javascript 파일을 만들고 다음 코드를 작성하십시오.

app.js

function validate() {
	var name = document.getElementById("name").value;
	if (name == '') {
		alert('Please enter a valid name.');
		return false;
	} else {
		return true;
	}
}

Application properties

봄 부팅은에서 속성을로드하고 스프링에 application.properties추가합니다 EnvironmentSpring MVC 또는 정적 웹 컨텐트와 관련된 속성을 application.properties파일에 설정할 수 있습니다 .

원본 폴더 application.properties아래 에 파일을 src/main/resources만들고 그 안에 다음 속성을 작성합니다.

application.properties

spring.mvc.view.prefix = /WEB-INF/views/
spring.mvc.view.suffix = .jsp
spring.mvc.static-path-pattern=/resources/**

주 - spring.mvc.static-path-pattern=/resources/** (가) 매핑됩니다 classpath:/static/css/style.css에 /resources/css/style.css마찬가지로,에 classpath:/static/js/app.js  매핑됩니다 /resources/js/app.js다음과 같이 jsp에서 이러한 정적 자원을 사용할 수 있습니다.

<link rel="stylesheet" href="/resources/css/style.css">
<script type="text/javascript" src="/resources/js/app.js"></script>

메인 클래스

Spring Boot를 사용하여 Spring MVC 애플리케이션을 부트 스트랩하려면 @SpringBootApplication 다음과 같이 annotation으로 주석이 달린 메인 클래스를 생성한다  .

MainApp.java

package com.boraji.tutorial.springboot;

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

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

 

응용 프로그램 실행

실행  MainApp.java 예 → 자바 응용 프로그램으로 실행 → 실행으로 이동 Java 응용 프로그램과 같은 클래스를

이 mvn spring-boot:run 명령을 사용하여 스프링 부팅 응용 프로그램을 실행할 수 있습니다  .

메인 클래스를 실행하면 콘솔 출력은 다음과 같이 보입니다.

이제   브라우저 주소에 http : // localhost 8080 을 입력하고 입력 필드에 사용자 이름을 입력하십시오.

 

이제   브라우저 주소에 http : // localhost 8080 을 입력하고 입력 필드에 사용자 이름을 입력하십시오.

spring-boot-mvc-jsp1.png

제출 버튼을 클릭하고 결과 페이지를보십시오.

spring-boot-mvc-jsp2.png

Spring 부트 애플리케이션을 실행 가능한 전쟁으로 패키징하기

임베디드 서블릿 컨테이너를 사용하고 있다면 jar 대신에 스프링 부트 애플리케이션을 war로 패키징해야한다. JSP 지원에는 몇 가지 제한 사항이 있습니다. 더 읽기 ..

다음 maven 명령을 사용하여 스프링 부트 응용 프로그램을 전쟁으로 패키지 할 수 있습니다.

mvn clean package

명령 줄에서 실행 가능한 전쟁 실행

다음 명령을 사용하여 CMD에서 전쟁을 실행하십시오.

>java -jar spring-boot-web-application-example-0.0.1-SNAPSHOT.war
소스 다운로드


반응형

+ Recent posts