MaxKey 单点登录认证系统——前端后端合并步骤 开发指南 | MaxKey单点登录认证系统该项目前端是Angular项目,后端是springboot项目以maxkey-web-app前后端合并为例构建MaxKey统一认证前端maxkey-web-frontend/maxkey-web-appng build --prod --base-href /sign/static/以上sign由以下得来:根据angular.json生成dist文件复制 dist下所有文件到 springboot目录的 resour
Java 中常见 IO 模型 典型 Java 服务端处理网络请求的 IO 过程:应用程序再用户态,不能直接访问内核空间,若想进行如文件管理、进程通信、内存管理、外界客户端通信等 IO 操作时,需要发起 I/O 调用,由操作系统的内核代为完成操作系统通过网卡,读取客户端的请求数据到内核缓冲区。内核再将数据从内核缓冲区拷贝到 Java 进程缓冲区。Java 进程处理完请求数据后把构建好的响应从用户缓冲区写入内核缓冲区。内核再通过网络 I/O ,将内核缓冲区中的数据,写入网卡,网卡通过底层的通讯协议,将响应数据发送给目标客户端。
前端input输入框,@input事件输入中文触发两次——解决方案 这样就可以避免在输入中文时input事件被连续触发两次的问题。这个问题可能是因为在使用中文输入法输入时,当你还在输入过程中(还未选择和确定最终的汉字词组)就会触发input事件,也就是说在你输入拼音的过程中就已经触发了input事件,等你选择了正确的汉字之后,又会再次触发input事件。这样就会造成在中文输入过程中,input事件触发两次的现象。这样一来,我们就能确保在拼音输入过程中,input事件只在输入完成后被触发一次。这两个事件来限制input事件的触发。比较有效的解决办法是使用。
SQL性能分析手段 获取 MySQL 如何执行 SELECT 语句的信息,如:数据表的查询顺序、数据查询操作的操作类型、哪些索引可以被命中、哪些索引实际会命中、每个数据表有多少行记录被查询等信息。支持 SELECT、DELETE、INSERT、REPLACE 以及 UPDATE 语句。命令可以提供整个服务器执行sql的状态信息。通过如下指令,可以查看当前数据库的。MySQL的慢查询日志默认没有开启,我们可以查看一下系统变量。,单位:秒,默认10秒)的所有SQL语句的日志。慢查询日志记录了所有执行时间超过指定参数(
Jetty 部署项目 文件夹,因为使用的是 c3p0数据库连接池,连接的是 Orcale数据库,故放入以下两个 jar包。里面新增如下配置,此处以 Oracle数据库为例。项目打包后直接放到webapps目录下即可。注意 jeerdp_DS替换为自己项目的。在根目录运行cmd,并输入。
Cloud-Platform 学习——Part6 WebClient异步非阻塞请求工具 多年来,框架的 RestTemplate 一直是客户端 HTTP 访问的首选解决方案,它提供同步、阻塞 API 来以简单的方式处理 HTTP 请求。然而,随着对非阻塞、反应式编程以更少的资源处理并发的需求不断增加,特别是在微服务架构中,RestTemplate 已经显示出其局限性。从 Spring Framework 5 开始,RestTemplate 已被标记为已弃用,Spring 团队推荐 WebClient 作为其继任者。
Cloud-Platform 学习——Part4 查看在线用户、强制退出用户 zset 不允许重复的成员。zset 的每个元素都会关联一个分数(分数可以重复),redis 通过分数来为集合中的成员进行从小到大的排序。一种是以key-value字符串形式存入redis,一种是以有序集合zset形式存入redis;校验token,并解析token获取用户信息,并把用户信息存入redis中,分别存入两种形式;前一种便于查看当前用户是否已登录,后一种便于管理人员查看当前在线用户并执行相关操作。
总结心得:各设计模式使用场景 访问者模式:一个对象集合有多个元素,需要从多个不同且不相干角度挨个访问这些对象,如:人物对象集合[学生、老师],家长角度访问学生的成绩和老师的能力,校长角度访问学生人数和老师任课科目。模板方法模式:多个类的步骤存在相同的一些步骤,把这些步骤提取成抽象类,抽象类再提供抽象方法供子类来具体实现,调用抽象类的方法,实际调用的事子类重写的方法。状态模式:某个对象在不同状态会有不同行为,如电梯的运行状态,ATM机的各种状态、订单状态、角色的不同状态(如跑动,跳跃,攻击等)
设计模式——行为型模式 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。
android studio调试一直卡在启动页转圈加载,进不去首页 在低android版本的手机能正常进入,高android版本的手机就一直卡在启动页转圈,大概率是由于sdk版本问题。可以把上述几个版本换成更高版本试试看。
设计模式——结构型模式 代理模式使用代理对象来代替对真实对象的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度代理模式有静态代理和动态代理指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系:我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。
设计模式——创建者模式 用一个已经创建的实例作为原型,通过Cloneable接口的clone()方法复制该原型对象来创建一个和原型对象相同的新对象。原型模式的克隆分为浅克隆和深克隆。浅克隆:创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性(引用类型),仍指向原有属性所指向的对象的内存地址。深克隆:创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址。Java中的Object类中提供了clone()方法来实现浅克隆。