- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 Idea商业版切换到社区版后启动springboot所遇问题
今天因为公司不能用idea商业版来开发了,所以切换成idea社区版,遇到了springboot项目启动不起来,原因是找不到某一些maven中的jar包类,排查问题很久,发现是.iml(information of module)中<orderEntry scope = “PROVIDED”导致,将其替换为默认即可。Dependency Scope在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5
2021-10-27 19:00:48
1417
原创 系统垂直越权与水平越权漏洞修复记录
最近系统的安全渗透测试中,检测出存在垂直越权和水平越权的漏洞。确实项目的权限管理,只是限制到菜单和按钮粒度,没有细到业务代码的每个接口上。在此记录一下自己的修复思路。一、什么是垂直/水平越权?...
2020-06-18 16:42:32
3477
1
原创 Java的Map转实体类,实体类转Map,包括父类
今天写代码的时候遇到一坑,项目里需要将Map转换到实体类,然后实体类转换到Map。但是该实体类是有父类的,在代码运行的时候报空指针错误,追根溯源是因为转换的时候父类的属性被忽略掉了,下面记录一下解决的方法。public class DTOTools{ public static Map<String, ?> Entity2Map(Object entity) thro...
2019-12-03 23:34:01
1289
原创 spring的BeanUtil.copyProperties,源对象属性有null覆盖目标对象属性情况解决
解决方法主要有两种:一、自己写子类import java.beans.PropertyDescriptor;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.Modifier;import java.util.HashMap;import java.ut...
2019-11-27 09:09:56
2146
原创 Mysql数据库的cursor游标,view视图,存储函数,触发器用法
1、cursor 游标利用游标解决了sql语句无法进行行记录处理的难题,想当于java中的遍历数组-- 存储函数BEGIN DECLARE river_id VARCHAR(32); -- 自定义变量 DECLARE river_name VARCHAR(50); -- 自定义变量 DECLARE done INT DEFAULT FALSE; -- 遍...
2019-10-27 19:44:37
354
原创 Java的RSA非对称加密,与web,移动端配合
之前改造老系统,要求用RSA非对称加密,前前后后看了很多资料,现在总结梳理一下。加密过程主要就是:生成一对公钥和私钥,公钥加密,私钥解密。需要注意jdk1.8有base64的工具类,而1.8之前可以用sun.misc.BASE64Decoder/Encoder来替代。1、Java后端代码package rsa;import sun.misc.BASE64Decoder;i...
2019-10-18 16:29:03
510
原创 Java获取某天所在周的开始与结束日期
通过Java的Calendar类来实现,坑在于国外一周的第一天是从周天算起。在计算当前日期为周天的时候,要将其转换为周六来计算。public class DealWeek { public static void main(String[] args) throws ParseException { String date = "2019-12-31"; Cal...
2019-10-16 11:21:47
2350
1
原创 重构初体验——影片出租店例子
任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。好代码是不断重构出来的,让我们先来看一个案例。需求:这是一个影片出租店用的程序,计算每一位顾客的消费金额并打印详单。操作者告诉程序:顾客租了哪些影片、租期多长,程序便根据租赁时间和影片类型计算出费用。影片分为三类:普通片、儿童片和新片。除了计算费用,还要为常客计算积分,具体的租赁用户积分规则为:...
2019-10-10 22:23:12
2232
原创 存储过程入门
1、为什么学习存储过程?(1)通过把处理封装在容易使用的单元中,简化复杂的操作;(2)由于不要求反复建立一系列处理步骤,这保证了数据的完整性,如果所有的开发人员和应用程序都使用同一存储过程,则所使用的代码都是相同的;(3)简化对变动的管理。如果表名、列名或业务逻辑有变化,只需要更改存储过程的代码,使用它的开发人员甚至不需要知道这些变化,也就是具备了安全性;(4)提高了性能,因为使用...
2019-10-08 11:08:53
128
原创 TDD测试驱动开发初体验
在实际开发中,常常有写一个功能,越写越晕,花费很长时间才能完成功能的情况。虽然代码实现了功能,但是面条代码,不够优雅,可测试性较差这些问问常常存在。由于自己以前做过测试,所以对于写完的代码做测试是有执念的。最近也参加了一个测试开发的训练营,觉得里面的例子对提升思维很好。话不多说,上需求,上代码。上需求之前,先来看一下TDD的流程,写测试-编码-重构。需求:我们经常会遇到需要解析命...
2019-08-18 21:21:37
643
原创 Java对象克隆
1、为什么需要对象克隆?在处理一些拥有很多属性的对象时,一个一个的get然后set属性会很麻烦,所以用到clone()方法,可以很方便的克隆一个一模一样的新对象出来。2、如何实现克隆?克隆又分为浅克隆与深克隆,具体解释让我们用代码说话。public class Teacher implements Cloneable,Serializable{ private Stri...
2019-07-29 17:24:08
155
原创 Mysql数据库设计,基础知识总结
在日常开发中,大部分时间都在用mysql数据库,零零散散,积累了一些知识点,所以今天决定梳理总结成一篇文章。目录1、数据库设计三大范式2、mysql数据库的数据类型3、mysql数据库主键、外键、索引的区别与联系1、数据库设计三大范式1、第一范式1NF(原子性、字段不可分)定义:每个列都是不可再分割的数据项。2、第二范式2NF( 主键列与非主键列遵循完全函数依...
2019-07-21 15:15:01
322
原创 Java中的函数式编程
函数式编程是Java8的新特性,作为追求少而优雅的代码的程序员来说,必须学习一波。函数式编程语言操纵代码片段就像操作数据一样容易。 虽然 Java 不是函数式语言,但 Java 8 Lambda 表达式和方法引用 (Method References) 允许你以函数式编程。0、什么是函数式编程,函数式编程的核心思想又是什么呢?函数式编程的第一个特点就是可以把函数作为参数传递给另一个函数...
2019-07-15 10:41:16
171
原创 总结一些实际编码中的金科玉律
最近看了《程序员修炼之道,从小工到专家》。蛮有收获,在这里总结一下其中编码的金科玉律,比如DRY(Don't repeat your self),KISS(keep it simple and stuipd)原则。要让自己在代码的时候时刻记得这些,只有有意识地强化实践和反复提醒自己。毕竟能不能让正确的原则指导正确的行动本身,其实就是区分是否是高手的一个显著标志。1、在所有弱点中,最大的弱点就是...
2019-07-07 22:03:58
131
原创 Java内部类的学习与理解
内部类的定义是将一个类的定义放在另一个类的定义内部,这就是内部类。而我们知道,外部类只能用public和default来修饰,但是内部类就不受这个限制,可以用private和protected。而且内部类写起来也很简单:PS: 附上.this和.new用法。public class Outer { private String name; public Outer(S...
2019-07-01 00:22:18
125
原创 关于递归的简单应用
说到递归,不得不说一个经典的公式:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*),也就是斐波那契数列(Fibonacci sequence),又称黄金分割数列。转换成代码来表示: public static int f(int i){ if(i == 1){ return 1; ...
2019-06-22 23:56:26
163
原创 java的IO之适配器模式和装饰模式
Java的IO中用到了适配器模式与装饰模式,首先我们来看看关于这两种模式的定义。适配器模式:将一个类的接口,转换成客户期望的另外一个接口。适配器让原本接口不兼容的类可以合作无间。装饰模式:动态的将责任附加到对象上。若要扩展此功能,装饰者提供了比继承更有弹性的替代方案。具体来说:1、在字符流Reader/Writer的使用中,InputStreamReader/OutputStrea...
2019-06-16 23:58:08
364
原创 设计模式学习总结之策略模式
最近本打算把23种设计模式好好过一遍,无奈越看越懵,代码量不够,脑洞拿来凑。结合《HeadFirst 设计模式》和以往的学习,做一个总结。所谓设计模式,其实就程序员前辈们总结出的编码设计经验。常用的可以分为3类,23种。A:创建型模式:简单工厂模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,单例模式。(6个)B:结构型模式:外观模式、适配器模式、代理模式、装饰模式、桥接模式、组...
2019-06-09 17:40:57
140
原创 Java文件上传和下载的思路
基于spring的mutipartFile实现上传功能:1、前端表单上传文件(单个用MultipartFile,多个用MultipartFile[])2、后台接收该请求中的multipartFile文件流3、创建本地文件file4、将multipartFile文件流转换到文件file中 = multiFile.transferTo(file);5、将对应的javaBean文件对象信息,持...
2018-12-03 16:53:31
1704
原创 Java多态的理解与使用
一、如何理解多态?教科书式的解释为,多态的存在有三个前提:1.要有继承关系 2.子类要重写父类的方法 3.父类引用指向子类对象多态的弊端,就是:不能使用子类特有的成员属性和子类特有的成员方法。如需要,需要强转为子类(向下转型)。纸上得来终觉浅,绝知此事要躬行,真正很好的理解多态用法, 还是的写代码。举一个例子:假如一个人出门吃东西,吃了面条,又吃米饭,又吃水果。。。等等。...
2018-08-24 18:38:09
2990
4
原创 关于系统权限管理的一些思路和代码实现
任何系统都离不开权限管理,一般来说,要实现权限管理,需要有三个模块。1、资源:包含系统中所有可用的功能。2、权限:针对资源,对资源的访问添加控制方式。3、角色:针对权限,对权限的打包。这里讲一下我的实现,因为用到了反射,IO,自定义注解,集合等知识点,觉得对于java的初学者来说很经典,所以分享出来。先上思路:1、Resource类:private String na...
2018-08-20 01:32:56
2165
原创 Java单例模式初识,以及好处
单例模式是一个很经典的设计模式,在java中无处不在。比如spring中的bean注入,工具类的编写等。但是在刚接触单例模式时候,我总对这个饱汉式和饿汉式的称呼理解不好。下面来讲一讲我自己的理解。1)饿汉模式(传统销售式)class A{ private A(){}private static A instance = new A();//这里更像传统销售产品,...
2018-05-07 23:50:03
484
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人