如何将JSP/Servlet项目转换为Spring Boot项目
作者:David 发布时间:2023-06-19 16:23:06
创建Spring Boot应用
在基于Spring来重构JSP应用之前,我们先引入Spring Boot,使之成为一个Spring Boot应用。你只需要在原来的代码基础上,增加简单的配置和少量的代码即可引入Spring Boot,整个过程5分钟就能完成。
这里我们使用Maven来管理依赖,因为我们需要增加Spring Boot相关的依赖。也可以在Eclipse或者IntelliJ中创建一个新的Maven项目。
在POM文件中加入Spring Boot相关的配置。
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
拷贝原有代码
如果你创建了新的Spring Boot项目,将原项目中src/main/java
目录下的所有代码,拷贝至Spring Boot项目中的src/main/java
。
新建一个代码目录(【New】->【Source Folder】),命名为src/main/webapp
,将原项目中WebContent
目录下的所有内容拷贝至该目录内。
增加Spring Boot 代码
增加一个Spring Boot应用的启动类,这里不涉及任何业务逻辑。这里我们给BlogApplication
增加了一个@ServletComponentScan
标注,这会让应用去扫描标注为@WebServlet
的Servlet类,并进行相应的初始化工作。
package com.tianmaying;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@ServletComponentScan
public class BlogApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(BlogApplication.class, args);
}
}
注意:Servlet类所在的包路径必须是BlogApplication
所在的包路径的子路径才能被扫描到,否则需要通过basePackages
属性指定Servlet类所在的包。:
自动部署与刷新
自动部署
为了让开发更加得心应手,我们进一步优化IDE,使得Web应用可以自动重启,页面内容修改时网页可以自动刷新,这可以极大地提高我们的开发体验和开发效率。
为了让Spring Boot在需要重启时,能够自动进行,我们只需要在POM文件中增加以下依赖。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
增加了这段依赖之后,可以实验以下。比如,我们修改以下BlogApplication.java
的代码,可以看到控制台中,内嵌的Web服务器自动重启了。
浏览器自动刷新
我们在修改代码之后,一般情况下都是重新回到浏览器中,通过鼠标操作或者通过F5对页面进行刷新。这种操作虽然时间很短,但是无数次的出现依然会占用我们很多时间。我们可以通过给浏览器安装livereload插件,这样就可以解放F5键了。以后只要有代码修改,切回浏览器就能马上看到效果了。
访问http://livereload.com/extensions/,根据自己的浏览器类型,下载响应的插件扩展程序即可。
来源:https://www.tianmaying.com/tutorial/jsp-spring-boot
猜你喜欢
- 本文实例讲述了Python操作串口的方法。分享给大家供大家参考。具体如下:首先需确保安装了serial模块,如果没安装的话就安装一下pyth
- 本文实例讲述了python实现上传样本到virustotal并查询扫描信息的方法。分享给大家供大家参考。具体方法如下:import simp
- 前言上一篇文章讲解了MySQL的事务的相关概念MySQL的事务特性概念梳理总结文章末尾提出了事务因并发出现的问题有哪些?本篇将着重讲述这个问
- 原以为在IronPython中使用MySQL是一件很容易的事情,即使有麻烦,也可以改变路径,加载Python下的MySQL模块。事实证明,这
- 前言对于pprof,相信熟悉go语言的程序员基本都不陌生,一般线上的问题都是靠它可以快速定位。但是实际项目中,很多时候我们为了性能都不会开启
- 在安装依然主机管理系统时,因为当时导入MSSQL时有点问题,所以,为了赶快能用上管理功能,所以就暂时先用了Access数据库。不过一直以来都
- Python项目文件中安装 setup.py安装 setup.py 的过程与安装其他的 Python 包的过程类似。首先,你需要下载或者使用
- 使用循环神经网络(RNN)实现影评情感分类作为对循环神经网络的实践,我用循环神经网络做了个影评情感的分类,即判断影评的感 * 彩是正面的,还是
- 在我做过的N多项目中,基本都有个跑不开的怪圈——首页很难设计。根据进度安排,首页必须按时出来,不然没法review,也没法测试。于是,首页只
- 在上一章我们学习了 异常的三个关键字,分别是try、except 以及 finally。我们知道在 try 代码块中如果遇到错误就会抛出异常
- 这篇文章主要介绍了django自定义模板标签过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 1 运行SQLPLUS工具 sqlplus 2 以OS的默认身份连接 / as sysdba 3 显示当前用户名 show user 4 直
- 如果你用SQL Server 2005 Management Studio建立函数或存储过程,你会注意到这些新窗口中都是模板。通常,你可以获
- 函数: # 什么是函数:一系列python语句的组合,可以在程序中运行一次或者多次# 一般是完成具体的独立的功能# 为什么要使用函数# 代码
- 在最古老的JavaScript浏览器里注册事件只能通过内联模式。自从DHTML从根本上改变了你操作页面的方法,事件的注册就必须有扩展性而且要
- Rs.Open参数说明在ASP中经常用Rs.Open sql,conn,1,1这样的方式打开数据库,但仍有一部分同行不知道这是嘛意思,现整理
- 在读取https://github.com/Embedding/Chinese-Word-Vectors中的中文词向量时,选择了一个有3G多
- 给静态网页加密的方法有很多,有的简单有的复杂。前两天看见有人问静态网页加密问题,就写了这个代码思路:加密时:先把用户的密钥A用md5加密为B
- 我用 python 写了一些脚本,有一些是爬虫脚本,比如爬取知乎特定话题的热门问题,有一些是定期的统计分析脚本,输出统计结果到文档中。之前我
- go,在删除切片中的元素时,可以使用append(),方式将其中的元素删除。slice :=make([]int , 0)slice = a