Spring boot war部署

一:介绍

     spring boot 能够将应用程序作为独立的jar启动是很好的,但是有时可能不可能运行一个应用程序,比如jar环境限制、公司范围的法规等等,您必须构建一个WAR,以便部署到一个传统的web/应用服务器上。Spring Boot帮助我们创建使用SpringBootServletInitializer 。

二: 新建项目 

     

三: 创建Maven文件 

        找到本例中使用的Maven文件。


<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.xph</groupId>
  <artifactId>egl-web</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>egl-web Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.5.RELEASE</version>
  </parent>
  <properties>
    <java.version>1.7</java.version>
    <guava.version>19.0</guava.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <jackson.version>2.2.1</jackson.version>
  </properties>
  <dependencies>
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>

    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-aop</artifactId>

      </dependency>
    <!-- Guava -->
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>${guava.version}</version>
    </dependency>
    <!-- Java EE -->
    <dependency>
      <groupId>javax.inject</groupId>
      <artifactId>javax.inject</artifactId>
      <version>1</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.26</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.24</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.14</version>
    </dependency>
    <!--  junit    -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.10</version>

    </dependency>
   <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
    </dependency>
   <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
    </dependency>
  <dependency>
          <groupId>org.apache.tomcat.embed</groupId>
          <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
      </dependency>
    <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
          <scope>provided</scope>
      </dependency>

     <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.16.12</version>
      </dependency>
     <dependency>
            <groupId>com.github.xphsc</groupId>
            <artifactId>eglsc-helper</artifactId>
            <version>1.2.0</version>
        </dependency>
</dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.xph.web.Application</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <warSourceExcludes></warSourceExcludes> <overlays> </overlays> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> <resources> <resource> <directory>${project.basedir}/src/main/webapp</directory> <includes> <include>**/**</include> </includes> </resource> <resource> <directory>${project.basedir}/src/main/resources</directory> </resource> </resources> </build></project>

 
 

找到spring boot启动器的描述。

spring-boot-starter-parent:父项目POM用于依赖关系管理。

spring-boot-starter-web::构建web、REST应用程序的启动器。它使用tomcat服务器作为默认的嵌入式服务器。

Spring-stardata-data JPA:使用hibernate的Spring数据JPA启动器

spring-boot-starter-tomcat: spring boot部署到外部容器(tomcat)



3。创建application.properties,application-dev.yml

在Spring boot中,为了配置与数据库相关的属性、Hibernate和日志,我们需要使用application.properties。我们正在使用JPA规范的Hibernate实现。

application-dev.yml

server:
  port: 8081

spring:
      datasource:
        default:
              name: test_mysql
              url: jdbc:mysql://192.168.211.130:3306/test_mysql?useUnicode=true&characterEncoding=UTF-8
              username: root
              password: 12345
              type: com.alibaba.druid.pool.DruidDataSource
              driver-class-name: com.mysql.jdbc.Driver
              filters: stat
              maxActive: 20
              initialSize: 1
              maxWait: 60000
              minIdle: 1
              timeBetweenEvictionRunsMillis: 60000
              minEvictableIdleTimeMillis: 300000
              validationQuery: select 'x'
              testWhileIdle: true
              testOnBorrow: false
              testOnReturn: false
              poolPreparedStatements: true
              maxOpenPreparedStatements: 20
application.properties
spring.mvc.view.prefix = /WEB-INF/jsp/
spring.mvc.view.suffix = .jsp
spring.profiles.active=dev
四 代码的具体实现

1:spring boot启动类
 
@SpringBootApplication
@ComponentScan(basePackages = "com.xph")
public class Application extends SpringBootServletInitializer {
    public static void main(String[] args) {
        new SpringApplicationBuilder()
                .sources(Application.class)
                .bannerMode(Banner.Mode.CONSOLE)
                .run(args);
    }

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

 SpringBootServletInitializer是一个抽象类的实现WebApplicationInitializer接口,servlet 3.0 +的主要的抽象环境来配置ServletContext编程。它结合Servlet、过滤和ServletContextInitializer bean从Servlet容器的应用程序上下文。

创建一个类,扩展了SpringBootServletInitializer,覆盖它的配置方法。你可以让你的应用程序的主类扩展SpringBootServletInitializer:

2:创建jsp页面 index.jsp

   

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
</head>

<body>
<h2>
        鹅,鹅,鹅</br>
    鹅,鹅,鹅,曲项向天歌。</br>
    白毛浮绿水,红掌拨清波。</br>
</h2>
</body>
</html>

3:创建controller控制层

@Controller
public class ViewController {
    
    @RequestMapping("/index")
    public String view(){
        return "/index";
    }
    @RequestMapping("/html")
    public String html(){
        return "/view";
    }
}

3 :启动本地的tomcat就可以访问自己定义好的页面(如图)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值