SpringBoot框架03(整合jdbc,mybatis、异常处理与单元测试、服务端数据校验(实体类和Controller其他参数校验)、Springboot热部署)
一、Spring Boot 整合持久层技术
1.整合 JDBC
spring boot整合jdbc: https://blog.csdn.net/weixin_44911308/article/details/106372179
2.整合mybatis
spring boot 整合mybatis https://blog.csdn.net/weixin_44911308/article/details/106410424
二、SpringBoot 中异常处理与单元测试
1. 异常处理
SpringBoot 中对于异常处理提供了五种处理方式
[1]自定义错误页面
SpringBoot 默认的处理异常的机制:SpringBoot默认的已经提供了一套处理异常的机制。
一旦程序中出现了异常 SpringBoot 会向/error 的 url 发送请求。在 SpringBoot 中提供了一个名为 BasicErrorController 来处理/error 请求,然后跳转到默认显示异常的页面来展示异常信息。
如 果 我 们 需 要 将 所 有 的 异 常 同 一 跳 转 到 自 定 义 的 错 误 页 面 , 需 要 再src/main/resources/templates 目录下创建 error.html 页面。注意:页面名称必须叫 error。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>异常页面</title>
</head>
<body>
服务器出错,请联系管理员
</body>
</html>
定义一个异常Controller,当其被访问时则会出现空指针异常。用其来测试发生异常时是否会自动跳转至error页面
@Controller
public class UserController {@GetMapping("show")public String showInfo(){String str=null;str.length();return "success";}
}
[2]通过@ExceptionHandler 注解处理异常
该方式的弊端:使用该方式的异常处理类必须要和发生异常的方法处于同一个Controller中。
修改Controller
@Controller
public class UserController {@GetMapping("show")public String showInfo(){String str=null;str.length();return "success";}//value可以赋值多个异常
@ExceptionHandler(value = {java.lang.NullPointerException.class})public ModelAndView nullpointExceptionHandler(Exception e){ModelAndView mv=new ModelAndView();mv.addObject("err",e.toString());mv.setViewName("error1");return mv;}
}
创建异常页面error1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:th="http://www.thymeleaf.org">
<head><title>Title</title>
</head>
<body>
发生异常<span th:text="${err}"></span>
</body>
</html>
[3]通过@ControllerAdvice 与@ExceptionHandler 注解处理异常
该方式的缺点:全局异常处理类中处理异常的方法会比较多。
创建全局异常处理类,把Controller中处理空指针异常的方法剪切到该类中
/*** 全局异常处理类*/
@ControllerAdvice
public class GlobalException {//value可以赋值多个异常@ExceptionHandler(value = {java.lang.NullPointerException.class})public ModelAndView nullpointExceptionHandler(Exception e){ModelAndView mv=new ModelAndView();mv.addObject("err",e.toString());mv.setViewName("error1");return mv;}
}
访问后页面如下
为了测试效果,修改Controller类,添加一个算术异常。
@GetMapping("show2")public String showInfo2(){int a=10/0;return "success";}
修改异常处理类,添加处理算术异常的方法。
@ExceptionHandler(value = {java.lang.ArithmeticException.class})public ModelAndView arithmeticException(Exception e){ModelAndView mv=new ModelAndView();mv.setViewName("error1");mv.addObject("err",e.toString());return mv;}
访问算术异常方法,测试结果
[4]通过SimpleMappingExceptionResolver 对象处理异常
该方式的缺点:只能捕获异常并跳转到指定的页面。不能传递异常信息。
创建全局异常处理类
/*** 全局异常处理*/
@Configuration
public class GlobalException2 {/*** 此方法返回值必须是 SimpleMappingExceptionResolver对象* @return*/@Beanpublic SimpleMappingExceptionResolver getSimpleMappingExceptionResolver(){SimpleMappingExceptionResolver resolver=new SimpleMappingExceptionResolver();Properties properties=new Properties();/*** 参数一:异常类型,并且是全名* 参数二:视图名称*/properties.put("java.lang.NullPointerException","error2");properties.put("java.lang.ArithmeticException","error3");resolver.setExceptionMappings(properties);return resolver;}
}
创建页面处理类
创建error2.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>处理空指针异常</title>
</head>
<body>
发生异常java.lang.NullPointerException
</body>
</html>
创建error3异常处理类
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>处理算术异常</title>
</head>
<body>
发生异常java.lang.ArithmeticException
</body>
</html>
[5]通过自定义 HandlerExceptionResolver 对象处理异常
创建全局异常处理类
/*** 自定义 HandlerExceptionResolver 对象处理异常* 必须要实现 HandlerExceptionResolver*/
@Configuration
public class GlobalException3 implements HandlerExceptionResolver {@Overridepublic ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler, Exception e) {ModelAndView mv=new ModelAndView();//判断不同的异常类型,做不同视图的跳转if (e instanceof NullPointerException){mv.setViewName("error1");}if (e instanceof ArithmeticException){mv.setViewName("error4");}mv.addObject("err",e.toString());return mv;}
}
前端页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:th="http://www.thymeleaf.org">
<head><title>Title</title></head>
<body>
出现异常<span th:text="${err}"></span>
</body>
</html>
2.Spring Boot 整合 Junit 单元测试
SpringBoot2.x 使用 Junit5 作为测试平台
[1]spring boot中pom文件中默认的Test 启动器配置
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><!--junit-vintage-engine 提供了 Junit3 与 Junit4 的运行平台--><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency>
[2]编写测试代码
spring项目中有默认的test类文件,在src/test/java/包下
//springboot的2.x版本中@SpringBootTest注解会默认扫描启动类文件,如果该项目有多个启动类,
//可以用@SpringBootTest(classes = 指定启动类名.class)来指定测试启动类
@SpringBootTest
class SpringbootmybatisApplicationTests {@Autowiredprivate UserService userService;@Testvoid contextLoads() throws SQLException {List<Users> users = this.userService.findUsers();System.out.println(users);}
}
三、Spring Boot 服务端数据校验
1.Spring Boot 对实体对象的校验
注意:最新版springboot 2.3.0中没有@NotNull、@NotBlank等注解
(1)搭建项目环境
[1]创建项目
创建一个包含spring web启动器和thymeleaf启动器的springboot项目
[2]创建实体
package com.qt.springbootdemo.controller.pojo;import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;public class User {private Integer id;private String username;private String usersex;public User( Integer id, String username, String usersex) {this.id = id;this.username = username;this.usersex = usersex;}public User() {}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getUsersex() {return usersex;}public void setUsersex(String usersex) {this.usersex = usersex;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", usersex='" + usersex + '\'' +'}';}
}
[3]创建 Controller
@Controller
@RequestMapping("/user")
public class UserController {/*** 添加用户*/@RequestMapping("/addUser")public String addUser(User user){System.out.println(user);return "success";}
}
[4]创建页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:th="http://www.thymeleaf.org">
<link rel="shortcut icon" href="../resources/favicon.ico"th:href="@{/static/favicon.ico}"/>
<head><title></title>
</head>
<body>
<form th:action="@{/user/addUser}" method="post"><input type="text" name="username"><br/><input type="text" name="usersex"><br/><input type="submit" value="OK"/>
</form>
</body>
</html>
(2)对实体对象做数据校验
[1]Spring Boot 数据校验的技术特点
Spring Boot 中使用了 Hibernate-validator 校验框架。
[2]对实体对象数据校验步骤
注意:最新版springboot 2.3.0中没有@NotNull、@NotBlank等注解
修改实体类添加校验规则
package com.qt.springbootdemo.controller.pojo;import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;/*** @NotNull:对Integer类型做非空校验* @NotBlank:对字符串类型做非空校验* @NotEmpty:对集合类型做非空校验*/
public class User {@NotNullprivate Integer id;@NotBlankprivate String username;@NotBlankprivate String usersex;public User(@NotNull Integer id, @NotBlank String username, @NotBlank String usersex) {this.id = id;this.username = username;this.usersex = usersex;}public User() {}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getUsersex() {return usersex;}public void setUsersex(String usersex) {this.usersex = usersex;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", usersex='" + usersex + '\'' +'}';}
}
在 Controller 中开启校验
开启校验会出现两个结果:有错误和没有错误。
如果前台传输的参数为null,而该参数被@Validated注解验证,则会出现错误,这些错误存放在BindingResult 的对象中
/*** 添加用户*/@RequestMapping("/addUser")public String addUser(@Validated User user, BindingResult result){if (result.hasErrors()){//若result中有值,则说明发送错误List<ObjectError> list=result.getAllErrors();//获得错误的集合for (ObjectError err:list){//遍历错误FieldError fieldError = (FieldError) err;String fieldName = fieldError.getField();String msg = fieldError.getDefaultMessage();System.out.println(fieldName+"\t"+msg);}}System.out.println(user);return "success";}
我们通过没有参数的路径直接访问该函数
后台结果为
我们把打印错误信息的内容注释掉,如果出现错误,则跳转到原添加页面
/*** 添加用户*/@RequestMapping("/addUser")public String addUser(@Validated User user, BindingResult result){if (result.hasErrors()){//若result中有值,则说明发送错误/* List<ObjectError> list=result.getAllErrors();//获得错误的集合for (ObjectError err:list){//遍历错误FieldError fieldError = (FieldError) err;String fieldName = fieldError.getField();String msg = fieldError.getDefaultMessage();System.out.println(fieldName+"\t"+msg);}*/return "addUser";}System.out.println(user);return "success";}
在前端页面中获取提示信息(th:errors=${被检测的类首字母小写.属性})
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:th="http://www.thymeleaf.org">
<link rel="shortcut icon" href="../resources/favicon.ico" th:href="@{/static/favicon.ico}"/>
<head><title></title>
</head>
<body>
<form th:action="@{/user/addUser}" method="post"><input type="text" name="username"><font color="red"><span th:errors="${user.username}" /></font> <br/><input type="text" name="usersex"><font color="red"><span th:errors="${user.usersex}" /></font><br/><input type="submit" value="OK"/>
</form>
</body>
</html>
访问user/AddUser并给参数id=1&username=张三,usersex为空,结果显示
[3]自定义错误提示信息
在实体类的注解中定义提示信息
@NotNull(message = "用户ID不能为空")private Integer id;@NotBlank(message = "用户姓名不能为空")private String username;@NotBlank(message = "用户性别不能为空")private String usersex;
这样的缺点是不方便管理,我们可以自己建一个常量类,在里面定义字符串
ErrMessage
public class ErrMessage {public static final String VALIDATE_MESSAGE_ID="用户id不能为空-M";public static final String VALIDATE_MESSAGE_USERNAME="用户姓名不能为空-M";public static final String VALIDATE_MESSAGE_USERSEX="用户性别不能为空-M";
}
也可以通过propertis配置文件来配置变量名,配置文件名必须是 ValidationMessages.properties。但是:该方式不支持中文格式,需要把中文字符转换成unicode编码(\u7528\u6237Id\u4e0d\u80fd\u4e3a\u7a7a),比较麻烦。
[4]其他校验规则
@NotNull: 判断基本数据类型的对象类型是否为 null
@NotBlank: 判断字符串是否为 null 或者是空串(去掉首尾空格)。
@NotEmpty: 判断集合是否为空。
@Length: 判断字符的长度(最大或者最小)
@Min: 判断数值最小值
@Max: 判断数值最大值
@Email: 判断邮箱是否合法
(3)解决页面跳转异常
我们创建一个页面跳转Controller(只能通过转发才能访问templates下的资源)
@Controller
public class PageController {@RequestMapping("/{path}")public String getPath(@PathVariable String path){return path;}
}
我们直接访问localhost/addUser这个html
这时会发生异常,告诉我们addUser11行64列出错了
其实出错的地方正是th:errors标记,应为Model中找不到key
解决方案:
在页面跳转请求函数中添加被校验实体类的形参,应为SprignMVC 会将该对象放入到 Model 中传递,key 的名称会使用该对象的驼峰命名规则来作为 key,和形参名无关
/*** 跳转页面方法*解决异常的方式:可以在跳转页面的方法中注入一个 Users 对象* 由于 SprignMVC 会将该对象放入到 Model 中传递,key 的名称会使用该对象* 的驼峰命名规则来作为 key*/
@Controller
public class PageController {@RequestMapping("/{path}")public String getPath(@PathVariable String path, User user){return path;}
}
2.Spring Boot 对 Controller 中其他参数的校验
[1]编写前端页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:th="http://www.thymeleaf.org">
<link rel="shortcut icon" href="../resources/favicon.ico" th:href="@{/static/favicon.ico}"/>
<head><title>Title</title>
</head>
<body>
<form th:action="@{/user/findUser}"><input type="text" value=""><font color="red"><span th:text="${error}"></span></font> <br/><input type="submit" value="查询">
</form>
</body>
</html>
[2]Controller 中开启校验
@Controller
@RequestMapping("user")
@Validated
public class UserController {
[3]对参数指定校验规则
@RequestMapping("findUser")public String findUser(@NotBlank(message = "用户名不能为空") String username){System.out.println(username);return "findUser";}
[4]通过全局异常处理来跳转页面
@Configuration
public class GlobalException implements HandlerExceptionResolver {@Overridepublic ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {ModelAndView mv=new ModelAndView();if (e instanceof ConstraintViolationException){mv.setViewName("findUser");}mv.addObject("error",e.toString());return mv;}
}
我们可以在异常处理中通过split()截取异常信息
mv.addObject("error",e.toString().split(":")[2]);
四、Spring Boot 热部署
1.修改 POM 文件,添加 DevTools 依赖
<!--devYools依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency>
2.配置 Idea
[1]设置自动编译
[2]设置 Idea 的 Registry
通过快捷键打开该设置项:Ctrl+Shift+Alt+/ 后,点击Registry
勾选 complier.automake.allow.when.app.running
完成热部署配置后,以后修改前端或后端代码,就无需再重启项目。
修改完代码后,在你下一次用浏览器请求该项目时,项目会自动重新部署。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 计算机视觉知识点-select search
select serach 提出的时间是2013年,面对分割问题,这个方法得到了极高的recall, 13年的rcnn的区域选取方法就是用的这个方法. select serach 假设区域分割依赖*颜色*/*纹理*/*大小*/*形状*传统方法最好能做到过分割,就是不希望有一个区域有两个物体的情况,但是仅仅依靠颜色是不行…...
2024/4/15 5:55:42 - [c++] constexpr用法
constexpr 表示在编译期就求值。 -----------------------#define PI 3.14; constexpr int Inc(int i){return i+1; } int func(int i){return i+1; }constexpr int a = 10; constexpr int a = sizeof(int); constexpr int a = Inc(1); constexpr int a = PI;//上述a都是合法的…...
2024/4/27 8:18:37 - 数据库系统上,慕课第五讲测验答案
1单选(1分) 集合R与S的"差"表示为________ 得分/总分 A. B. C. 1.00/1.00 D. 2单选(1分) 集合R与S的笛卡尔积表示为________ 得分/总分 A. B. C. 1.00/1.00 D. 3单选(1分) 已知关系Student(S#,Sname,Sage,D#), Dept(D#, Dname,Dean),利用元组演算查询“计算机系所有学…...
2024/4/24 10:00:01 - 计算机网络方向
计算机网络 计算机网络运行原理 计算机网络搭建 计算机网络安全...
2024/4/24 9:59:58 - TCP和SCTP协议的详解
TCP 1、TCP:(Transmission Control Protocol)传输控制协议,是一种面向连接的可靠协议,工作在传输层。 2、面向连接:指的是在发送数据之前,双方都要保证链路的畅通,而且双方都是可以发送数据的。 3、TCP协议的作用:就是用来保证面向连接。 4、报文格式以及每个字段的作…...
2024/4/24 10:00:00 - input按顺序上传文件
this.ImgArr = [] this.ImgNum = 0/*** 上传文件* **/ fileUpload(event){let _this = this;_this.initCallBack(); //初始化腾讯云上传this.fileInfo = Array.from(event.target.files)this.fileInfo.forEach((val,index)=>{let file = new File([val], new Date().getTime…...
2024/4/24 9:59:56 - RHEL6.5(RedHat6.5)双网卡绑定bonding配置文档
1.最好先关闭NetworkManager,并将其设置为开机不启动,方法自行百度即可。 2.修改配置文件: 2.1 新建bond0文件: vim /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 ONBOOT=yes BOOTPROTO=static TYPE=Ethernet IPADDR=10.12.63.**(自己使用的IP地址) NETMASK=2…...
2024/4/24 9:59:56 - 手把手教你使用 CompletableFuture
背景在jdk5中,我们通过使用Future和Callable,可以在任务执行完毕后得到任务执行结果。可以使用isDone检测计算是否完成,使用cancle停止执行任务,使用阻塞方法get阻塞住调用线程来获取返回结果,使用阻塞方式获取执行结果,有违异步编程的初衷,而且Future的异常只能自己内部…...
2024/4/24 9:59:54 - LQH入职第16天--创建账号
1、创建账号 db := libs.GetMysqlDb("document")db.Begin()defer func() {if err != nil {db.Rollback()} else {db.Commit()}}()注释: (1)获取数据库的orm对象 (2)db.Begin()数据库开始 (3)db.Rollback()数据库回滚 (4)db.Commit()数据库提交 尝试从数据库…...
2024/4/24 9:59:54 - 如何在Java代码中根据表中某个字段的查询返回该字段的数据和对应的表头
今天接了一个需求,前端代码传一个入参,java后端返回该入参和该入参对应的表头的一部分,比如前段传入一个入参为$2GSiteId,我们返回$2GSiteId对应的数据和2G: ①定义一个So类,定义入参变量 private String $2GSiteId;public String get$2GSiteId() {return $2GSiteId; }pu…...
2024/4/24 9:59:54 - 前端一键切换深色模式
切换主题色传统方式是切换css包获取用less,sass定义变量控制主题色,复杂而且不易维护; 推荐一个插件 Darkmode.Js,一键切换深色模式使用方法引入Darkmode.Js,有两种方式:通过script标签直接引入;<script src="https://cdn.jsdelivr.net/npm/darkmode-js@1.5.5/l…...
2024/4/24 4:39:12 - Express知识总结
创建服务器 // 引入express const express = require(express) // 创建服务器 const app = express()// 监听80端口 app.listen(80, ()=>{console.log(服务器启动成功) })GET请求 // 引入express const express = require(express) // 创建服务器 const app = express()app.…...
2024/4/24 9:59:50 - 链式前向星原理和遍历
链式前向星 作用储存图中边的数据结构。举例 由如下图,需要将其关系进行储存储存关系如下:解释如下:head[i]表示以i为起点的第一条边int to; //这条边的终点 int w; //权值 int next; //兄弟边结构如下定义边的结构体 将边加入前向星中 遍历前向星边的结构体 stru…...
2024/4/24 9:59:49 - 机房管理制度(试行)
机房管理制度(试行) 目 录 一、机房工作人员日常行为准则 3 二、机房保安制度 3 三、机房用电安全制度 4 四、机房消防安全制度 4 五、机房硬件设备安全使用制度 5 六、软件安全使用制度 5 七、机房资料、文档和数据安全制度 6 八、机房财产登记和保护制度 6 附表: 7 一、机房…...
2024/4/20 4:52:20 - LeetCode-----第一题-----两数之和
1. 两数之和难度:简单给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0…...
2024/4/24 19:26:41 - web安全入门(第五章-4)反弹注入
一、MSSQL反弹注入使用场景0,MSSQL数据库就是Sql server数据库1,前言MSSQL注入攻击是最为复杂的数据库攻击技术,由于该数据库功能十分强大,存储过程以及函数语句十分丰富,这些灵活的语句造就了新颖独特的攻击思路2,遇到问题明明有注入点却无法进行注入,工具攻击速度也是…...
2024/4/16 8:54:03 - tomcat启动失败,碰到的坑
https://segmentfault.com/a/1190000013122831从这里再次学习一下tomcat,就用了以前的一个tomcat,坑也就从此而来!直接启动tomcat,一闪而过,然后tomcat也没启动起来先看了下eclipse等没有占用端口加了pause也看不出什么后来发现是tomcat的server.xml中有以前的项目配置信息…...
2024/4/15 5:55:51 - 引入静态资源文件时,添加时间戳或随机数,防止浏览器缓存。
添加时间戳或随机数,防止浏览器缓存 在日常的项目中,会遇到浏览器缓存的问题,也就是说,在加载静态资源文件时,浏览器使用的是过时的资源,IE浏览器默认会使用缓存,所以当我们修改了js/css/img时,就可能无法更新到最新的最新的资源。这个时候,有两种方法,可以解决此问题…...
2024/4/16 8:53:58 - Python:使用cvxpy求解线性回归问题
优化分体为残差平方和最小,这是一个凸优化问题,使用cvxpy,过程过于简单。##------数据生成部分----------##seed = 101X = np.random.uniform(low=1.0,high=10.0,size=300)y = X * 20 + 10 + np.random.normal(loc=0.0,scale=10.0,size=300)##--------凸优化部分-----------…...
2024/4/17 16:54:40 - Native、计数器
Native: 凡是带了Native关键字,说明java的作用范围达不到了,会去调用底层c语言的库。 调用本地方法接口(JNI)调用本地方法库。 作用:扩展java的使用,融合不同的编程语言为java所用。...
2024/4/16 8:53:58
最新文章
- 跨设备自动化协同提效新利器!边缘自动化流程编排工具
痛点剖析 随着企业生产环境的日益复杂化,不同生产设备间的协调性问题尤为凸显。 1、不同设备往往基于各自的技术标准、通信协议和操作系统设计,这使得它们之间的数据交换和指令传递存在显著的障碍。 2、技术上的不兼容性导致设备间难以实现无缝对接和…...
2024/4/28 15:20:23 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 基于AI智能识别技术的智慧展览馆视频监管方案设计
一、建设背景 随着科技的不断进步和社会安全需求的日益增长,展览馆作为展示文化、艺术和科技成果的重要场所,其安全监控系统的智能化升级已成为当务之急。为此,旭帆科技(TSINGSEE青犀)基于视频智能分析技术推出了展览…...
2024/4/26 15:50:29 - windows更新驱动导致Linux虚拟机网卡找不到
windows更新驱动导致Linux虚拟机网卡找不到 1、现象2、解决过程3、参考 1、现象 原先虚拟机配置了静态IP,更新windows驱动后xshell连接不上这台虚拟机(其他几台也是)。 2、解决过程 service network restart出现一下报错: Rest…...
2024/4/25 19:19:14 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/28 13:52:11 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/28 3:28:32 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/26 23:05:52 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/28 13:51:37 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/27 9:01:45 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/28 1:22:35 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/26 19:46:12 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/27 11:43:08 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/27 8:32:30 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57