当前位置: 首页 > 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来生成二维码&…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...