- 博客(48)
- 资源 (1)
- 收藏
- 关注
原创 【2024-03-14】Spring中基于注解和AOP的结合实现(改造系统中的原有AOP鉴权)
由于要前后打印日志,但是接口时通过POST方式接收,涉及到读取Body数据,可Web中的Body只能读取一次,故这是个问题点。由于需要打印前后日志,所有使用环绕通知实现,又需要基于注解可能要给其他服务使用,使用注解比表达式更灵活。SpringMVC中也会涉及到重复读写Body的情况,可以查看Spring中是否已经实现,果然。,要访问数据库获取入口信息,如果以公用模块的方式提供其他服务使用,需要提供灵活的方法。改造系统中的原先写的通过表达式拦截实现的鉴权功能。,实现与抽象分离,让代码变的灵活。
2024-04-12 14:18:16
330
原创 【2024-03-14】程序设计中的基础概念理解
变量:变量是用一个别名指代一个具体的值,如果存在多次引用,这个具体的值改变,只需改变一处即可,即变量是给某个值(如:1)起了个别名x。函数:如果变量是给值(如:1)起了个别名,那么函数就是给一段代码起了个别名(如:add -> x+ y)。陆续更新中~~~~~~
2024-03-14 09:20:34
387
原创 【2024-03-12】设计模式之模板模式的理解
优化过程:(脑子里面月饼的形状)打造成模具,放入面粉和馅料,(开口合并)合上模具,月饼成型。第一个:根据脑子里面月饼的形状,先涅出月饼的形状,然后放入面粉和馅料把开口合并起来。第二个:根据脑子里面月饼的形状,先涅出月饼的形状,然后放入面粉和馅料把开口合并起来。第三个:根据脑子里面月饼的形状,先涅出月饼的形状,然后放入面粉和馅料把开口合并起来。第四个:根据脑子里面月饼的形状,先涅出月饼的形状,然后放入面粉和馅料把开口合并起来。一开始,由人工制作月饼,实际应用场景:制作月饼。编码应用场景:医疗票据。
2024-03-12 11:51:57
546
原创 【2022-03-03】RBAC基于角色的访问控制
对功能模块的操作,对上传文件的删改,菜单的访问,甚至页面上某个按钮、某个图片的可见性控制,都可属于权限的范畴。这样,可以不需要权限菜单关联表,让权限表与菜单表直接关联,此时,须在权限表中新增一列用来保存菜单的ID,-限表通过“权限类型”和这个ID来区分是种类型下的哪条记录。请留意权限表中有一列“权限类型”,我们根据它的取值来区分是哪一类权限,如“MENU”表示菜单的访问权限、“OPERATION”表示功能模块的操作权限、“FILE”表示文件的修改权限、“ELEMENT”表示页面元素的可见性控制等。
2023-03-28 15:09:00
153
原创 【2023-03-24】-代码注释的重要性
这样太影响效率,所以每天加班的都是你(哈哈哈),还有你是否经历过努力加班写完代码,结果再回过头,去看业务逻辑,发现写错了的尴尬场面,还有你是否经历过写一点代码,要看一下文档的重复性操作(2),这一切都是因为我们在学习写代码时忽略掉的一个重要的语法(注释)啊。现在企业招聘一个软件开发人员,一般都是要兼顾多个项目,在多个项目之间来回切换,如果项目的业务很大很杂,一个人不可能记得住所有的逻辑,每次都要去看一遍代码逻辑(1),然后恍然大悟,原来是这样的!(3)这是我一直想买实现的一个功能。
2023-03-24 10:13:59
132
原创 Redis数据类型-需求实战记录
可以实现消息队列(不推荐,还不如使用Stream数据类型)。Stream:消息队列,可以持久化消息、ack确认。List:保证数据插入顺序,基于双向链表实现。可以已极小的内存实现签到次数及连续性统计。Set:不保证数据顺序,但保证数据唯一性。ZSet:按积分保证顺序,保证数据唯一性。可以实现简单的消息队列进行异步处理。可以实现快速判断是否拥有指定权限。可以实现按插入顺序最新内容。可以实现快速的动态排名。可以存在序列化数据。可以实现堆数据结构。可以实现栈数据结构。可以实现优先级队列。
2022-09-15 22:42:30
198
原创 【20220829】-Oracle-null参与运算结果为null
相当于 8786.6 + null = null,导致接口报错.将可能为null的结果,使用nvl函数处理为0.
2022-08-29 10:56:41
426
原创 SQL-计算字段、JOIN、UNION、SQL函数、聚合函数、GROUPBY名词解释
计算字段: 将多个列,合并为一个列,一般通过别名引用。UNION关键字:将多个查询结果合并为一次查询结果。JOIN关键字:将多个表合并为一个表。
2022-08-05 17:40:26
297
原创 【2022-07-15】Oracle-SQLRecoverableException: IO 错误: The Network Adapter could not establish the conne
在项目中配置Oracle连接地址报错但是使用PL/SQL可以连接。
2022-07-15 09:10:07
1371
原创 【2022-07-14】mybatis-日志无法打印问题
maven日志依赖查看源码发现mybatis检查不到日志实现调试结果意思是没有找到日志实现类.问题解决
2022-07-14 11:30:27
797
原创 单体架构到前后端分离架构升级之旅
我们使用的方案是复制出一个项目,之后所以的新需求都写到新项目中,就系统的BUG在新旧系统都要修改,先找几家试用测试。其他模块照旧,将一个实时搜索独立成一个项目。
2022-07-05 15:25:16
675
原创 【2022-07-05】-发票默认打印方式是横版,客户需求是默认方式改为A4纵向打印
提取出来的图片和PDF大小不同,应该发票大小是固定的,所以不能使用这种方案。结果客户很满意。IText使用(超详解)itext 生成 PDF
2022-07-05 09:18:52
1330
1
原创 项目问题:使用Mybatis对Oracle查询数据记录时,navicat查询有记录,但是mybatis查询返回null
根据指定条件查询Oracle表数据记录。使用Mybatis对Oracle查询数据记录时,navicat查询有记录,但是mybatis查询返回null。APP 中接收数据代码:原因分析:查询条件的值不一致。系统使用了不同数据库相同表结构的双数据源。第一次查询后缓存,其他操作插入记录,导致从缓存获取,为null。解决方案1:查看和对比查询条件一致,不是该原因。通过idea调试工具查询调用的数据源正常,不是该原因。重启项目,也不行。首先使用statement同样的查询条件正常返回记录。再
2022-06-29 22:52:57
926
原创 面试题-Spring
Srping IOC思想Spring AOP思想Spring 依赖循环Spring Bean生命周期Spring 容器初始化
2022-05-01 20:06:04
576
原创 面试题-Java基础
String对象创建问题?String a = new String("b");//创建了几个对象?//可能是2个可能是1个。String a = "a";String b = "b";String c = "c";c = a + "" + b + "" + c;//创建几个对象?// 4个。集合ArrayListLinkedListHashMap多线程创建线程的方式连接池的原理Java提供的线程池类型实现方式同步锁,关键字。IOBIONIO实现方式,
2022-05-01 19:56:03
735
原创 某次更新后项目内存暴涨到奔溃
工具visualVM生成堆快照打开thread打开引用面板所有线程折叠显示,点击线程一个个找把引用最多的都看一遍,双击打开线程堆栈信息就和看异常一样。上面的就是问题代码。通过github版本回滚大致定位再几个提交呢。根据提交的版本看使用的技术。再根据线程堆栈信息找到相关代码。或使用idea的堆栈快照可以直接下断点。...
2022-01-05 15:21:35
148
原创 基于docker的Nginx静态服务器搭建埋坑记(纯命令安装)
搜索Nginx安装包[root@VM-4-9-centos /]# docker search nginxNAME DESCRIPTION STARS OFFICIAL AUTOMATEDnginx Official build of Nginx. 1592.
2021-12-16 18:05:28
2088
原创 element-ui table行和多选框的联动选择
// 高亮显示选择行highlight-current-row// table 事件绑定@row-click="rowFinanceChecked" @select-all="(selection)=>payEntry.checks = selection.map((m) => m.id)" @select="(selection)=>payEntry.checks = selection.map((m) => m.id)// 选中行事件rowFinanceChecked(
2021-11-18 09:22:17
866
原创 2021-10-21-exceljs+elementUI导出导入工具
import { saveAs } from 'file-saver'import * as ExcelJs from 'exceljs'import * as Excel from 'exceljs';/** * 导出excel数据 * @param { Array } header 表头 * @param { Array } properties 属性 * @param { Array } data 数据 * @param { String } filename 文件名 */exp
2021-10-21 11:13:12
398
原创 2021-10-21-exceljs实践记录
读excel/** * 首先 获得文件buffer对象。 */function readFile(file) { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.onload = (e) => { resolve(e.target.result); } reader.readAsArrayBuffer(file); });
2021-10-21 11:09:51
235
原创 Java1.8常见源码解析笔记
Java1.8常见源码解析笔记Java基础类解析所有类的基类 (Object)equals方法规范getClass和class的区别 ?Java基础类解析所有类的基类 (Object)把所有Java类看出一颗树,那么Object就是这棵树的根,它位于 java.lang 包下面。java.lang 包是个特殊的包,不需要使用import便可使用其下的所有类。之所以不需要导入原因很简单,应为要经常使用所以提前默认加载这个包。通过Idea Structure视图可以看到Object结构如下 :e
2021-02-06 21:43:17
207
原创 我对于Spring事务的理解
事务的四大特性原子性事务是由一些列动作组成的不可分割的整体,这个整体要么一起生,要么一起死.一致性一个事务不论成功与否都要保证,成功后的数据与原有数据关系(一对一、一对多、多对多)一致。隔离性每个事务都应该和其他事务保持隔离,这样事务直接就不会冲突。持久性一旦事务完成,无论发生什么系统错误,它对数据的修改都不应该受到影响。Spring支持两种事务管理方式编程式事务管理(使用率极少)????对于编程式事务管理,Spring推荐使用TransactionTemplate。优点:代码级别的
2020-12-11 14:01:50
114
原创 关于三层架构中的VO,DTO对象的使用说明
看到网上很多资料,都在将VO和DTO之间微妙的关系,最近有个项目刚好用到很多VO和DTO之间的转换调用,于是就想将自己的经验和理解写下来,我会使用先分开理解,再说差异。
2020-12-04 11:54:39
5559
3
原创 EleTree组件异步加载实现
EleTree组件异步加载实现div id="test1" lay-filter="data1"></div><script>layui.config({ base: "/static/layuiadmin/modules/" }).use('eleTree', function(){ var $ = layui.$; ...
2019-08-17 20:58:03
2171
原创 关于MybatisPageHelper的使用记录
关于MybatisPageHelper的使用记录关于PageHelper的描述PageHelper是mybatis为解决查询分页问题的一套技术.它让程序员不用为解决分页问题而浪费大量时间,更关注业务本身的代码实现.第一步导入maven坐标 <dependency> <groupId>com.github.pagehelper</g...
2019-08-13 21:51:39
178
原创 我对RestfulCURD方法的理解?
什么是CURD?1.C:创建/添加(create/insert)2.U:更新(update)3.R:查询(read/query)4.D:删除(delete)我对Restful的理解?1.Restful是一组API接口,它将传统的根据映射路径名区分执行的行为,转换为通过不同的请求方式进行区分.举例说明传统的Controller层结构@RequestMapping("/subIt...
2019-07-22 19:03:16
495
原创 03 Activity知识点
03 Activity知识点文章目录03 Activity知识点如何创建一个新的Activity?如何切换Activity?如何传递数据?可以传递哪些数据?可以传递对象吗?如何回传数据?Activity的生命周期编程习惯如何创建一个新的Activity?创建一个继承自 Activity 的类.import android.app.Activity;public class Secon...
2019-07-21 23:36:27
343
翻译 JDK1.7net源码之Socket&ServerSocket
不怕重头再来,就怕写不出.类结构说明包名java.net类名类 Socket(套接字)父类java.lang.Object完全限定名java.net.Socket实现接口Closeable, AutoCloseable所有已实现的接口Closeable, AutoCloseable直接已知子类SSLSocket说明该类实现客...
2019-07-21 23:36:02
249
原创 File类路径问题的详细描述
获取路径的几种常用方式通过类加载器方式: *.class.getClass().getResource("/").getPath();//获得当前类所在目录,要去掉前面的(**/**)通过系统变量方式 System.getProperty(var); 常用变量变量说明user.name当前用户名称userhome当前用户主目录user....
2019-07-21 23:35:53
417
原创 24 Android Content Provider
04 ContentProvider什么是ContentProvider应用程序间实现数据共享的接口.内容提供者,把程序中的一些数据提供给其他应用程序.ContentResolverContentResolver contentResolver=getContentResolver();//获得内容解析器.Uri:通用资源标识符.Uri uri = Uri.parse("conte...
2019-06-10 09:43:35
136
原创 23 SQLite 数据库存储
03 SQLite存储重要的数据什么是SQLite数据库官方指定的数据存储数据库.特点:轻量级 独立 隔离 跨平台 多语言接口 安全性:多读,单写.如何使用SQLite创建数据库继承SQLiteOpenHelper重写构造方法(context,"*.db",null,1)onCreate:创建时的一些操作,第一次调用.onUpgrade:数据库版本不一致,就升级数...
2019-06-10 09:42:24
146
原创 22 如何管理文件
02 如何管理文件文章目录02 如何管理文件内部存储和外部存储获取存储权限选择安装存储位置存储位置说明如何判断是否可以存储标准目录路径其他路径特殊文件夹其他内部存储和外部存储Internal Storage内部存储External Storage外部存储获取存储权限<uses-permission android:name="android.permissio...
2019-06-10 09:41:55
445
原创 25 网络编程
05 网络编程如何请求网络数据1.申请网络权限2.获得Url 1.URL=new URL(string);3.请求:requestData(); 2.HttpURLConnection = Url.openConnection 3.setReadTimout("最大超时时间") 4.setRequestMethod("GET|POST|DELETE|PUT"):请求方式 5.co...
2019-06-10 09:40:50
174
原创 21 SharedPreferences
21 *SharedPreferencesSharedPreferences是什么?简单数据的持久化.如何使用?SharedPreferences =getSharedPreferences("xml名字",mode);editor = edit();editor.putType(k,v);//存数据editor.commit();//同步,直接写到文件.editor.getTy...
2019-06-09 17:07:17
90
原创 15 ConstraintLayout补充
15 ConstraintLayout补充比RelativeLayout更加灵活高效的布局.控件结构图片来源网络相对定位如果把width,height都设置为0dp,那么他们是可以拉伸控件的,否则就是对其控件.layout_constraintLeft_toLeftOflayout_constraintLeft_toRightOflayout_constraintRight_to...
2019-06-09 17:06:20
174
原创 14 Widget
14 Widget什么是Widget在桌面中显示的小组件.支持的布局和组件Widget并不支持所有的布局和控件,而仅仅只是支持Android布局和控件的一个子集。App Widget支持的布局: FrameLayout LinearLayout RelativeLayout GridLayoutApp Widget支持的控件: AnalogClock Butt...
2019-06-09 17:04:34
257
原创 13 WebView
13 WebView什么是WebView?网页浏览器的容器.可以做什么?加载线上URLloadUrl("url");setWebViewClient --控制页面.加载本地html本地页面存放路径:/main/assetsloadUrl("file://android_assets/*.html");和js交互getSettings().setJavaScr...
2019-06-09 17:04:02
143
原创 12广播应用接收器
12 Broadcast Receiver消息接收器如何使用Broadcast Receiver//继承BroadcastReceiver.注册方式静态注册AndroidManifest中注册.动态注册IntentFilter = new IntentFilter();IntentFilter.addAction("接受对象")registerReceiver("广...
2019-06-09 17:03:37
320
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人