maven插件spring-boot-starter-tomcat的使用方式

目录
  • tomcat内嵌到web项目中
    • 1.pom.xml 配置
    • 2.tomcat使用maven内嵌入到web项目需要jdk运行环境
    • 3.springmvc依赖
    • 4.编写表现层代码
    • 5.配置web.xml
    • 6.SpringMVC的配置文件
    • 7.配置完成后在项目上鼠标右键

tomcat内嵌到web项目中

将tomcat 内嵌到 web项目中,这样可以直接运行 webapp项目。

不需要再部署到额外的tomcat,直接就可以运行了。

1.pom.xml 配置

    <plugins>
      <plugin>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-tomcat</artifactId>
		    <version>2.3.0.RELEASE</version>
       </plugin>

    </plugins>

2.tomcat使用maven内嵌入到web项目需要jdk运行环境

eclipse默认的运行环境式jre,我们需要改成jdk

问题解决:

3.springmvc依赖

Spring V4.1以后的版本运行时会报如下错误:

NoSuchMethodError: javax.servlet.http.HttpServletResponse.getStatus()

我们使用Spring V4.1以前的版本运行,依赖如下

<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-webmvc</artifactId>
	    <version>4.0.1.RELEASE</version>
</dependency>

导入对象转json的依赖

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

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

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

在pom.xml中配置jdk版本

   <properties>
	 	<maven.compiler.source>1.8</maven.compiler.source>
    	<maven.compiler.target>1.8</maven.compiler.target>
	</properties>

4.编写表现层代码

@RestController
public class UserController {
	@RequestMapping("query")
	public Map<String, Object> query(){

		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("code", 0);
		return map;
	}

}

5.配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>TomcatDemo</display-name>

                 <!-- 编码级过滤器 -->
	<filter>
		<filter-name>characterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>characterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

  <!-- 配置SpringMVC的核心控制器 -->
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>ContextConfigLocation</param-name>
  		<param-value>classpath:spring.xml</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

6.SpringMVC的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/mvc
		http://www.springframework.org/schema/mvc/spring-mvc.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context.xsd
		http://www.springframework.org/schema/aop
		http://www.springframework.org/schema/aop/spring-aop.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx.xsd">

	<!-- 扫描具有注解的类 -->
	<context:component-scan base-package="com.wn"></context:component-scan>
	<!-- 使SpringMVC的注解生效 -->
	<mvc:annotation-driven></mvc:annotation-driven>

	<!-- 配置静态资源过滤器 -->
	<mvc:resources location="/" mapping="/**"></mvc:resources>
</beans>

7.配置完成后在项目上鼠标右键

Run As->Maven build->输入tomcat启动命令启动tomcat

tomcat:run

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot应用部署于外置Tomcat容器的方法

    0x01. 概述 SpringBoot平时我们用的爽歪歪,爽到它自己连Tomcat都自集成了,我们可以直接编写SBT启动类,然后一键开启内置的Tomcat容器服务,确实是很好上手.但考虑到实际的情形中,我们的Tomcat服务器一般是另外部署好了的,有专门的维护方式.此时我们需要剥离掉SBT应用内置的Tomcat服务器,进而将应用发布并部署到外置的Tomcat容器之中,本文就实践一下这个. 0x02. 修改打包方式 修改项目的pom.xml配置,我们修改其打包方式为war方式,如: <groupI

  • 如何基于SpringBoot部署外部Tomcat过程解析

    这篇文章主要介绍了SpringBoot以war包形式部署到外部Tomcat过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 SpringBoot 项目打包时能打成 .jar 与 .war包文件,.jar使用 java -jar xx.jar 就可以启动,而 .war 可以部署到tomcat的 webapps 中,随tomcat的启动而启动. SpringBoot 本身是内置tomcat的,如果想部署到外部tomcat, 就要做一些改变.

  • Spring Boot+maven打war包的方法

    存在一个坑: 官网文档 指出以下前3步做法,但是这样只可以打出可运行的jar包,要打出war包还要在文档后面的链接跳到另一个页面,才能找到第四步的做法,也就是最终能够打出war包,可能有些朋友有些粗心没找到第四步的链接,而以为只做了前三步就可以打出war包了,结果一直出错,还以为自己的业务代码有问题,然后一直瞎折腾,浪费很多时间(比如我),因此我把整个过程写于此. 1.指定war打包方式 <packaging>jar</packaging> 2.pom.xml添加spring-bo

  • 手撸一个Spring Boot Starter并上传到Maven中央仓库

    目录 打包上传到中央仓库 第一步 在issues.sonatype.org注册一个账号 第二步 在issues.sonatype.org提交Issue 第三步 配置Maven Setting.xml 第四步 配置项目的pom.xml 第五步 安装和配置GPG 第六步 项目打包上传 第七步 处理验证 问题 我1.0.1版本发布错了,有办法修改或者删除吗? 先手撸一个Spring Boot Starter 准备搞个项目,包含以下几个功能后边还会加新功能. 配置项加密(已实现) 服务调用链 数据脱敏

  • 深入浅析 Spring Boot Starter

    Spring Boot 简介 Spring框架功能很强大,但是就算是一个很简单的项目,我们也要配置很多东西.因此就有了Spring Boot框架,它的作用很简单,就是帮我们自动配置.Spring Boot框架的核心就是自动配置,只要存在相应的jar包,Spring就帮我们自动配置.如果默认配置不能满足需求,我们还可以替换掉自动配置类,使用我们自己的配置.另外,Spring Boot还集成了嵌入式的Web服务器,系统监控等很多有用的功,让我们快速构建企业及应用程序. 依赖管理是任何复杂项目的关键部

  • 利用Maven入手Spring Boot第一个程序详解

    前言 学习一个新技术,先别管他的原理啊,流程啊,怎么组织代码啊什么的.直接从官网或者博客抄一个小demo,自己亲自跑一遍,然后再去看那一堆让人头皮发麻的讲解,就能相对容易的看懂了. 目前网上有不少Spring Boot的入门文章,都很有帮助,本人最近在深入学习Spring Cloud,在搭建第一个Hello World程序时,感觉对于新手而言,介绍文章怎么详细都不为过,因为其中坑不少,所以这里就把第一次实践的步骤贴出来,以求和大家一起进步. 1.Maven是什么?能带来什么帮助? 我们在用Ecl

  • 如何手写一个Spring Boot Starter

    何为 Starter ? 想必大家都使用过 SpringBoot,在 SpringBoot 项目中,使用最多的无非就是各种各样的 Starter 了.那何为 Starter 呢?你可以理解为一个可拔插式的插件(组件).或者理解为场景启动器. 通过 Starter,能够简化以前繁杂的配置,无需过多的配置和依赖,它会帮你合并依赖,并且将其统一集成到一个 Starter 中,我们只需在 Maven 或 Gradle 中引入 Starter 依赖即可.SpringBoot 会自动扫描需要加载的信息并启动

  • 详解Maven 搭建spring boot多模块项目(附源码)

    本文介绍了Maven 搭建spring boot多模块项目,分享给大家,具体如下: 备注:所有项目都在idea中创建 1.idea创建maven项目 1-1: 删除src,target目录,只保留pom.xml 1-2: 根目录pom.xml可被子模块继承,因此项目只是demo,未考虑太多性能问题,所以将诸多依赖.都写在根级`pom.xml`,子模块只需继承就可以使用. 1-3: 根级pom.xml文件在附录1 1-4: 依赖模块 mybatis spring-boot相关模块 2.创建子模块(

  • Spring boot整合tomcat底层原理剖析

    目录 本文结论 spring-boot-starter-web内部有什么? TomcatServletWebServerFactory的作用:获取WebServer对象 spring boot启动的时候启动tomcat 获取tomcat的配置 ServletWebServerFactoryCustomizer这个Bean是哪里的? 从源码层面理解spring boot的默认web容器,以及他们是如何关联起来的. 本文结论 源码基于spring boot2.6.6 项目的pom.xml中存在spr

  • 详解spring boot starter redis配置文件

    spring-boot-starter-Redis主要是通过配置RedisConnectionFactory中的相关参数去实现连接redis service. RedisConnectionFactory是一个接口,有如下4个具体的实现类,我们通常使用的是JedisConnectionFactory. 在spring boot的配置文件中redis的基本配置如下: # Redis服务器地址 spring.redis.host=192.168.0.58 # Redis服务器连接端口 spring.

  • 移动开发Spring Boot外置tomcat教程及解决方法

    springboot微服务内置了tomcat,在工程目录下执行:mvn clean package,可以将项目打成jar,通过java -jar jar包名.jar启动项目. 有哪些场景需要将springboot打成war包去部署呢? 1.一个tomcat管理多个项目 2.springboot整合jsp等 解决方法: 1.<packaging>jar</packaging>中的jar改成war 2.引入依赖: <dependency> <groupid>or

  • 通过spring boot 设置tomcat解决 post参数限制问题

    今天传图片,用的base64字符串,POST方法,前端传送的时候总是莫名其妙的崩溃,去网上搜了半天,以为是文件大小被限制了,但是我这个是字符串接收,不是文件接收,于是又继续搜,原来post本身没有参数大小限制,但是tomcat给限制了,于是解决方式如下: 一.外置的tomcat 这个简单,直接在server.xml里面添加或者修改这句话: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout=

  • spring boot starter actuator(健康监控)配置和使用教程

    添加POM依赖: <!-- spring-boot-监控--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.bo

随机推荐