Java程序设计:spring boot(2)
目录
1 Spring MVC 零配置创建与部署
1.1 创建Spring MVC Web⼯程
1.2 pom.xml 添加坐标相关配置
1.3 添加源代码
1.4 添加视图
1.5 SpringMVC 配置类添加
1.6 入口文件代码添加
1.7 部署与测试
2 Spring Boot 概念&特点
2.1 框架概念
2.2 框架特点
2.3 Spring Boot 快速⼊⻔
2.3.1 环境准备:Idea、Maven、Jdk 1.8+ 、Spring Boot 2.x
2.3.2 创建项目
2.3.3 添加依赖坐标
2.3.4 导⼊Spring Boot的web坐标与相关插件
2.3.5 添加源代码
2.3.6 创建启动程序
2.3.7 启动Spring Boot应⽤并测试
1 Spring MVC 零配置创建与部署
1.1 创建Spring MVC Web⼯程
创建 Maven 的 web 项⽬
1.2 pom.xml 添加坐标相关配置
<!-- spring web -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.2.4.RELEASE</version>
</dependency>
<!-- spring mvc -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.4.RELEASE</version>
</dependency>
<!-- web servlet -->
<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version>
</dependency>
<build><finalName>springmvc</finalName><plugins><!-- 指定Maven编译的JDK版本和编码 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version><configuration><source>1.8</source><target>1.8</target><encoding>utf-8</encoding></configuration></plugin>
</plugins>
</build>
1.3 添加源代码
@Controller
public class HelloController {@RequestMapping("/index")public String index(){return "index";}
}
1.4 添加视图
在 WEB-INF/views ⽬录下创建 index.jsp(这⾥以jsp为模板):
<html><body><h2>Hello mvc!</h2></body>
</html>
1.5 SpringMVC 配置类添加
Spring Mvc 配置信息 MvcConfig ⽂件添加,作为 Mvc 框架环境,原来是通过 xml 来进⾏配置 (视图 解析器、Json转换器、⽂件上传解析器等),这⾥基于注解通过继承 WebMvcConfigurerAdapter 类并 重写相关⽅法来进⾏配置 (注意通过 @EnableWebMvc 注解来启动 MVC 环境)。
/**
* MVC 基本配置
*/
// 配置类
@Configuration
// 在@Configuration注解的配置类中添加,⽤于为该应⽤添加SpringMVC的功能
@EnableWebMvc
// 扫描包范围
@ComponentScan("com.xxxx.springboot")
public class MvcConfig {/*** 配置 JSP视图解析器* @return*/@Bean // 将⽅法返回的结果交给IOC容器维护public InternalResourceViewResolver viewResolver(){// 获取视图解析器InternalResourceViewResolver viewResolver = new
InternalResourceViewResolver();// 设置前缀viewResolver.setPrefix("/WEB-INF/views/");// 设置后缀viewResolver.setSuffix(".jsp");// 返回解析器对象 (交给IOC容器进⾏维护)return viewResolver;}
}
MvcConfig 类定义好了,那么问题来了,怎么加载 MvcConfig 类呢,原来在构建 Mvc 应⽤时是通过容器启动应⽤时加载 web.xml ⽂件实现配置⽂件加载,现在的环境 web.xml ⽂件不存在,此时基于注 解⽅式构建的 Mvc 应⽤,定义 WebInitializer 实现 WebApplicationInitializer 接⼝ (该接⼝⽤来配置 Servlet3.0+ 配置的接⼝,⽤于替代 web.xml 配置),当 servlet 容器启动Mvc应⽤时会通过 SpringServletContainerInitializer 接⼝进⾏加载,从⽽加载 Mvc 应⽤信息配置。实现该接⼝ onStartup ⽅法 ,加载应⽤信息配置。
1.6 入口文件代码添加
/**
* 实现 WebApplicationinitializer 接⼝的类都可以在web应⽤程序启动时被加载
*/
public class WebInitializer implements WebApplicationInitializer {@Overridepublic void onStartup(ServletContext servletContext) throws
ServletException {// 基于Java的配置类加载Spring的应⽤上下⽂AnnotationConfigWebApplicationContext ctx = new
AnnotationConfigWebApplicationContext();// 注册 Mvc 配置信息ctx.register(MvcConfig.class);// 设置 ServletContext 上下⽂信息ctx.setServletContext(servletContext);// 配置转发器 DispatcherServletRegistration.Dynamic servlet =
servletContext.addServlet("dispatcher",new DispatcherServlet(ctx));// 设置映射路径servlet.addMapping("/");// 启动时即实例化 Beanservlet.setLoadOnStartup(1);}
}
1.7 部署与测试
通过 Tomcat 启动项⽬并访问

此时地址访问成功。
当项⽬访问成功后,那么问题来了,如果项⽬中存在静态资源⽂件,Handler 放⾏处理该如何配置, 定义的拦截器怎么应⽤,此时关注 WebMvcConfigurationSupport ⽗类⽅法,重写相关⽅法即可。
// 静态资源 handler不进⾏处理 直接响应到客户端
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer
configurer) {configurer.enable();
}
// 配置拦截器
@Bean
public LoginInterceptor loginInterceptor(){return new LoginInterceptor();
}
// 添加拦截器到mvc 环境
@Override
public void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(loginInterceptor());
}
2 Spring Boot 概念&特点
2.1 框架概念
随着动态语⾔流⾏(Ruby、Scala、NodeJs等),Java 开发变得相对笨重,配置繁琐,开发效率低下, 部署流程复杂,以及第三⽅集成难度也相对较⼤,针对该环境,Spring Boot 被开发出来,其使⽤“习惯 ⼤于配置⽬标”,借助Spring Boot 能够让项⽬快速运⾏起来,同时借助 Spring Boot 可以快速创建 web 应⽤并独⽴进⾏部署(jar包 war 包⽅式,内嵌 servlet 容器),同时借助 Spring Boot 在开发应⽤时可以 不⽤或很少去进⾏相关 xml 环境配置,简化了开发,⼤⼤提⾼项⽬开发效率。
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计⽬的是⽤来简化 Spring 应⽤的初始搭建以及开发过程。该框架使⽤了特定的⽅式来进⾏配置,从⽽使开发⼈员不再需要定义样板化的配置。通过这 种⽅式,让 Spring Boot在蓬勃发展的快速应⽤开发领域 (rapid application development) 成为领导者。
2.2 框架特点
创建独⽴ Spring 应⽤程序、嵌⼊式 Tomcat、Jetty 容器、⽆需部署 WAR 包、简化 Maven 及 Gradle 配置、尽可能⾃动化配置 Spring、直接植⼊产品环境下的实⽤功能,⽐如度量指标、健康检查及扩展配 置、⽆需代码⽣成及 XML 配置等,同时 Spring Boot 不仅对 web 应⽤程序做了简化,还提供⼀系列的 依赖包来把其它⼀些⼯作做成开箱即⽤。
2.3 Spring Boot 快速⼊⻔
2.3.1 环境准备:Idea、Maven、Jdk 1.8+ 、Spring Boot 2.x
2.3.2 创建项目
通过 Maven 创建⼀个普通的 java 项⽬
2.3.3 添加依赖坐标
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.2.RELEASE</version>
</parent>
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>
Spring Boot 的项⽬必须要将 parent 设置为 Spring Boot 的 parent,该 parent 包含了⼤量默认的配 置,简化程序的开发。
2.3.4 导⼊Spring Boot的web坐标与相关插件
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
2.3.5 添加源代码
@Controller
public class HelloController {@RequestMapping("hello")@ResponseBodypublic String hello(){return "Hello SpringBoot";}
}
2.3.6 创建启动程序
在 HelloController.java 所在包下,创建 StarterApplication.java
@SpringBootApplication
public class Starter{public static void main(String[] args) {SpringApplication.run(Starter.class);}
}
2.3.7 启动Spring Boot应⽤并测试
这⾥运⾏main ⽅法即可,通过浏览器访问 http://localhost:8080/hello 效果如下:

相关文章:
Java程序设计:spring boot(2)
目录 1 Spring MVC 零配置创建与部署 1.1 创建Spring MVC Web⼯程 1.2 pom.xml 添加坐标相关配置 1.3 添加源代码 1.4 添加视图 1.5 SpringMVC 配置类添加 1.6 入口文件代码添加 1.7 部署与测试 2 Spring Boot 概念&特点 2.1 框架概念 2.2 框架特点 2.3 Spring…...
服务器运维监控平台
云监控平台-简介 一:简介 “phoenix” 是一个灵活可配置的开源监控平台,主要用于监控应用程序、服务器、docker、数据库、网络、tcp 端口和 http 接口,通过实时收集、汇聚和分析监控信息,实现在发现异常时立刻推送告警信息&…...
css中 global 和 deep(两个样式穿透) 区别
1.:global(selector):这个伪类选择器会选择所有全局的、未被其他样式表覆盖的元素。换句话说,它会匹配所有没有被其他样式表(例如内联样式或外部样式表)所影响的元素。 :global(p) {color: red; }这段代码会将所有 <p> 元素…...
【星闪技术】WS63E模块的WiFi客户端测试
引言 我所计划的WS63E测试要实现MQTT联网,所以首先需要确保开发板连接WiFi。今天来测试一下WiFi功能。 程序分析 WiFi客户端的例子在src/application/samples/wifi/sta_sample目录下。这个例子看上去和hi3861的例子差不多。 这段程序是一个用于嵌入式设备的Wi-F…...
Android面试之5个Kotlin深度面试题:协程、密封类和高阶函数
本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 面试题目1:Kotlin中的协程与线程的区别是什么?如何在Android中使用协程进行异步编程? 解答: 协…...
操作系统 和 初识进程
目录 操作系统(OS) 进程 操作系统(OS) 概念 操作系统即os,是一款软件。 任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。 操作系统的本质是一种进行软硬件管理的软件 笼统的理解…...
QT--Qlabel学习、获取文本和设置文本、文本对齐方式、文本换行、显示图片
QLabel 是 Qt 中的标签类,通常用于显示提示性的文本,也可以显示图像 对齐方式 用于设置标签中的内容在水平和垂直两个方向上的对齐方式,比如左对齐、右对齐、上对齐、下对齐、水平居中、垂直居中等。 // 获取和设置文本的对齐方式 Qt::Ali…...
深度学习:终身学习(Life-Long Learning)详解
终身学习(Life-Long Learning)详解 终身学习(也称为持续学习或增量学习)是机器学习中的一个重要研究领域,它关注如何使机器学习模型在完成一系列任务后,能够持续学习新任务,而不会忘记之前学到…...
前端UI框架
组件UI类 1.Element-Plus 2.uView 3.Vant 4.TDesign 5.uni-app 6.Tuniao-vue3 7. 可视化图标类 1.可视化图标VUE Data UI 2.Echart 图标库ICON 1.yesicon 2.Flaticon 3.Google Fonts 4.fontawesome 5.阿里巴巴 其他 1.CSS布局 2.web前端样式布局 3.中国色-颜色合集 托管…...
最佳副屏串流解决方案:如何低成本打造电脑拓展副屏?
如何低成本打造电脑拓展副屏?如果你有一台平板和一台电脑,想要提高打游戏、办公或是学习的效率。那么,使用网易GameViewer远程,就能帮你低成本打造电脑拓展副屏。 简单来说,副屏串流就是能让你多出一块显示屏。在打游戏…...
SQL Injection | SQL 注入概述
关注这个漏洞的其他相关笔记:SQL 注入漏洞 - 学习手册-CSDN博客 0x01:SQL 注入漏洞介绍 SQL 注入就是指 Web 应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是可控的,并且参数会带入到数据库中执行,导致…...
【Linux 从基础到进阶】磁盘I/O性能调优
磁盘I/O性能调优 1. 引言 磁盘I/O性能是决定服务器整体性能的关键因素之一。磁盘I/O性能的瓶颈常常会影响数据库、文件系统以及虚拟化平台等关键应用的响应时间。因此,磁盘I/O调优是系统管理员不可忽视的任务。 本文将介绍影响磁盘I/O性能的主要因素,…...
浅谈AGI时代的“数据枢纽”——向量数据库
一、前言 人工智能的关键,不只是构建好算力、算法、模型,更重要的是做好数据的清洗、处理、挖掘等问题。一定程度上,智能时代,企业数据处理能力有多强,决定了业务发展的天花板有多高。 在企业数智化转型过程中&#x…...
生成 Excel 表列名称
Excel 大家都用过,它的列名是用字母编号的,A 表示第一列,B 表示第二列,AA 表示第27列,AB 表示第28列等等。 现给定一个数字,如何得到列名称呢。比如输入28,输出 AB。 一开始以为就是一个简单的…...
基于yolov10的烟雾明火检测森林火灾系统python源码+pytorch模型+评估指标曲线+精美GUI界面+数据集
【算法介绍】 基于YOLOv10的烟雾明火检测森林火灾系统是一种先进的火灾预警系统,它结合了深度学习和计算机视觉技术,能够实时检测和分析森林中的烟雾和明火,从而有效预防和控制森林火灾的发生。 该系统主要基于YOLOv10模型进行构建…...
UltraISO(软碟通)制作U盘制作Ubuntu20.04启动盘
目录 一、启动盘制作 1、工具准备 2、打开UltraISO后,点击左上角的文件,在打开的下拉项中,选择打开准备好的Ubuntu系统20.04 LTS镜像文件(ubuntu-20.04-desktop-amd64.iso); 3、然后点击启动->写入硬盘映像 4、在弹出的窗…...
【EtherCAT实践篇一】TwinCAT 3安装、使用
TwinCAT 基于 PC 的开放式控制技术 倍福推出的基于 PC 的控制技术定义了自动化领域的全球标准。在软件方面,1996 年推出的 TwinCAT(The Windows Control and Automation Technology,基于 Windows 的控制和自动化技术)自动化套件是…...
4、CSS3笔记
文章目录 四、CSS3CSS3简介css3概述CSS3私有前缀什么是私有前缀为什么要有私有前缀常见浏览器私有前缀 CSS3基本语法CSS3新增长度单位CSS3新增颜色设置方式CSS3新增选择器CSS3新增盒模型相关属性box-sizing 怪异盒模型resize 调整盒子大小box-shadow 盒子阴影opacity 不透明度 …...
Docker无法拉取镜像解决办法
Docker 无法拉取镜像解决办法 一.现象描述 在docker拉取镜像的时候重复拉取镜像然后超时。 二.解决办法 1.配置国内镜像源地址加速 vi /etc/docker/daemon.json在文件中增加如下内容 { "registry-mirrors": ["https://docker.m.daocloud.io","h…...
Ubuntu 20.04安装Qt 5.15(最新,超详细)
Ubuntu 20.04安装Qt 5.15 1. 准备注册Qt账号安装依赖下载安装工具 2. 安装3. 测试参考 前言 Qt 是一个跨平台的应用程序框架,它支持开发 C 图形用户界面应用程序。Qt 可以用于开发运行在多种操作系统上的应用程序,包括 Windows、Linux、macOS 和各种移动…...
从零到一:用Python打造你的专属桌面宠物,附完整源码与exe打包指南
1. 环境准备与工具安装 第一次接触Python桌面应用开发的朋友可能会觉得无从下手,但其实只需要准备好几个基础工具就能轻松开始。我刚开始做桌宠项目时也踩过不少坑,这里把最稳妥的配置方案分享给大家。 Python环境是首要条件,推荐使用3.8以上…...
批量新建文件夹工具:两种模式与重名策略怎么选
在 Windows 上做项目资料归档、测试用例目录、素材库初始化时,“先把一套文件夹结构建出来”是很常见的动作。手动右键新建很容易漏、很容易层级点错,也很难复用。这里记录一下【批量新建文件夹工具】的用法要点(只讲界面能力与参数选择&…...
2025届学术党必备的五大降AI率工具推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 现如今的学术环境里头,各种各样的AI内容检测系统正变得越发普及,为原…...
使用 winget 卸载 SQLiteStudio:从命令到细节的完整指南
一条命令安装,一条命令卸载——winget 让 Windows 软件管理变得前所未有的简单 前言 SQLiteStudio 是一款轻量、跨平台的 SQLite 数据库管理工具,因其简洁的界面和强大的功能,深受开发者喜爱。在 Windows 上,越来越多的人选择通过微软官方包管理器 winget 来安装它: win…...
2026届毕业生推荐的AI学术神器实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在当下的学术环境之中,那样的AI论文网站已然变成了研究辅助方面极具关键作用的工…...
二维码逆向工程:从01二进制到可扫描二维码的完整流程
二维码逆向工程:从01二进制到可扫描二维码的完整流程 二维码已成为现代生活中不可或缺的信息载体,但你是否想过,一串简单的0和1如何转化为可扫描的二维码?本文将带你深入探索二维码的逆向工程世界,从二进制数据处理到图…...
WINFORM - DevExpress -> 从安装到汉化:DevExpress全流程实战指南
1. DevExpress简介与环境准备 DevExpress是一套功能强大的.NET用户界面控件库,特别适合WinForms、WPF等桌面应用开发。我第一次接触DevExpress是在2015年,当时就被它丰富的UI组件和流畅的动画效果惊艳到了。经过这些年的版本迭代,现在的DevEx…...
实战案例:用HY-MT1.5-1.8B为网站实现多语言自动翻译
实战案例:用HY-MT1.5-1.8B为网站实现多语言自动翻译 1. 项目背景与需求分析 在全球化时代,网站多语言支持已成为基本需求。传统解决方案面临三大痛点: 成本高昂:专业人工翻译每千字费用通常在200-500元,大型网站维护…...
清音刻墨·Qwen3在科研协作中的应用:学术访谈转录+时间锚点标注
清音刻墨Qwen3在科研协作中的应用:学术访谈转录时间锚点标注 想象一下这个场景:你刚刚结束了一场长达两小时的深度学术访谈,录音文件静静地躺在电脑里。接下来,你需要逐字逐句地听写、整理、校对,再手动为每一句话打上…...
使用 Dify 快速搭建 Ostrakon-VL 智能应用:无需编码的视觉工作流
使用 Dify 快速搭建 Ostrakon-VL 智能应用:无需编码的视觉工作流 1. 引言:当视觉理解遇上无代码开发 想象一下,你是一家电商公司的运营人员,每天需要处理上千张商品图片——识别商品类别、提取关键属性、整理成表格。传统方式要…...
