同时spring async
Spring Boot 的启动流程
Spring Boot 的启动流程包括以下几个步骤: 载入 Spring Boot 应用的启动类 根据启动类所在的包路径扫描相关的类文件 基于扫描到的类自动配置 Spring 应用 激活内嵌的 Web 服务器 启动 Spring 应用程序的运行 或者 实例化一个 SpringApplication ......
使用 Spring Integration 实现基于 Redis 的分布式锁以及踩坑
背景 分布式锁的应用场景应该还是蛮多的,这里就不赘述了。 之前在开发中实现分布式锁都是自己基于 Redis 造轮子,虽然也不复杂并且自己实现一次能对分布式锁有更深的了解,但是终归有些麻烦。尤其是新项目需要的时候还得 CV 一次。 然后在查询过程中(毫不意外地)发现 Spring 有现成的组件实现,所 ......
Spring框架
1.OCP开闭原则 什么是COP? COP是软件七大开发原则当中最基本的原则之一:开闭原则 对扩展开放,对修改关闭。 COP原则是最核心最基本的,其他六个原则都是为了这个原则服务的。 COP开闭的原则核心是:只要当你在扩展系统功能的时候,没有修改之前写好的代码,那么就是符合COP原则的。 反之,如果 ......
Spring Boot 目录遍历--表达式注入--代码执行--(CVE-2021-21234)&&(CVE-2022-22963)&&(CVE-2022-22947)&&(CVE-2022-2296)
Spring Boot 目录遍历--表达式注入--代码执行--(CVE-2021-21234)&&(CVE-2022-22963)&&(CVE-2022-22947)&&(CVE-2022-2296) Spring Boot 目录遍历 (CVE-2021-21234) 漏洞简介 spring-boo ......
Spring Boot RestController接口如何输出到终端
背景 公司项目的批处理微服务,一般是在晚上固定时段通过定时任务执行,但为了预防执行失败,我们定义了对应的应急接口,必要时可以通过运维在终端中进行curl操作。然而,部分任务耗时较长,curl命令执行后长时间没有输出,如果不查看日志,无法知道系统当前的状态,因此有必要研究一下如何在curl命令调用接口 ......
Oracle数据库同时建立和使用两个监听器
1.问题 我分别对两个数据库实例(Lib和Orcl)各自建立了一个监听器,端口号分别为1520和1521,但是默认只启动一个,导致我切换数据库实例的时候, 出现以下问题:状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the ......
Spring Security 基于 JWT Token 的接口安全控制
现在的网站开发,基本上都是前后端分离,后端提供 api 接口并进行权限控制。使用 Spring Security 框架可以大大简化权限控制的代码实现。对于后端接口而言,为了能够实现多节点负载均衡部署,更好的方案是不再使用 Session 了,绝大多数情况下,通过提交 JWT Token 来进行身份认 ......
Spring 04 SpringAOP 切面编程
Aop:面向切面,在不修改代码的前提下对方法进行增强 pom.xml <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version ......
Spring扩展接口(1):ApplicationContextInitializer
在此系列文章中,我总结了Spring扩展接口,以及各个扩展点的使用场景。并整理出一个bean在spring中从被加载到初始化到销毁的所有可扩展点的顺序调用图。这样,我们也可以看到bean是如何一步步加载到spring容器中的。 ApplicationContextInitializer org.sp ......
【主流技术】MongoTemplate与Spring Boot项目集成分享(附CURD技巧)
MongoTemplate 是Spring Data MongoDB 中的一个核心类,为 Spring 与 MongoDB 数据库的交互提供了丰富的功能集。
MongoTemplate 提供了创建、更新、删除和查询 MongoDB 文档的便利操作,并提供了编程语言的领域对象(POJO)和 Mong... ......
Spring注解之@ExceptionHandler 统一异常处理和获取方法名
在 Spring Boot 中,使用Spring注解@ControllerAdvice 和 @ExceptionHandler 统一处理异常,并捕获方法名,从而快速定位错误原因。 ......
Spring 03 Spring+Mybatis整合
配置类 jdbc.properties jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3307/myb?useSSL=false&useUnicode=true&characterEncoding=UTF-8 jd ......
spring boot错误之-Error (3, 32) java 程序包org springframework boot不存在
问题:spring boot错误之-Error (3, 32) java 程序包org springframework boot不存在 用IDEA创建spring boot,遇到上面的问题(我这里maven用的3.6.1版本) 解决方法:在Settings里面,Maven路径和settings.xm ......
async/await 与console(C#)
问题: 上一篇async/await 致WPF卡死问题(https://www.cnblogs.com/stephen2023/p/17725159.html),介绍主线程阻塞,async/await导致卡死问题,同样的代码在console下却并不会出现卡死。 static Stopwatch sw ......
Spring组件注入三种方式的使用和区别
Spring框架提供了多种注入bean的方式,其中最常用的有@Autowired、@Resource和@RequiredArgsConstructor三种。这篇文章我们来讲解它们的具体使用和区别。 @Autowired @Autowired是Spring自带的注解,放在属性字段或者setter方法上 ......
spring boot实现切割分片上传
文件上传是web开发中经常会遇到的 springboot的默认配置为10MB,大于10M的是传不上服务器的,需要修改默认配置 但是如果修改支持大文件又会增加服务器的负担。 当文件大于一定程度时,不仅服务器会占用大量内存,而且http传输极可能会中断。 可以采用切割分片上传 html5提供的文件API ......
async/await 致WPF卡死问题
问题代码: xmal:一个按钮+一个显示框 1 <Button Width="100" Height="50" Margin="10" Click="Button_Click">test</Button> 2 <TextBox x:Name="display" Width="300" Height= ......
async函数-await
await 必须用在被 async 修饰的函数内(因为 await 会阻塞代码,但是阻塞的范围要限制在 async 函数执行的范围内) 箭头函数中,添加 async 函数要写在参数的前面 await 是在异步函数内部使用的关键字,用于等待一个 Promise 对象的解决(成功)或拒绝(失败)。当使用 ......
git设置ssh key 同时配置Gitee和GitHub
背景: 由于一直用gitee来git代码,并且一直通过ssh无密码连接本地和gitee远程仓库。 最近想使用github的GitHub Pages的部署功能,就不得不在github上建立远程仓库,并使用ssh方式来git代码。 这个时候就发现,之前的ssh秘钥不能同时在gitee和github上使用 ......
spring事务控制的原理解析2
上一篇: [spring事务控制的原理解析1](https://www.cnblogs.com/chengxuxiaoyuan/p/16581334.html) 上一篇中总结了在spring中事务控制的基本原理,这一篇来记录下在spring源码中是如何实现的。 一、TransactionInterc ......
3、spring创建第三方bean对象
3、spring创建第三方bean对象 在Spring中,很多对象都是单实例的,在日常的开发中,我们经常需要使用某些外部的单实例对象,例如数据库连接池,下面我们来讲解下如何在spring中创建第三方bean实例。 1、导入数据库连接池的pom文件 <dependency> <groupId>co ......
spring对象的获取及属性赋值方式(二)
11、bean对象的初始化和销毁方法 在创建对象的时候,我们可以根据需要调用初始化和销毁的方法 Address.java package com.mashibing.bean;public class Address { private String province; private Stri ......
假设 a 是一个由线程 1 和线程 2 共享的初始值为 0 的全局变量,则线程 1 和线程 2 同时执行下面的代码,最终 a 的结果不可能是()
假设 a 是一个由线程 1 和线程 2 共享的初始值为 0 的全局变量,则线程 1 和线程 2 同时执行下面的代码,最终 a 的结果不可能是() boolean isOdd = false; for(int i=1;i<=2;++i){ if(i%2==1)isOdd = true; else is ......
【主流技术】MongoTemplate与Spring Boot项目集成分享(附CURD技巧)
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富、最像关系数据库的。
它支持的数据结构非常松散,是类似 Json 的 Bson(Json 的二进制)格式,因此可以存储比较复杂的数据类型。
而 MongoTemplate 是Spring Data MongoD... ......
Junit引用Spring注入的Bean
在Junit4中,如果直接引入Spring注入的Bean,Bean会为null,这是由于Junit 默认情况下不会加载 Spring 上下文环境,因此此时无法找到在 Spring注入的Bean。 解决方案:使用以下两个注解 @RunWith(SpringRunner.class) //加载Sprin ......
Spring 02 Spring注解开发
dao层 public interface UserDao { void insertUser(); } 实现类 /*@Component(value = "userDao") 配置到实例里去 或者直接用下面的Repository*/ @Repository("userDao") public cl ......
zookeeper编写多个同时启动脚本
存放在用户的bin目录下 chmod 777 给予权限 #!/bin/bash case $1 in"start"){ for i in hadoop102 hadoop103 hadoop104 do echo zookeeper $i 启动 ssh $i "/opt/module/zookeep ......
linux 中同时限定多个目录进行查找
001、不限制 [root@pc1 dir001]# ls ## 测试目录文件 test01 test02 test03 [root@pc1 dir001]# tree . ├── test01 │ ├── cc.csv │ └── kk.txt ├── test02 │ ├── mm.txt │ ......