当前位置: 首页 > news >正文

SpringBoot——SB整合mybatis案例(残缺版本)第三集

了解完使用阿里云存储的操作后,现在需要在案例里面集成阿里云进行开发。云服务——阿里云OSS的入门使用_北岭山脚鼠鼠的博客-CSDN博客

阿里云OSS——集成 

 对于前端传过来的图片要先上传到OSS,然后获取图片在云端的访问地址,存储到数据库里面,然后在前端需要时把图片的URL返回给前端。

 查看接口文档

响应数据就是上传的图片的访问路径,在html里面可以通过img标签里的src属性直接展示,而不是下载下来。 

 

 开发文件上传接口

新建一个utils ,把工具类放进去,而对应参数也要改成自己的存储空间的参数

同时,在该工具类上加一个@Component注解,将其交给IOC容器管理

在UploadController中新增一个方法资源

运行项目进行postman测试

上传成功

在阿里云里面可以看见上传的照片。

 进行前后端联动——测试新增员工

此时在新增页面上传图片后就已经可以看见回显的图片了,表示已经上传成功。

 

小结 

 修改员工信息

需求分析

点击编辑之后可以将用户现有的数据显示在表单项上,这个就是查询回显,在此基础上进行修改,修改之后保存就可以将数据提交到服务端。

修改——查询回显

查看接口文档

 思路分析

 三层代码

 在postman中进行测试成功如下

 前后端联调

点击编辑之后数据可以在表单中正常回显,现在编辑通过了 

 

修改——修改员工数据 

需求分析:

点击编辑并且保存之后,员工信息可以被正常修改并保存到数据库表当中,并且在前端页面也可以正常的展示出来。 

接口文档 

在Result风格当中修改操作的请求方式为put

 

 这个修改操作就是一个update语句的事

 实现思路

采用XML动态SQL的方式更新字段,只有传递过来不为空的属性才进行更新

 三层代码以及Mapper.XML代码实现

 postman进行测试成功修改

 前后端联调

成功修改

 到这里为止,员工的增删改查功能都已经可以实现了,本案例主要训练了基于页面原型和接口文档开发功能接口的能力。

配置文件——application.properties

找到前面案例开发的问题并基于前面的问题进行优化。

在阿里云OSS的工具类当中,有一些信息被硬编码在了Java代码当中,

1.如果参数发生变化就需要改动代码并重新编译 

2.如果是大型项目会有多个相似类,需要在众多Java代码中先定位到代码所在处。

这样不利于维护管理。

在Springboot项目中java代码很多,但是配置文件通常只有一个 

 一般可以通过IO流读取application.properties文件,然后解析配置文件中的键值对的值并复制给成员变量。 

在springboot当中可以使用一个@Value注解,将来有什么需要修改的就可以直接找到propertties配置文件进行修改。

小细节:按住alt再按住鼠标左键就可以进列编译

 配置文件——yml配置文件

yml格式的配置文件后缀既可以是yml也可以是yaml,但是文件名字也必须是application 

 在springboot的resourse目录下新建一个application.xml文件之后会改变文件的图案样式,说明springboot是识别该配置文件的

使用如下语句成功修改了该项目的端口号为9000

 常见配置文件的格式对比

当前的企业级开发都是yml格式的配置文件

yml的基本语法:

 

 yml常见数据格式

 yml配置替换springboot默认的application.properties

成功之后先将原本的配置文件无效化,然后重启项目,刷新前端页面,如果还可以正常显示说明配置文件修改成功。

配置文件——@ConfigurationProperties

当一个新的东西出现了,说明一个旧的问题就会得到解决。

问题分析:在原本的两个配置方式里,每一个成员变量都要手动注入一下,

为了可以将属性自动注入

前提条件:属性相同,还要为属性提供get,和set方法,另外,还需要将该类交给IOC容器管理,成为IOC容器的bean对象,同时还要指定一下前缀,使用@ConfigurationProperties注解为属性加上前缀。

 加上上面的注解后会出现一个警告,可以加上一个依赖,然后在配置对应属性时会有相应的提示

 

 value注解用于需要注入的属性比较少,需要注入的属性比较多可以用ConfigurationProperties注解批量注入。

相关文章:

SpringBoot——SB整合mybatis案例(残缺版本)第三集

了解完使用阿里云存储的操作后,现在需要在案例里面集成阿里云进行开发。云服务——阿里云OSS的入门使用_北岭山脚鼠鼠的博客-CSDN博客 阿里云OSS——集成 对于前端传过来的图片要先上传到OSS,然后获取图片在云端的访问地址,存储到数据库里面…...

Baumer工业相机堡盟相机不满帧如何使用CameraExplorer设置相机参数让它的帧率达到满帧

项目场景 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具…...

巴黎爱情回忆 NFT 作品集

由 Metaverse Studio 制作。 欢迎来到浪漫之都巴黎!尽情游览美丽壮观的地标,探索法国文化。在离开之前,别忘了从《巴黎爱情回忆》NFT 作品集中带走一件纪念品。从世界著名的法国人物到标志性资产,这些 NFT肯定会为您的钱包带来巴黎…...

openai开放gpt3.5-turbo模型api,使用python即可写一个基于gpt的智能问答机器人

1安装python库 使用pip安装openai库,注意gpt3.5-turbo模型需要python>3.9的版本支持,本文演示的python版本是python3.10.10 pip install openai2创建api key 需要提前在openai官网上注册好账号,然后打开https://platform.openai.com/ac…...

GUI开发--LCD屏幕的使用(非第三方库)--笔记

导:界面交互需要GUI,GUI需要文字和图片,所有此处总结在M4芯片上实现GUI的基本操作!该芯片具有160K大小的内存,有512K的flash;故而没有使用第三方库! LCD屏幕的使用--笔记 1.汉字显示-两种方式…...

CesiumForUnreal实现地形等高线效果

文章目录 1.实现目标2.实现过程2.1 实现原理2.2 具体过程3.参考资料1.实现目标 在UE5中使用CesiumForUnreal插件添加Cesium World Terrain在线的世界地形,然后以25米为等高距,绘制一定范围内的等高线,如下图所示: 2.实现过程 由于这里直接使用CesiumForUnreal插件加载的在…...

Python爬虫——Python Selenium基本用法

Selenium 作为一款 Web 自动化测试框架,提供了诸多操作浏览器的方法,这里对其中的常用方法做详细介绍。 定位节点 Selenium 提供了 8 种定位单个节点的方法,如下所示: 定位节点方法方法说明find_element_by_id()通过 id 属性值定…...

仿真与测试:单元测试与Test Harness

本文描述单元测试的概念,以及Test Harness建立的方法和简单的单元测试过程。 文章目录1 单元测试1.1 场景举例1.2 简单的测试方法2 Test Harness建立2.1 模型配置2.2 创建Test Harness3 总结1 单元测试 单元测试,简单来说就是在Simulink模型中只测试一小…...

面试常问集锦——MySQL部分

Mysql速成大法 请签收MySQL灵魂十连 https://mp.weixin.qq.com/s?__bizMzI4NjI1OTI4Nw&mid2247488721&idx1&sneead82d2b7a0fdf993beacc4dfd60313&chksmebdef5e9dca97cff9d638877e5855850727ae26ebcfd60c7700ae53e311fa6ddb64b63bb9552&scene178&cur_a…...

算法训练第四十四天|完全背包理论 、518. 零钱兑换 II、377. 组合总和 Ⅳ

第九章 动态规划part06完全背包理论基础完全背包C测试代码总结518. 零钱兑换 II题目描述思路总结377. 组合总和 Ⅳ题目描述思路总结完全背包理论基础 参考:https://programmercarl.com/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80%…...

0x06多层感知机

感知机 感知机形象的来看就是我们接触过的一个只有两个部分组成(输出和输入)组成的最简单的神经网络之一。 给定输入x,权重w和偏移b以及一个感知函数,感知机就能输出: 这个函数可以形象的用作二分类问题,…...

HTML是什么?HTML简介

HTML 英文全称是 Hyper Text Markup Language,中文译为“超文本标记语言”,专门用来设计和编辑网页。 使用 HTML 编写的文件称为“HTML 文档”,一般后缀为.html(也可以使用.htm,不过比较少见)。HTML 文档是…...

Linux定时服务

目录 1、定时器操作 2.cron表达式的语法规则 参考链接 1、定时器操作 sudo crontab -e 【选择2】 进入进行配置【需要按下 i 】 #sh /home/xx/crontabsh/test.sh的意思是,让sh解释器调用test.sh脚本,到达定时执行任务的效果 # 每一分钟执行一次 *…...

sgi_stl源码学习,官方文档3.2.3String package字符串封装,未完待续

https://www.boost.org/sgi/stl/character_traits.html char_traits<char> char_traits<wchar_t>traits翻译为特征、特性类&#xff0c;一般是指某种类型的特性类应该提供的一组接口、类型定义。 web页面描述了一些接口要求。感觉没有什么特别的。直接看代码吧 c…...

从JavaScript到Java(一):基础知识

Hello World Java和JavaScript虽然有不同的特点&#xff0c;但在一些概念和知识点上是相似的。本文从JavaScript开发者的角度出发&#xff0c;帮助你理解Java基础知识&#xff08;反过来也行&#xff09;。 // 解释型 console.log("Hello, World!");// 编译型 pub…...

Android编舞者类Choreographer小结

Android编舞者类Choreographer小结 作用 编舞者类的作用主要是控制绘制节奏&#xff0c;用于发起一次vsync垂直同步信号的监听&#xff0c;当垂直同步信号来的时候会回调注册的Runnable或者FramCallback Choreographer对象获取 Choreographer对象是通过它的getInstance方法…...

大专升本科难度大吗 需要考哪些科目

大专学历可以通过自考和成考提升学历到本科&#xff0c;自考的考试科目有12-16门左右&#xff0c;考试内容不难&#xff0c;但是考试周期长&#xff0c;需要考生通过所有课程才能申请毕业。成考专升本考试科目有政治&#xff0c;外语和专业课&#xff0c;考试内容简单&#xff…...

考研复试-英语问答+解答

每个问题2~3min 一、 1.考官问问题&#xff0c;没听明白 I’m sorry, I didn’t hear that clearly. May I ask you to repeat it, please? Sorry, I have no clear idea about this question for now, but I will think about it later. And if possible, I want to discuss …...

python 文件相关的操作 常用函数(读文件、写文件、文件的追加内容、修改文件内容、复制文件、按行读取文件、with open) json文件的读取

常用函数&#xff1a;open&#xff08;打开文件&#xff09;&#xff0c;read&#xff08;读文件到程序中&#xff09;&#xff0c;write&#xff08;写程序中的变量到文件&#xff09;&#xff0c;close&#xff08;关闭文件&#xff09; 示例1&#xff1a;读文件&#xff08…...

python 系列 06 -生成及解析二维码

0 说明 二维码不止一种&#xff0c;本文介绍最常见的QR二维码。由于不能发二维码截图&#xff0c;所以所有的执行结果都隐去了。完整版本可以移步到此查看&#xff1a;https://vblogs.cn/momo1938/article?id0407576070659864 1 安装包 python 可以使用qrcode来生成二维码&…...

MeteorSeed

从0构建WAV文件&#xff1a;读懂计算机文件的本质 虽然接触计算机有一段时间了&#xff0c;但是我的视野一直局限于一个较小的范围之内&#xff0c;往往只能看到于算法竞赛相关的内容&#xff0c;计算机各种文件在我看来十分复杂&#xff0c;认为构建他们并能达到目的是一件困难…...

Grove-I2C颜色传感器驱动开发与RGB色彩识别实践

1. Grove-I2C颜色传感器技术解析与嵌入式驱动开发实践 1.1 模块硬件架构与传感原理 Grove-I2C颜色传感器模块基于TAOS&#xff08;现为ams OSRAM&#xff09;TCS3414CS高精度数字颜色传感器芯片设计&#xff0c;其核心传感单元由16个微型光电二极管阵列构成&#xff0c;呈82物…...

点集相等概念表明流传2300多年使世人深信不疑的直线公理将无穷多各异直线误为同一线

黄小宁 “科学”共识&#xff1a;在初等数学领域绝对不可能有颠覆性创新&#xff0c;谁若说“已非常成熟”的初等数学存在重大错误那就说明谁有“自大狂型精神病”。 “实数集”R可几何化为R轴。与x∈R相异&#xff08;等&#xff09;的实数均可表为yxδ&#xff08;增量δ可…...

别再傻等1000步了!用DDIM在Stable Diffusion里5分钟搞定高质量出图(附详细参数设置)

5分钟极速出图&#xff1a;DDIM采样器在Stable Diffusion中的实战指南 当你在深夜赶稿需要快速生成概念图时&#xff0c;当客户要求半小时内看到10个设计方案时&#xff0c;传统扩散模型缓慢的生成速度往往让人抓狂。别担心&#xff0c;DDIM采样器就是为这种紧急场景而生的利器…...

TDEFNODE 安装与入门:从源码编译到成功跑通案例(超详细避坑指南)

TDEFNODE 安装与入门&#xff1a;从源码编译到成功跑通案例&#xff08;超详细避坑指南&#xff09; 一、前言 TDEFNODE 是一个用于地壳形变建模的经典科研程序&#xff0c;常用于 GNSS 速度场反演、块体运动分析以及断层滑动研究。 但与常见软件不同&#xff1a;TDEFNODE 不是…...

Python依赖包安装失败?一招搞定Microsoft Visual C++缺失问题

1. 为什么Python安装依赖包会提示缺少Microsoft Visual C&#xff1f; 这个问题困扰过无数Python开发者。当你兴致勃勃地敲下pip install xxx&#xff0c;结果却看到红色报错提示"Microsoft Visual C 14.0 or greater is required"&#xff0c;那种感觉就像开车时突然…...

C++的std--filesystem文件系统库与跨平台路径处理的标准化

C的std::filesystem文件系统库与跨平台路径处理的标准化 在现代软件开发中&#xff0c;跨平台文件系统操作一直是一个复杂且容易出错的挑战。不同操作系统&#xff08;如Windows、Linux和macOS&#xff09;使用不同的路径分隔符和文件系统语义&#xff0c;开发者往往需要编写大…...

基于Cadence 617的带隙基准电压源设计:从理论推导到仿真验证

1. 带隙基准电压源设计基础 第一次接触带隙基准电压源设计时&#xff0c;我被这个看似简单的电路难住了。基准电压源就像电子系统中的"定海神针"&#xff0c;无论温度如何变化&#xff0c;它都能提供稳定的参考电压。在模拟IC设计中&#xff0c;带隙基准(Bandgap Ref…...

引爆企业降本增效的AI革命!生成式AI应用专家亲授,从字节跳动到华为的数字化转型实战秘籍!

本文介绍了资深AI专家Mr. Li在生成式AI应用与数字化转型领域的丰富经验&#xff0c;涵盖其在华为、字节跳动等企业的实践经历&#xff0c;以及在多个国家级标准制定和央企数字化转型项目中的参与。Mr. Li提供了一系列关于生成式AI和企业数字化转型的精品课程&#xff0c;旨在帮…...

告别手动启动:利用NSSM为任意可执行程序打造可靠的Windows后台服务

1. 为什么需要将程序注册为Windows服务&#xff1f; 在日常开发运维中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个Python脚本需要24小时不间断运行&#xff0c;一个Java应用需要在服务器重启后自动恢复&#xff0c;或者一个Go程序需要以守护进程的方式在后台稳定执行…...