《深入实践Spring Boot》一1.4 运行与发布

1.4 运行与发布

本章实例工程的完整代码可以使用IDEA直接从GitHub的https://github.com/chen-fromsz/spring-boot-hello.git中检出,如图1-15所示,单击Clone按钮将整个项目复制到本地。

1.4.1 在IDEA环境中运行

在IDEA中打开Run菜单,选择Edit Conf?iguration打开Run/Debug Conf?igurations对话框,在配置界面的左边侧边栏中选择增加一个Application或Spring Boot配置项目,然后在工作目录中选择工程所在的根目录,主程序选择代码清单1-3创建的类:springboot.example.Application,并将配置保存为hello,如图1-16所示。
然后选择Run或Debug运行hello配置项目。如果启动成功,将在控制台中输出类似如下信息:

"D:\Program Files\Java\jdk1.8.0_25\bin\java"
.....
 :: Spring Boot ::        (v1.3.2.RELEASE)
......
Starting Servlet Engine: Apache Tomcat/8.0.30
......
Tomcat started on port(s): 8080 (http)

......
从上面的输出中可以看出,Tomcat默认开启了8080端口。要访问这个应用提供的服务,可以在浏览器的地址栏中输入http://localhost:8080/。这样就可以看到我们期望的输出字符:hello。

1.4.2 将应用打包发布

上面操作演示了在IDEA环境中如何运行一个应用。如果我们想把应用发布出去,需要怎么做呢?可以将代码清单1-1中的Maven配置增加一个发布插件来实现。如代码清单1-4所示,增加了一个打包插件:spring-boot-maven-plugin,并增加了一行打包的配置:jar,这行配置指定将应用工程打包成jar文件。
代码清单1-4 包含打包插件的Maven配置

<?xml version="1.0" encoding="UTF-8"?>
<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>springboot.example</groupId>
    <artifactId>spring-boot-hello</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.2.RELEASE</version>
    </parent>

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

这样就可以在IDEA中增加一个打包的配置,打开Run/Debug Conf?igurations对话框,选择增加配置一个Maven打包项目,在工作目录中选择工程所在根目录,在命令行中输入package,并将配置保存为mvn,如图1-17所示。
运行mvn打包项目,就可以将实例工程打包,打包的文件将输出在工程的target目录中。
如果已经按照1.1.3节的说明安装了Maven,也可以直接使用Maven的命令打包。打开一个命令行窗口,将路径切换到工程根目录中,直接在命令行输入mvn package,同样也能将项目打包成jar文件。执行结果如下:

......
[INFO] --- maven-jar-plugin:2.5:jar (default-jar) @ spring-boot-hello ---
[INFO] Building jar: E:\ideworkspace\spring-boot-hello\target\spring-boot-hello-
1.0-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:1.3.2.RELEASE:repackage (default) @ spring-b
oot-hello ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.450 s
[INFO] Finished at: 2016-05-08T16:54:44+08:00
[INFO] Final Memory: 23M/118M
[INFO] ------------------------------------------------------------------------

打包成功后,在工程的target目录中将会生成jar文件spring-boot-hello-1.0-SNAPSHOT.jar。在命令行窗口中切换到target目录中,运行如下指令,就能启动应用。
java -jar spring-boot-hello-1.0-SNAPSHOT.jar
如果希望按照传统的做法,将工程发布成war文件,应当将代码清单1-4的Maven配置jar改成war,这样就可以打包成war文件。打包完成后将war文件放置在Tomcat的webapp路径中,启动Tomcat就能自动运行程序。
这里需要注意的是,如果自主使用Tomcat运行应用,在安装JDK时必须配置JAVA_HOME环境变量,同时JDK要求1.8以上的版本,Tomcat必须是8.0以上的版本。
我更加喜欢打包成jar,然后使用Spring Boot的嵌入插件Tomcat运行应用。本书所有实例都可以打包成jar直接运行。即使对于一个包含很多页面、图片、脚本等资源的复杂应用系统,这种方法也是可行的,并且打包成jar,更方便项目发布在Docker上运行,这些将在后面的章节中详细介绍。

时间: 2024-08-08 08:28:28

《深入实践Spring Boot》一1.4 运行与发布的相关文章

利用 Spring Boot 在 Docker 中运行 Hadoop

本文讲的是利用 Spring Boot 在 Docker 中运行 Hadoop,[编者的话]Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.本文介绍了如何利用Spring Boot在Docker中运行Hadoop任务. 简介 越来越多的应用都开始使用Hadoop框架.而开发者在使用过程中也遇到一些挑战,比如使用诸如Docker之类的容器开发和部署相关的技术栈开发的应用.我们将会在下面的例子中介绍如何克服这些挑战. 由于 S

《深入实践Spring Boot》一2.4 使用Neo4j

本节书摘来自华章出版社<深入实践Spring Boot>一书中的第2章,第2.14节,作者陈韶健,更多章节内容可以访问"华章计算机"公众号查看. 2.4 使用Neo4j 有没有既具有传统关系型数据库的优点,又具备NoSQL数据库优势的一种数据库呢?Neo4j就是一种这样的数据库.Neo4j是一个高性能的NoSQL图数据库,并且具备完全事务特性.Neo4j将结构化数据存储在一张图上,图中每一个节点的属性表示数据的内容,每一条有向边表示数据的关系.Neo4j没有表结构的概念,它

《深入实践Spring Boot》一第3章 Spring Boot界面设计3.1 模型设计

本节书摘来自华章出版社<深入实践Spring Boot>一书中的第3章,第3.1节,作者陈韶健,更多章节内容可以访问"华章计算机"公众号查看. 第3章 Spring Boot界面设计 用Spring Boot框架设计Web显示界面,我们还是使用MVC(Model View Controller,模型-视图-控制器)的概念,将数据管理.事件控制和界面显示进行分层处理,实现多层结构设计.界面设计,即视图的设计,主要是组织和处理显示的内容,界面上的事件响应最终交给了控制器进行处理

《深入实践Spring Boot》一2.3 使用MongoDB

本节书摘来自华章出版社<深入实践Spring Boot>一书中的第2章,第2.3节,作者陈韶健,更多章节内容可以访问"华章计算机"公众号查看. 2.3 使用MongoDB 在当前流行的NoSQL数据库中,MongoDB是大家接触比较早而且用得比较多的数据库.MongoDB是文档型的NoSQL数据库,具有大数据量.高并发等优势,但缺点是不能建立实体关系,而且也没有事务管理机制. 2.3.1 MongoDB依赖配置 在Spring Boot中使用MongoDB也像使用JPA一样

《深入实践Spring Boot》一3.2 控制器设计

本节书摘来自华章出版社<深入实践Spring Boot>一书中的第3章,第3.2节,作者陈韶健,更多章节内容可以访问"华章计算机"公众号查看. 3.2 控制器设计 怎样将视图上的操作与模型--数据管理模块联系起来,这中间始终是控制器在起着通信桥梁的作用,它响应视图上的操作事件,然后根据需要决定是否访问数据管理模块,最后再将结果返回给合适的视图,由视图处理显示.下面将按照电影控制器的设计来说明控制器中增删查改的实现方法,演员控制器的设计与此类似,不再赘述. 3.2.1 新建控

《深入实践Spring Boot》一3.5 运行与发布

3.5 运行与发布 Spring Boot需要一个启动程序作为应用的入口,在webui模块中,我们设计了一个入口程序,如代码清单3-25所示.使用这个入口程序,就可以调试和发布工程了.代码清单3-25 Web应用启动主程序 package com.test.webui; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplica

深入实践Spring Boot导读

Preface?前 言 Spring Boot作为Java编程语言的一个全新开发框架,在国内外才刚刚兴起,还未得到普及使用.相比于以往的一些开发框架,Spring Boot不但使用更加简单,而且功能更加丰富,性能更加稳定而健壮.使用Spring Boot开发框架,不仅能提高开发速度,增强生产效率,从某种意义上,可以说是解放了程序员的劳动,而且一种新技术的使用,更能增强系统的稳定性和扩展系统的性能指标.本书就是本着提高开发效率,增强系统性能,促进新技术的普及使用这一目的而写的. Spring Bo

《深入实践Spring Boot》一导读

Preface前 言 Spring Boot作为Java编程语言的一个全新开发框架,在国内外才刚刚兴起,还未得到普及使用.相比于以往的一些开发框架,Spring Boot不但使用更加简单,而且功能更加丰富,性能更加稳定而健壮.使用Spring Boot开发框架,不仅能提高开发速度,增强生产效率,从某种意义上,可以说是解放了程序员的劳动,而且一种新技术的使用,更能增强系统的稳定性和扩展系统的性能指标.本书就是本着提高开发效率,增强系统性能,促进新技术的普及使用这一目的而写的. Spring Boo

《深入实践Spring Boot》一第2章 在Spring Boot中使用数据库2.1 使用MySQL

第2章 在Spring Boot中使用数据库 使用数据库是开发基本应用的基础.借助于开发框架,我们已经不用编写原始的访问数据库的代码,也不用调用JDBC(Java Data Base Connectivity)或者连接池等诸如此类的被称作底层的代码,我们将在高级的层次上访问数据库.而Spring Boot更是突破了以前所有开发框架访问数据库的方法,在前所未有的更加高级的层次上访问数据库.因为Spring Boot包含一个功能强大的资源库,为使用Spring Boot的开发者提供了更加简便的接口进