
Java框架
文章平均质量分 89
K'illCode
记录自己的学习历程,大部分来自转载,如有侵权联系删除.......
展开
-
Spring 的循环依赖:真的必须非要三级缓存吗?
作者:青石路www.cnblogs.com/youzhibing/p/14337244.html写作背景做 Java 开发的,一般都绕不开 Spring,那么面试中肯定会被问到 Spring 的相关内容,而循环依赖又是 Spring 中的高频面试题这不前段时间,我的一朋友去面试,就被问到了循环依赖,结果他还在上面还小磕了一下,他们聊天过程如下面试官:说下什么是循环依赖朋友:两个或则两个以上的对象互相依赖对方,最终形成闭环。例如 A 对象依赖 B 对象,B 对象也依赖 A 对象...原创 2021-03-06 09:54:27 · 792 阅读 · 0 评论 -
Tomcat 架构原理解析到架构设计借鉴
Tomcat 架构原理解析到架构设计借鉴Tomcat 发展这么多年,已经比较成熟稳定。在如今『追新求快』的时代,Tomcat 作为 Java Web 开发必备的工具似乎变成了『熟悉的陌生人』,难道说如今就没有必要深入学习它了么?学习它我们又有什么收获呢?静下心来,细细品味经典的开源作品。提升我们的「内功」,具体来说就是学习大牛们如何设计、架构一个中间件系统,并且让这些经验为我所用。美好的事物往往是整洁而优雅的。但这并不等于简单,而是要将复杂的系统分解成一个个小模块,并且各个模块的职责划分也.原创 2020-07-17 22:10:49 · 224 阅读 · 0 评论 -
MyBatis 框架下 SQL 注入攻击的 3 种方式
前言SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。新手代码审计者往往对Java Web应用的多个框架组合而心生畏惧,不知如何下手,希望通过Mybatis框架使用不当导致的SQL注入问题为例,能够抛砖引玉给新手一些思路。一、Mybatis的SQL注入Mybatis的SQL语句可以基于注解的方式写在类方法上面,更多的是以xml的方式写到xml文件。Mybatis中SQL语句需要我们自己手动编写或...原创 2020-07-17 22:04:38 · 262 阅读 · 0 评论 -
Spring Security+JWT+Vue实现一个前后端分离无状态认证Demo
作者:陕西颜值扛把子来源:zhuanlan.zhihu.com/p/95560389简介完整代码:https://github.com/PuZhiweizuishuai/SpringSecurity-JWT-Vue-Deom运行展示后端主要展示 Spring Security 与 JWT 结合使用构建后端 API 接口。主要功能包括登陆(如何在 Spring Security 中添加验证码登陆),查找,创建,删除并对用户权限进行区分等等。ps:由于只是 Demo,原创 2020-07-01 18:55:23 · 486 阅读 · 0 评论 -
Shiro框架:认证和授权原理
前言Shiro作为解决权限问题的常用框架,常用于解决认证、授权、加密、会话管理等场景。本文将对Shiro的认证和授权原理进行介绍: Shiro可以做什么?、 Shiro是由什么组成的? 举个Shiro的例子呗? Shiro认证的原理是咋样的? Shiro授权的原理是咋样的? 1. Shiro可以做什么?在构建一个网络应用的时候,权限检验管理作为非常重要的安全措施,需要包含以下几点: 用户认证— 用户身份识别。得知道来的人是谁; ..原创 2020-05-29 11:02:59 · 472 阅读 · 0 评论 -
瞬间几千次的重复提交,我用 SpringBoot+Redis 扛住了
在实际的开发项目中,一个对外暴露的接口往往会面临,瞬间大量的重复的请求提交,如果想过滤掉重复请求造成对业务的伤害,那就需要实现幂等!我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理。如何保证其幂等性,通常有以下手段:1、数据库建立唯一性索引,可以保证最终插入数据...原创 2020-04-12 18:30:54 · 578 阅读 · 0 评论 -
Spring Task 定时任务没有定时执行
来源:侠梦的开发笔记前言定时任务的使用,在开发中可谓是家常便饭了,定时发送邮件、短信。避免数据库,数据表过大,定时将数据转储。通知、对账等等场景。当然实现定时任务的方式也有很多,比如使用 linux下的crontab脚本,jdk 中自带的 Timer 类。Spring Task或是 Quartz 。相信你也有过如下的疑问: Spring Task 的c...原创 2020-04-09 18:41:57 · 461 阅读 · 0 评论 -
Springboot + Vue + shiro 实现前后端分离、权限控制
作者:_Yufancnblogs.com/yfzhou/p/9813177.html本文总结自实习中对项目的重构。原先项目采用Springboot+freemarker模版,开发过程中觉得前端逻辑写的实在恶心,后端Controller层还必须返回Freemarker模版的ModelAndView,逐渐有了前后端分离的想法,由于之前,没有接触过,主要参考的还是网上的一些博客教程等,初步完...原创 2020-03-23 21:33:03 · 234 阅读 · 0 评论 -
从Servlet、Dubbo、Mybatis聊聊责任链究竟怎么用
责任链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系, 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。这里就不再过多的介绍什么是责任链模式,主要来说说java中如何编写。主要从下面3个框架中的代码中介绍。 servlet中的filter dubbo中的filter mybatis中的plugin...原创 2020-03-04 18:45:20 · 276 阅读 · 0 评论 -
实战:用SSM框架实现支付功能(附源码)
# 前言本教程详细介绍了如何使用ssm框架实现支付宝支付功能。本文章分为两大部分,分别是「支付宝测试环境代码测试」和「将支付宝支付整合到ssm框架」,详细的代码和图文解释,自己实践的时候一定仔细阅读相关文档,话不多说我们开始。# 支付宝测试环境代码测试源代码:https://github.com/OUYANGSIHAI/sihai-maven-ssm-alipay...原创 2020-02-03 20:10:50 · 2215 阅读 · 0 评论 -
Java干掉恶心的 SQL 注入
简介文章主要内容包括: Java 持久层技术/框架简单介绍 不同场景/框架下易导致 SQL 注入的写法 如何避免和修复 SQL 注入 JDBC介绍 全称 Java Database Connectivity 是 Java 访问数据库的 API,不依赖于特定数据库 ( database-independent ) 所有 Java...原创 2020-01-20 17:46:13 · 312 阅读 · 0 评论 -
Mybatis是这样防止sql注入的
Mybatis这个框架在日常开发中用的很多,比如面试中经常有一个问题:$和#的区别,它们的区别是使用#可以防止SQL注入,今天就来看一下它是如何实现SQL注入的。什么是SQL注入在讨论怎么实现之前,首先了解一下什么是SQL注入,我们有一个简单的查询操作:根据id查询一个用户信息。它的sql语句应该是这样:select * from user where id =。...原创 2020-01-12 19:06:08 · 494 阅读 · 0 评论 -
Mybatis的这些坑
大多数开发者应该都使用过Hibernate或者Mybatis的框架,或多或少都踩过一些坑!如在MyBatis/Ibatis中#和$的区别,#方式能够很大程度防止sql注入,$方式无法防止Sql注入。所以,老司机 对新手说,最好用#。简单的说#{}是经过预编译的,是安全的,而是未经过预编译的,仅仅是取变量的值,是非安全的,存在sql注入。有些特例是需要关注的,有的时候需要用 解决解决一些实际问题。...原创 2019-12-11 12:05:43 · 797 阅读 · 0 评论 -
Mybatis:PageHelper分页插件源码及原理剖析
PageHelper是一款好用的开源免费的Mybatis第三方物理分页插件,其实我并不想加上好用两个字,但是为了表扬插件作者开源免费的崇高精神,我毫不犹豫的加上了好用一词作为赞美。原本以为分页插件,应该是很简单的,然而PageHelper比我想象的要复杂许多,它做的很强大,也很彻底,强大到使用者可能并不需要这么多功能,彻底到一参可以两用。但是,我认为,作为分页插件,完成物理分页任务是根本,其它...原创 2019-11-28 19:49:01 · 182 阅读 · 0 评论 -
Spring boot + Jsoup 搭建高清视频解析系统接口只需1分钟
前几天有个小姐姐想看《天使陷落》的大片问有没有资源的渠道。本着不给广大程序小老哥的脸,想也没想的就答应给小姐姐找资源。但是凄惨的是把以前经常用的网站烦了个遍都没有。这点小问题肯定难不到勤奋的小老弟,一通谷歌、百度、dogedoge终于找了可靠资源。既然现在资源这么匮乏,网站都找到了何不试试抓包看看接口。说干就干,按照一贯的操作流程,打开Chrome->开发者工具...原创 2019-11-28 19:48:30 · 2277 阅读 · 1 评论 -
MyBatis 多数据源读写分离(注解实现)
首先需要建立两个库进行测试,我这里使用的是master_test和slave_test两个库,两张库都有一张同样的表(偷懒,喜喜),表结构表名 t_user表中分别添加两条不同数据,方便测试 主数据库记录name为xiaobin,从库为xiaoliu 开始使用Springboot 整合mybatis,首先引入pom文件<?xml version="1.0"enco...原创 2019-11-19 20:43:47 · 480 阅读 · 1 评论 -
Mybatis:颠覆你心中对事务的理解
1.说到数据库事务,人们脑海里自然不自然的就会浮现出事务的四大特性、四大隔离级别、七大传播特性。四大还好说,问题是七大传播特性是哪儿来的?是Spring在当前线程内,处理多个数据库操作方法事务时所做的一种事务应用策略。事务本身并不存在什么传播特性,不要混淆事务本身和Spring的事务应用策略。(当然,找工作面试时,还是可以巧妙的描述传播特性的)2.一说到事务,人们可能又会想起create、be...原创 2019-11-19 20:40:46 · 151 阅读 · 0 评论 -
MyBatis 源码:原来 resultMap 解析完是这样
目录在 select 语句中查询得到的是一张二维表, 水平方向上看是一个个字段, 垂直方向上看是一条条记录。作为面向对象的语言, Java 中的的对象是根据类定义创建的。类之间的引用关系可以认为是嵌套的关系。在 mybatis 中, resultMap 节点定义了结果集和结果对象(JavaBean)之间的映射规则。本文主要讲解的是 resultMap 的解析...原创 2019-11-19 20:37:29 · 256 阅读 · 0 评论 -
Spring MVC+Spring+Mybatis实现支付宝支付功能(图文详解)
前言本教程详细介绍了如何使用ssm框架实现支付宝支付功能。本文章分为两大部分,分别是「支付宝测试环境代码测试」和「将支付宝支付整合到ssm框架」,详细的代码和图文解释,自己实践的时候一定仔细阅读相关文档,话不多说我们开始。本教程源代码:https://github.com/OUYANGSIHAI/sihai-maven-ssm-alipay一、支付宝测试环境代码测试1. 下载电...原创 2019-11-19 20:36:39 · 263 阅读 · 0 评论 -
SpringMVC使用websocket做消息推送
WebSocketWebSocket协议支持(在受控环境中运行不受信任的代码的)客户端与(选择加入该代码的通信的)远程主机之间进行全双工通信。用于此的安全模型是Web浏览器常用的基于原始的安全模式。 协议包括一个开放的握手以及随后的TCP层上的消息帧。该技术的目标是为基于浏览器的、需要和服务器进行双向通信的(服务器不能依赖于打开多个HTTP连接(例如,使用XMLHttpRequest或&l...原创 2019-11-07 21:26:47 · 396 阅读 · 0 评论 -
常用的设计模式汇总
单例模式简单点说,就是一个应用程序中,某个类的实例对象只有一个,你没有办法去new,因为构造器是被private修饰的,一般通过getInstance()的方法来获取它们的实例。getInstance()的返回值是一个对象的引用,并不是一个新的实例,所以不要错误的理解成多个对象。单例模式实现起来也很容易,直接看demo吧publicclassSingleton{privat...原创 2019-11-07 21:24:02 · 135 阅读 · 0 评论 -
附源码!Spring Boot 并发登录人数控制
通常系统都会限制同一个账号的登录人数,多人登录要么限制后者登录,要么踢出前者,Spring Security 提供了这样的功能,本文讲解一下在没有使用Security的时候如何手动实现这个功能demo 技术选型 SpringBoot JWT Filter Redis + Redisson JWT(token)存储在Redis中,类似 J...原创 2019-11-07 21:23:11 · 210 阅读 · 0 评论 -
Redis + Tomcat + Nginx 集群实现 Session 共享
一、Session共享使用tomcat-cluster-redis-session-manager插件实现插件地址见:https://github.com/ran-jit/tomcat-cluster-redis-session-manager该插件支持Tomcat7、Tomcat8、Tomcat9或者直接在附件中下载(版本为2.0.2,2017-11-27日前最新版本)h...原创 2019-11-07 21:22:36 · 201 阅读 · 0 评论 -
这个Spring循环依赖的坑
1前言这两天工作遇到了一个挺有意思的Spring循环依赖的问题,但是这个和以往遇到的循环依赖问题都不太一样,隐藏的相当隐蔽,网络上也很少看到有其他人遇到类似的问题。这里权且称他非典型Spring循环依赖问题。但是我相信我肯定不是第一个踩这个坑的,也一定不是最后一个,可能只是因为踩过的人比较少、鲜有记录罢了。因此这里权且记录一下这个坑,方便后人查看。正如鲁迅(我)说过,“...原创 2019-11-07 21:21:50 · 291 阅读 · 1 评论 -
批量测试Mybatis项目中SQL是否正确
去Oracle行动最近公司要发展海外项目,所以要将现有的系统全部平移过去,另外数据库也要从原来的Oracle变为Mysql。公司的数据库交互层面使用的是Mybatis,而Oracle与Mysql也有一些语法上的不同。所以在项目中的Sql要改动,但是多个项目中涉及到的Sql非常多,如果仅凭人工一条一条辨别的话,工作量有点大。所以就萌发出了直接将数据源变为Mysql,利用反射批量执行Mappe...原创 2019-10-23 21:02:13 · 375 阅读 · 0 评论 -
Mybatis 中$和#千万不要乱用!
开头这是一次代码优化过程中发现的问题,在功能优化后发现部分数据查不到出来了,问题就在于一条sql上的#和$。下图为两条sql:从图上可以看出 wwlr.LabelId in(${showLabels}) 和 wwlr.LabelId in(#{showLabels}),其中showLabels是传进来一个字符串类型的参数,参数的样子是这样的“4,44,514”,问题就出在这个参数传...原创 2019-10-23 20:50:21 · 304 阅读 · 0 评论 -
Spring MVC中有现成的WebSocket组件
# WebSocketWebSocket协议支持(在受控环境中运行不受信任的代码的)客户端与(选择加入该代码的通信的)远程主机之间进行全双工通信。用于此的安全模型是Web浏览器常用的基于原始的安全模式。协议包括一个开放的握手以及随后的TCP层上的消息帧。该技术的目标是为基于浏览器的、需要和服务器进行双向通信的(服务器不能依赖于打开多个HTTP连接(例如,使用XMLHttpRequest或...原创 2019-10-13 19:29:10 · 236 阅读 · 0 评论 -
原来resultMap解析完是这样(mybatis源码)
在select语句中查询得到的是一张二维表, 水平方向上看是一个个字段, 垂直方向上看是一条条记录。作为面向对象的语言,Java中的的对象是根据类定义创建的。 类之间的引用关系可以认为是嵌套的关系。在 mybatis 中,resultMap节点定义了结果集和结果对象(JavaBean)之间的映射规则。本文主要讲解的是resultMap的解析。两个基础类在阅读本文之前...原创 2019-10-13 19:27:24 · 200 阅读 · 0 评论 -
Spring 思维导图,让 Spring 不再难懂(mvc篇)
spring mvc简介与运行原理Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。(1) Http请求:客户端请求提交到DispatcherServlet。(2) 寻找处理器:由D转载 2018-02-05 18:25:41 · 332 阅读 · 0 评论 -
Spring 思维导图,让 Spring 不再难懂(ioc 篇)
写过java的都知道:所有的对象都必须创建;或者说:使用对象之前必须先创建。而使用ioc之后,你就可以不再手动创建对象,而是从ioc容器中直接获取对象。就好像我们无需考虑对象的销毁回收一样,因为java垃圾回收机制帮助我们实现了这个过程;而ioc则是让我们无需考虑对象的创建过程,由ioc容器帮我们实现对象的创建、注入等过程。控转载 2018-02-05 18:27:46 · 364 阅读 · 0 评论 -
Spring 思维导图,让 spring 不再难懂
与其他框架相比,spring项目拥有更多的模块,我们常用的ioc,mvc,aop等,这些是spring的主要板块。一篇文章也不可能全部都讲,所以,我打算先把spring简介说一下,后续再写ioc,mvc和aop。关于 SpringSpring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一转载 2018-02-05 18:30:41 · 361 阅读 · 0 评论 -
Spring思维导图,让Spring不再难懂(aop篇)
AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。这种散布在各处的无关的代码被称为横切(cross-cutting)代转载 2018-02-05 18:31:41 · 213 阅读 · 0 评论 -
mybatis思维导图,让mybatis不再难懂(一)
与hibernate相比,我无疑更喜欢mybatis,就因为我觉得它真的好用,哈哈。它简单上手和掌握;sql语句和代码分开,方便统一管理和优化;当然缺点也有:sql工作量很大,尤其是字段多、关联表多时,更是如此。而且sql依赖于数据库,导致数据库移植性差。选用一个框架之前最好先了解它的优缺点,对项目最好用,效率最高的才是一个你最好的选择。mybatis简介MyBatis 是支持转载 2018-02-05 18:38:00 · 345 阅读 · 0 评论 -
mybatis思维导图,让mybatis不再难懂(二)
上一篇文章写了mybatis的基本原理和配置文件的基本使用,这一篇写mybatis的使用,主要包括与sping集成、动态sql、还有mapper的xml文件一下复杂配置等。值得注意的是,导图17和18中讲解resultMap子元素的时候可能讲得不是很清楚,应该需要大量的代码来讲解使用方法,思维导图恰恰不适合这种表现方法。所以需要读者根据给出的链接去读一些好的博客文章,这样才能更好理解。毕竟是技术性转载 2018-02-05 18:38:57 · 204 阅读 · 0 评论 -
Spring思维导图,让Spring不再难懂(cache篇 )
关于缓存缓存是实际工作中非常常用的一种提高性能的方法。而在java中,所谓缓存,就是将程序或系统经常要调用的对象存在内存中,再次调用时可以快速从内存中获取对象,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。在增删改查中,数据库查询占据了数据库操作的80%以上,而非常频繁的磁盘I/O读取操作,会导致数据库性能极度低下。而数据库的重要性就不言而喻了:数据库通常是转载 2018-02-05 18:40:33 · 365 阅读 · 0 评论 -
自己手写一个SpringMVC框架
Spring框架对于Java后端程序员来说再熟悉不过了,以前只知道它用的反射实现的,但了解之后才知道有很多巧妙的设计在里面。如果不看Spring的源码,你将会失去一次和大师学习的机会:它的代码规范,设计思想很值得学习。我们程序员大部分人都是野路子,不懂什么叫代码规范。写了一个月的代码,最后还得其他老司机花3天时间重构,相信大部分老司机都很头疼看新手的代码。废话不多说,我们进入今天的正题,在Web应...转载 2018-03-11 16:58:21 · 304 阅读 · 0 评论 -
Java Spring 知识汇总!
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性的角度而言,绝大部分Java应用都可以从Spring中受益。Spring优点:低侵入式设计,代码的污染极低;独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Ru...转载 2018-04-28 17:04:59 · 321 阅读 · 0 评论 -
我们为什么要使用AOP?
有一个接口Dao有insert、delete、update三个方法,在insert与update被调用的前后,打印调用前的毫秒数与调用后的毫秒数。首先定义一个Dao接口:/*** @author 五月的仓颉http://www.cnblogs.com/xrq730/p/7003082.html*/public interface Dao { public void insert(); ...转载 2018-04-23 08:22:32 · 432 阅读 · 0 评论 -
springboot+dubbo+redis+RabbitMQ 项目整合实例
来源:https://blog.youkuaiyun.com/qq_28125445作者:夏佐关于springboot, 之前零零碎碎地写了一些,今天从项目实战角度给大家分享一下我的一点经验。话不多说,先从项目的目录结构讲起。(文章最后贴了源码下载地址)如图:项目分层:parent(顶级 )pom -- api(公共API、DTO等)jar -- foundation(公共基设)jar --...转载 2018-07-02 20:16:30 · 1673 阅读 · 0 评论 -
SpringMVC工作原理
原文:http://www.cnblogs.com/xiaoxi/作者:平凡希SpringMVC的工作原理图:SpringMVC原理1、用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则...转载 2018-07-16 12:58:20 · 148 阅读 · 0 评论