当前位置:   article > 正文

SpringBootMaven项目如何使用jetty部署_maven项目用 jetty 部署

maven项目用 jetty 部署

Spring Boot 如何打包并且部署在Jetty

因为之前很多项目部署在Tomcat,我个人感觉Tomcat更适合企业级的项目,小项目我们可以用用Jerry。
本着学习的态度来告诉大家我是如何部署的,当然了打包是必然前提,我就长话短说,其实非常简单。

  1. Jetty
    Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。点击下载

  2. Jetty特性
    易用性:
    易用性是 Jetty 设计的基本原则,易用性主要体现在以下几个方面:
    通过 XML 或者 API 来对Jetty进行配置;默认配置可以满足大部分的需求;将 Jetty 嵌入到应用程序当中只需要非常少的代码;
    可扩展性:
    在使用了 Ajax 的 Web 2.0 的应用程序中,每个连接需要保持更长的时间,这样线程和内存的消耗量会急剧的增加。这就使得我们担心整个程序会因为单个组件陷入瓶颈而影响整个程序的性能。但是有了 Jetty:
    即使在有大量服务请求的情况下,系统的性能也能保持在一个可以接受的状态。利用 Continuation 机制来处理大量的用户请求以及时间比较长的连接。 另外 Jetty 设计了非常良好的接口,因此在 Jetty 的某种实现无法满足用户的需要时,用户可以非常方便地对 Jetty 的某些实现进行修改,使得 Jetty 适用于特殊的应用程序的需求。
    易嵌入性:
    Jetty 设计之初就是作为一个优秀的组件来设计的,这也就意味着 Jetty 可以非常容易的嵌入到应用程序当中而不需要程序为了使用 Jetty 做修改。从某种程度上,你也可以把 Jetty 理解为一个嵌入式的Web服务器。
    Jetty 可以作为嵌入式服务器使用,Jetty的运行速度较快,而且是轻量级的,可以在Java中可以从test case中控制其运行。从而可以使自动化测试不再依赖外部环境,顺利实现自动化测试。

  3. Jetty和Tomcat比较:
    1)Jetty更轻量级。这是相对Tomcat而言的。
    由于Tomcat除了遵循Java Servlet规范之外,自身还扩展了大量JEE特性以满足企业级应用的需求,所以Tomcat是较重量级的,而且配置较Jetty亦复杂许多。但对于大量普通互联网应用而言,并不需要用到Tomcat其他高级特性,所以在这种情况下,使用Tomcat是很浪费资源的。这种劣势放在分布式环境下,更是明显。换成Jetty,每个应用服务器省下那几兆内存,对于大的分布式环境则是节省大量资源。而且,Jetty的轻量级也使其在处理高并发细粒度请求的场景下显得更快速高效。
    2)Jetty更灵活,体现在其可插拔性和可扩展性,更易于开发者对Jetty本身进行二次开发,定制一个适合自身需求的Web Server。
    相比之下,重量级的Tomcat原本便支持过多特性,要对其瘦身的成本远大于丰富Jetty的成本。用自己的理解,即增肥容易减肥难。
    3)然而,当支持大规模企业级应用时,Jetty也许便需要扩展,在这场景下Tomcat便是更优的。
    总结:Jetty更满足公有云的分布式环境的需求,而Tomcat更符合企业级环境。

  4. Maven核心的POM文件内容如下(在这里我只是将重点的地方告诉大家,其他根据自己项目需要进行配置即可):

 <dependencies>
	<dependency>
	            <groupId>org.springframework.boot</groupId>
	            <artifactId>spring-boot-starter-web</artifactId>
	            <!-- 如果部署在jetty 中 -->
	            <exclusions>
					<exclusion>
						<groupId>org.springframework.boot</groupId>
						<artifactId>spring-boot-starter-tomcat</artifactId>
					</exclusion>
				</exclusions>
	        </dependency>
</dependencies>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

注:这个地方我们只需要将boot中的tomcat去除即可,因为部署在Jetty中肯定会有些冲突。然后Maven clean,然后Maven install 打包即可。

  1. Jetty部署使用
    首先,我们将下载好的压缩文件解压,会得到以下目录:

    我们首先了解从哪里修改默认端口,首先我们没有找到conf的字眼,然后好像有个ini,我们知道初始化Mysql的时候就是用的my.ini,我们打开start.ini,内容如下:

    Jetty 的默认端口是8080,根据自己需要改成自己想要的端口,修改后记得去掉最前面的 “#”,不然不会生效。改完了端口,我们试着启动一下,因为大家系统版本可能不一样,建议启动CMD时用管理员运行,以免运行时会因为权限不够无法运行。我们运行CMD,然后切换到Jetty的目录下:
    在这里插入图片描述
    然后启动,启动时只需要用java启动jar包的命令启动start.jar就可以了。Jetty和Tomcat的存放项目的文件目录是一样的。都是webapps文件夹,现在我们启动Jetty,如下:
    在这里插入图片描述
    我们简单的读一下日志,红色标记的比如:Jetty的版本,部署的文件夹路径,启动端口,启动时间等。既然启动了,那么我们就来打开浏览器访问一下,看下效果:

    提示404,路径不对,这个错误是没有访问项目,那么我们再来执行一个命令,只不过目录不一样,在demo-base目录下有个例子,我们用CMD切换至该目录下,然后运行启动命令再看下效果,如下:

    我们看到红色标记的部署目录就是demo-base目录下的webapps,那么我们再来打开浏览器看下效果,如下:

    这个就是Jetty自带的示例。那么我们接下来将项目打包,然后部署下,打包时记得将spring boot 的内置的tomcat去除引用。我们这次部署在webapps文件夹下,Jetty和Tomcat不一样的地方还有一个,就是我们打成war包后,Jetty不解压在webapps目录下,具体我后面再写博客告诉大家。

    部署完毕后,我们再来运行我们的项目,看看是否能正常运行,因为我在本地运行的,所以大家打包时看好自己的数据库连接是否能够连通。

    我们看到成功启动了,那么我们来看下是否项目是否正常访问,访问路径是 http://localhost:端口号/war包名称 ,如下:


    好,这次基本使用就先讲到这里,如果有问题欢迎留言,88~
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/518296
推荐阅读
相关标签
  

闽ICP备14008679号