学习笔记
文章平均质量分 54
阿杆.
后端开发,全网同名【阿杆】,我的公众号【程序员阿杆】。wx:sticki6,添加时请备注来意。
展开
-
WPF使用MaterialDesign -- 好看的控件先从button开始
WPF下 安装及使用 MaterialDesign 简单介绍原创 2021-12-09 17:30:44 · 8197 阅读 · 13 评论 -
Python之selenium,使用webdriver模拟登录网站(含验证码)
前言这段时间做了一个小项目,其中有一段需要自动获取网站后台的数据,但是这个网站没有任何提供给开发者的API,所以只能靠自己去探索。起初想着用发送请求的方式去模拟登陆,获取cookies,从而再获取网站后台数据,但是因为自己太菜了一些原因,放弃了这个方法。后来想到使用webdriver调用浏览器来模拟登陆,发现操作起来简单很多,而且可以达到同样的效果,于是便有了这篇文章。准备工作这里直接丢一篇selenium简介过来,里面有详细的操作方法,也有selenium库的一些基本介绍和用例。当然也可以去官原创 2021-08-22 02:20:03 · 13618 阅读 · 4 评论 -
Linux下的Jenkins安装教程
Linux下的Jenkins安装教程原创 2023-02-19 11:25:14 · 2829 阅读 · 0 评论 -
基于Redis的分布式锁 以及 超详细的改进思路
什么是分布式锁满足分布式系统或集群模式下多进程可见并且互斥的锁获取锁互斥:确保只能有一个线程获取锁,可以利用的互斥特性非阻塞:尝试一次,成功返回true,失败返回false释放锁手动释放,超时释放:获取锁时添加一个超时时间,避免服务宕机引起的死锁,组合实现思路改进思路存在的问题存在一种情况,按照以下顺序执行:示意图:这个问题,实际上就是释放了不是自己产生的锁,故我们可以通过特定的标识,在释放锁之前判断锁是否是由自己产生的,且只释放自己产生的锁。可以将线程id存入value,在释放之前判断锁的val原创 2022-06-22 12:30:16 · 638 阅读 · 1 评论 -
Redis 缓存更新策略,缓存穿透、雪崩、击穿问题
Redis 缓存更新策略,缓存穿透、雪崩、击穿问题原创 2022-06-19 22:20:30 · 374 阅读 · 0 评论 -
@Autowired 和 @Resource 的区别
@Autowired 默认的注入方式为byType(根据类型进行匹配),也就是说会优先根据接口类型去匹配并注入 Bean (接口的实现类),如果想要指定名称,可以通过@Qualifier配合使用。@Resource 默认注入方式为 byName(根据命名进行匹配)。如果无法通过名称匹配到对应的实现类的话,注入方式会变为byType。1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常; 2. 如果指定了name,则从上下文中查找名称(id)匹原创 2022-06-16 20:41:43 · 118 阅读 · 0 评论 -
Spring事务回滚的两种方法
使用 来配置自动回滚,可以配置在类上,也可以配置在方法上(作用域不同),但对final或private修饰的方法无效,且该类必须是受spring所管控的。若被配置的方法或类抛出了异常,则事务会被自动回滚,除非你在该方法中手动捕获了异常。可以使用 来设定针对特定的异常进行事务回滚,如果不设置则默认会回滚 RuntimeException and Error (参考自源码内文档)。通过注入 来手动开启事务,手动回滚事务,用于抛出异常被catch后,进行手动回滚。...原创 2022-06-12 18:01:31 · 5050 阅读 · 1 评论 -
Linux常用指令之用户管理
用户管理账号添加账号useradd [参数] [用户名]选项:-u 指定用户的用户号.-d 用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。-g 用户组 指定用户所属的初始组-G 用户组,用户组 指定用户所属的附加组。-s 指定用户的登录Shell,默认为/bin/bash-c 用户说明,一段注释性描述修改密码passwd [参数] [用户名]参数:-l 暂时禁用账号,仅root用户可以-u 解锁用户,仅root用户可以-d 使账号无口令。-f原创 2022-05-29 14:12:22 · 133 阅读 · 0 评论 -
Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】
Postman首先介绍一个转中文版的方式,GitHub链接:https://github.com/hlmd/Postman-cn目录Postman前言环境变量新建环境变量切换环境变量接口关联编写测试脚本动态参数内置动态参数自定义动态参数获取全局变量的方式:断言MokeService编写接口文档保存测试示例结语前言本文为postman中级使用教程,适合有一定的postman基础的小伙伴阅读,如果没有使用过postman或者类似软件,阅读本文可能会有不适。环境变量新建环境变量定义好的全局变量和环境原创 2022-05-29 12:10:23 · 1332 阅读 · 0 评论 -
SpringBoot 自定义@Enable开关注解之配置MybatisPlus分页助手
自定义开关注解配置分页助手使用 IPage 的话,记得一定要配置分页助手,尤其是在做微服务项目的时候,有可能这个服务配置了,但是另一个没配置,很容易遗漏。因为给每个微服务都加配置确实太麻烦了,所以想到可以使用开关注解来做一个自动配置的操作。就像你常用的那些开关注解一样:@EnableAsync // 开启异步控制@EnableCreateCacheAnnotation // jetcache启用缓存的主开关我将mybatis-plus的配置类也做成了这样的东西。首先在微服务的公共模块里原创 2022-05-27 14:14:16 · 637 阅读 · 0 评论 -
Minio文件下载问题——inputstream:closed
在使用minio进行文件下载的时候,代码一直报错 java.io.IOException: closed ,最终发现原来是因为 try () {} 语法问题所导致的。原创 2022-04-22 19:25:58 · 6595 阅读 · 3 评论 -
SpringBoot配置SSL 坑点总结【密码验证失败、连接不安全】
SpringBoot配置SSL坑点总结,包括四种常见错误和不常见错误,导致出现 密码验证失败、网站不安全 的原因。原创 2022-04-21 11:03:21 · 4657 阅读 · 4 评论 -
Spring Bean的加载方式【8种】
本文讲述了Spring bean 的八种加载方式,包含的内容足以应付大多数场景原创 2022-04-18 13:52:24 · 3729 阅读 · 2 评论 -
Python lambda 表达式 【学习笔记】
Python lambda 表达式 学习笔记原创 2022-03-17 17:12:03 · 854 阅读 · 0 评论 -
Linux 定时任务调度 【学习笔记】
Linux 定时任务调度 【学习笔记】 内涵 crontab 和 at 两种定时调度的使用方法和案例原创 2022-03-12 16:29:03 · 1905 阅读 · 0 评论 -
Linux 实用指令 【学习笔记】
Linux 实用指令 学习笔记 运行级别 找回root密码原创 2022-03-10 22:45:04 · 1623 阅读 · 0 评论 -
Oracle报错:ORA-02260——表只能有一个主键
Oracle报错:表只能有一个主键。总结及解决方案。原创 2021-12-09 14:26:48 · 5159 阅读 · 0 评论 -
C# winfrom 在button按钮上显示箭头
在C#中通过改变Button按钮的Text属性显示一些基本的图标把Button按钮的Font设置为Webdings把Text属性分别为3、4、5、6可以分别显示左、右、上、下箭头,其它值也可以显示其它的图标。效果如下...原创 2021-11-29 17:32:10 · 2066 阅读 · 0 评论 -
C# winfrom DataTable增加列
DataTable增加新的列DataTable table = new DataTable(); //创建对象dataGridView.DataSource = table; //绑定控件table.Columns.Add("列名", typeof(string)); //添加列,前面是列名,后面是类型foreach(DataRow row in table.Rows){ row["列名"] = "内容"; // 设置这一列的值,加一些相关的逻辑,保证该列每一行的数据是我们想要的}原创 2021-11-25 16:53:43 · 1742 阅读 · 0 评论 -
C# winfrom 判断DataTable为空的方法
判断DataTable为空前言DataTable是存储数据表的一种类型,常被用来接收数据库返回的值,当我们不确定数据库返回的值是否为空时,就需要提前对此进行判断了判断DataTable是否为空,实则是判断dataTable.Rows.Count是否大于0,若大于0,说明表中有数据,否则说明表为空。代码示例GetData data = new GetData(); // 这里是自己实现的一个对数据库进行相关操作的类DataTable table= data.GetFrequencyList();原创 2021-11-24 20:16:41 · 6034 阅读 · 0 评论 -
Oracle查询已有的sequence(序列)
查看数据库中当前用户创建的所有序列:select SEQUENCE_NAME from user_sequences;原创 2021-11-24 16:52:47 · 12082 阅读 · 0 评论 -
C# DateTimePicker转DataTime
DateTime dt = this.dateTimePicker.Value;dateTimePicker.Value 本身就是 DateTime 类型,不必转换就可以直接使用原创 2021-11-24 15:43:52 · 659 阅读 · 0 评论 -
Oracle报错:ORA-01722-无效数字
ORA-01722:无效数字原创 2021-11-17 11:12:48 · 14399 阅读 · 0 评论 -
Oracle通过身份证求年龄的方法
Oracle通过Date求年龄的方法原创 2021-11-16 22:06:55 · 9790 阅读 · 1 评论 -
Oracle中is和as的区别
在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别;在视图(VIEW)中只能用AS不能用IS;在游标(CURSOR)中只能用IS不能用AS。原创 2021-11-15 11:42:13 · 894 阅读 · 0 评论 -
Oracle:ORA-00054 资源正忙 -- 锁表的解决方法
ORA-00054: 资源正忙 – 锁表的解决办法常用MySQL的朋友突然跑来用oracle可能会遇到这样的报错问题描述ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效 发生异常。原因:其他Session已经对目标表做了操作,且未提交操作,导致锁表,新的Session无法再对表进行DDL操作。解决方法Plan-A:等待原session执行完对表的操作,或commit对表的操作。Plan-B:关闭原会话,如果是由于操作失误导致的锁表,建议使用Plan-B。原创 2021-11-11 16:12:26 · 5319 阅读 · 0 评论 -
Python 判断dict中key是否存在的三种方法
Python 判断dict(字典)中是否存在key的方法Python dict key原创 2021-10-27 10:34:04 · 144491 阅读 · 4 评论 -
Python捕获异常发生的文件和具体行数
try: print(a)except Exception as e: print(e) print(e.__traceback__.tb_frame.f_globals["__file__"]) # 发生异常所在的文件 print(e.__traceback__.tb_lineno) # 发生异常所在的行数原创 2021-10-26 15:40:57 · 1882 阅读 · 0 评论