봄 부팅 배포 분석 (병 또는 전쟁)

SSM은 기존 또는 ssh 프로그램, 일반적으로 전쟁 패키지 또는 컴파일 된 폴더에 패키지, 그리고 전쟁 패키지의 경우 다음 webapps 디렉토리 바람둥이로, 자동으로 압축을 해제합니다을 배포합니다. 기본 톰캣으로 내장 된 스프링 부팅, 그래서 심지어 웹 프로젝트가 그것에서 실행 -jar 항아리 패키지, 직접 자바에 직접 포장 할 수있다.

봄 Initialzr은 (항아리에 패키지 선택) 만든 웹 프로젝트에만 의존 스프링 부팅 스타터 웹있을 것입니다.

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

이 종속성 스프링 부팅이 스타터 톰캣 (Tomcat을 포함 의존성)을 포함하여, 내부에 발견 될 수있다. 당신이 내부 바람둥이 배포를 사용하는 경우, 당신은 직접 코드를 수정 xxApplication에 Main 메서드를 실행할 필요가 없습니다.

당신이 전쟁 웹 프로젝트를 작성하는 경우, 기본이 하나 개 더 ServletInitializer 파일이있을 것입니다, Maven은 또 하나의 스프링 부팅 스타터 바람둥이에 의존 할 것이다. 하나 Main 메서드로 시작하는 프로젝트의 전쟁, 당신은 또한 외부 바람둥이로 시작할 수 있습니다.

그것은 단지를 사용하여 프로젝트 이전에 지어진 경우, 문제가없는 것으로 생각된다, 결국에만 다음과 같이 수정해야, 외부 바람둥이 배포를 사용해야합니다 :

// 1. 添加一个 ServletInitializer.java
// 2. Maven 中添加<packaging>war</packaging>。(默认是 jar)
// 3. 添加 spring-boot-starter-tomcat 依赖。(测试过,不加也没关系,但是既然 Spring Initialzr 创建时就自带了,还是加上好了)

당신이 JSP를 사용하는 경우, 몇 가지 사소한 문제가있을 수 있습니다.

일반 블로그는 필요가 JSP를 사용하는 경우, 당신은 종속 바람둥이 - 포함 - 재스퍼를 추가 할 필요가 기록됩니다 :

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

특히 주목할 있습니다 :

  1. 스프링 부팅 스타터 웹 임베디드 바람둥이 있지만, 그러나 내장 된 스프링 부팅 스타터 바람둥이에만 바람둥이-포함 코어를 포함, 그것은 바람둥이 - 포함 - 재스퍼가 포함되어 있지 않습니다. 따라서 필요는 별도의 종속성을 추가합니다.
  2. 배포 외부 바람둥이를 사용하고, JSP를 사용하여, 당신은 다음과 같은 구성이 필요합니다 :
<!--  把 web 中内嵌的 tomcat 去掉。(防止和外部 tomcat 冲突) -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<!--  注意 tomcat-embed-jasper 的scope。(在编译测试的时候需要这个依赖的参与,但是在部署的时候 tomcat本身就有,这里也是防止冲突) -->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>

개요

  1. 기본 장군은 직접 배포 항아리 패키지를 표시.
  2. 당신이 전쟁 패키지를 배포해야하는 경우, 가장 쉬운 방법은 치어를 추가하는 것입니다 전쟁 그리고 ServletInitializer 파일을 (해야한다)를 추가합니다.
  3. 필요한 JSP 경우, 종속 바람둥이-매입 재스퍼 및 기타 요구 사항을 추가 할 수 있습니다.
  4. 위 또는 다른 블로그에 언급 한 바와 같이, 바람둥이는 웹 패키지에서 제외하거나, 재스퍼의 범위는, 사실, 제공 테스트해야합니다, 변경 및 동일 변경할 필요가 없습니다. (그것은 두 곳에서 잘못 여기, 특별한주의를 어떤 갈등, 그것은 중요하지 않습니다)

참조

추천

출처www.cnblogs.com/Sinte-Beuve/p/11569912.html