摘要:
前言 接上篇的 XSS 漏洞处理实践,这次是针对 SQL 注入漏洞的处理实践。我们的后端代码,在项目初期没有使用世面上的 ORM 框架,而是使用 spring 的 JdbcTemplate 简单的封装了增删改查的 DAO 方法。然后暴露一通用的 Controller 层接口,这样无论是前端还是后端都 阅读全文
摘要:
前言 本月迭代需求没有几个,领导给我派了一个漏洞修复的活。这个项目是一个前后端不分离的ToB老项目,前端使用Velocity 模板+JQuery+miniui,后端是用的 Spring。嗯,前后端不分离,技术老旧,模块众多且耦合,基础设施不完善,让我从一开始校招(2022)刚进来接触到这个项目时候, 阅读全文
摘要:
线程状态转换 新建(New) 创建后尚未启动,也就是初始状态 可运行(Runnable) 可能正在运行,也可能正在等待 CPU 时间片。 包含了操作系统线程状态中的 Running 和 Ready。 阻塞(Blocking) 阻塞状态是指线程因为等待某个条件(通常是I/O操作、获取锁、等待某些资源或 阅读全文
摘要:
前言 并发问题有三个根本原因: cpu 缓存导致可见性问题 线程切换导致原子性问题:线程切换是发生于任何一条cpu指令级别的,而不是高级语言中的语句,例如 i++ 是三个cpu指令 编译器优化导致有序性问题 CPU缓存导致可见性问题与Java内存模型(JMM)的问题实际上是两个相互关联的概念。 CP 阅读全文
摘要:
前言 一开始学习 java 的时候,当我们在定义一个 pojo 的时候,都会去重写 equals 和 hashcode 方法。我已经忘记了当时是怎么学习的,反正感觉当时并没有很清晰的认知到重写equals 和 hashcode 的意义是什么,只是简单的背了一些八股文,包括在学习 Map的时候,也并没 阅读全文
摘要:
前言 MySQL 中有以下几种日志,包括: redo log(重做日志) undo log(回滚日志) binary log(二进制日志) error log(错误日志) slow query log(慢查询日志) general log(一般查询日志) relay log(中继日志) 事务的特性: 阅读全文
摘要:
## 1. 前言 设计模式,对于像java这种面向对象的语言来说,个人感觉是比较重要的。尤其在构建大型项目,设计模式的优点不言而喻。那么设计模式是什么?解决了软件工程中的什么问题?要想学一门东西,学一个知识点,我觉得首先得了解这个东西(知识、技术)它解决了什么问题,如果没有这门技术,那之前的做法是什 阅读全文
摘要:
###1. 什么是协变、逆变、不变 > 假设有两个类,Dog和Animal,如果用Dog 协变就是f(Dog)是f(Animal)的子类,即f(Dog) 类型构造器可以是泛型`List`, 可以是数组 `Animal[]`,可以是函数方法 `method(Animal)` ### 2.java 泛型 阅读全文
摘要:
## 1. 前言 > Spring 针对 Java Transaction API (JTA)、JDBC、Hibernate 和 Java Persistence API (JPA) 等事务 API,实现了一致的编程模型,我们大多数做业务开发的时候,通常就在业务方法上使用声明式注解 @Transac 阅读全文
摘要:
1.问题引出 在使用spring 框架进行web开发时,我们经常会使用一个Interceptor(拦截器)并将它交由ioc容器管理,用于web请求的一些拦截工作,类似下面这种,这里面就会使用ThreadLocal对象对当前线程做些操作,也就是保存一些"东西"到当前线程中,就是一个绑定的效果 @Com 阅读全文