- 博客(14)
- 收藏
- 关注
原创 【面试题记录】ThreadLocal有哪些使用场景?
在多线程访问共享变量的场景中一般的解决办法是对共享变量加锁,从而保证在同一时刻只有一个线程能够对共享变量进行一个更新。而加锁会带来性能下降,所以ThreadLocal用了一种叫空间换时间的设计思想,在每个线程里面都有一个容器来存储共享变量的副本,然后每个线程只对自己的变量副本去做更新操作,不会影像全局变量的值。eg1、数据库的连接管理,在使用数据库连接池的情况下,可以把数据库的连接存储在ThreadLocal里,这样每个线程可以独立去管理自己的数据库连接,避免了线程之间的竞争和冲突。
2024-02-27 23:32:51
132
原创 【工作随笔:五】记一个通过线程堆栈控制方法调用的思路
文章目录前言模拟工具类模拟调用者增加判断Java Thread getStackTrace()方法效果展示前言有这样一种场景,某些代码存在多层封装而只对外暴露一个调用API。但要考虑调用者绕过这个API调用的可能。模拟工具类public class ThreadUtils { public static String hello() { return "Hello"; }}模拟调用者public class TestA { public stati
2021-09-16 23:33:35
202
原创 【工作随笔:四】记录在已搭建的Springboot框架下整合Activiti-Modeler的经历
文章目录Springboot整合Activiti坑一坑二集成Activiti-Modeler引入静态文件解压,并拷贝下列文件到项目中根据实际情况修改拷贝的文件内容坑三Springboot整合Activiti一般来说,Springboot整合第三方开发框架是很简单的一件事儿,正常引入启动器即starter的pom坐标,进行少量的yml配置就可以直接使用了。顺着这个思路,就引入了如下坐标(版本为5.22.0,下同)<dependency> <groupId>org.act
2021-05-10 09:18:31
429
原创 Vue学习使用心得(四):对vue-admin-template轮子学习的心得体会(下)
文章目录前后端交互跨域问题产生同源解决方案实际解决办法Shiro的集成复杂请求session超时解决办法前后端交互跨域问题产生浏览器的同源策略,同源策略是一个安全策略,用于限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。同源scheme://host.domain:port/path/filenamescheme - 定义因特网服务的类型(http、https、ftp、file)host - 定义域主机(http的默认
2021-04-30 11:59:33
392
1
原创 Vue学习使用心得(三):对vue-admin-template轮子学习的心得体会(上)
文章目录写在前面轮子几点理解登陆getInfo其他写在前面关于Vue的具体使用点这里,这个是Vue的官方文档,里面对于语法和注意事项已经写的十分详细了。下文用到的轮子是Panjiachen大佬封装实现的,本文只是结合本人的开发经验对大佬的代码进行理解并记录思维过程的结果。因为本人长于后台开发,所以成文可能存在错误和不足,希望各位前端前辈不吝指出,谢谢。轮子原地址点我vue-element-admin 是一个后台前端解决方案,它基于 vue 和 element-ui实现。它使用了最新的前端
2021-04-21 17:29:55
354
原创 Vue学习使用心得(一):Vue开发环境搭建
文章目录前后端分离如何理解前后端分离前后端分离的好处环境搭建Node.js安装测试NpmNrm命令配置使用Nrm配置前后端分离如何理解前后端分离Java服务器端初学者最容易引起误解的一个概念就是: JSP是前端技术。JSP一定一定一定要知道全称:Java Server Page。是运行在服务器端JVM之上Servlet容器里的,只是执行的结果是HTML,响应给浏览器。Servlet是Java代码里混入HTML,JSP是HTML代码里混入Java。浏览器根本不关心服务器端是JSP、ASP、PHP
2020-09-23 14:31:13
154
原创 SpringDataJpa方法命名规范
方法命名规则查询就是根据方法的名字,就能创建查询。按照Spring Data JPA 定义的规则,查询方法以findBy开头,涉及条件查询时,条件的属性用条件关键字连接,要注意的是:条件属性首字母需大写。框架在进行方法名解析时,会先把方法名多余的前缀截取掉,然后对剩下部分进行解析。KeywordExampleJPQLAndfindByLastnameAndFirstname… where x.lastname = ?1 and x.firstname = ?2Orfi
2020-09-18 09:28:38
518
原创 在IDEA中使用GitHub
文章目录准备工作配置工作准备工作安装gitgit下载地址,在本机安装Git鼠标右键菜单出现这两个表示安装成功,或者在CMD下> git --versiongit version 2.23.0.windows.1有返回表示安装成功。注册GitHub安装idea可以使用社区版,不影响这部分功能。配置工作idea中配置gitfile–Settings–Version Control–Gitidea中配置GitHubfile–Settings–Version Co
2020-09-10 13:27:39
520
原创 【工作随笔:三】记录某项目初始化大量数据,从TXT文件导入数据到Oracle数据库的经历
因为业务需要,计划从别库迁移几亿笔业务数据作为基础数据使用,双方约定好采用如下格式的.txt文档进行数据交互。所有字段的数据将按照不超过该字段指定的长度提供。数据各字段间用|键分割。各条记录间用回车换行分割。从.txt文档导入Oracle库的时候,不能在导入的过程中修改数据,也不能增加字段(入库时间之类的),所以先创建一张临时表,用于从TXT接收数据。CREATE TABLE "TEMP_IMPORT" ( -- 字段部分省略);写导.txt文件的脚本其中:truncate可以根据自
2020-09-08 11:24:56
328
原创 【工作随笔:二】记一下Java开发中使用Double类型踩的坑和相应的解决办法
文章目录概要丢失精度科学技术法概要运算丢失精度大数据转字符串会变成科学计数法丢失精度(留坑待填)科学技术法 System.out.println(Double.toString(111111d)); System.out.println(Double.toString(1111111d)); System.out.println(Double.toString(11111111d)); System.out.println(Do
2020-08-31 02:22:11
481
原创 将ORACLE库表中字段的NOT NULL约束删除
查找约束SELECT *FROM user_constraintsWHERE table_name = '表名';删除ALTER TABLE "表名" DROP CONSTRAINT 约束对应的CONSTRAINT_NAME```
2020-08-11 13:26:11
3060
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人