驾驶证科目一扣分规则记忆技巧
扣分规则详情《道路交通安全违法行为记分管理办法》规定,机动车驾驶人有下列交通违法行为之一
一次记1分:
驾驶校车、中型以上载客载货汽车、危险物品运输车辆在高速公路、城市快速路以外的道路上行驶超过规定时速百分之十以上未达到百分之二十的;
驾驶机动车不按规定会车,或者在高速公路、城市快速路以外的道路上不按规定倒车、掉头的;
驾驶机动车不按规定使用灯光的;
驾驶机动车违反禁令标志、禁止标线指示的;
驾驶机动车载货长度、宽度、高度超过规定的;
驾驶载货汽车载物超过最大允许总质量未达到百分之三十的;
驾驶未按规定定期进行安全技术检验的公路客运汽车、旅游客运汽车、危险物品运输车辆以外的机动车上道路行驶的;
驾驶擅自改变已登记的结构、构造或者特征的载货汽车上道路行驶的;
驾驶机动车在道路上行驶时,机动车驾驶人未按规定系安全带的;
驾驶摩托车,不戴安全头盔的。
一次记3分:
驾驶校车、公路客运汽车、旅游客运汽车、7座以上载客汽车以外的其他载客汽车载人超过核定人数百分之二十以上未达到百分之五十的;
驾驶校车、中型以上载客载货汽车、危险物品运输车辆以外的机动车在高速公路、城市快速路以外的道路上行驶超 ...
简易版即时通讯系统
写在前面之前了解了即时通讯设计的基本方案,感觉蛮有意思,但一直没有实现;这两天参照网上的教程实现了一些小功能,此项目未经严格测试,仅供娱乐,切勿当真!。
技术架构主要技术:vue+springboot+mybatis-plus
网上教程是前后端不分离项目,我还是想做前后端分离的,之后可以考虑集成到其他项目中去。
交互设计数据库设计用户表:
记录用户基本信息,这里给出必要的几个字段即可
消息表:
主要用于记录用户之间发送的消息,其中包括,发送者id,接收者id,发送内容等
接口设计因为即时通讯系统需要前后端互相配合,因此接口的设计和传输对象的设计比较重要,这里给出po和vo的设计
持久化对象:
用户对象
1234567891011121314151617181920212223242526272829303132333435363738394041package com.wolfman.wolfchat.po;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.anno ...
Nacos默认使用内网注册问题
问题描述如下图所示,服务1和网关部署在服务器1上,服务2和nacos部署在服务器2上。网关调用服务1成功,调用服务2失败。报错如下:
1234567891011121314151617io.netty.channel.ConnectTimeoutException: connection timed out: /10.0.0.12:8888 at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$2.run(AbstractEpollChannel.java:576) ~[netty-transport-native-epoll-4.1.59.Final-linux-x86_64.jar!/:4.1.59.Final] Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Error has been observed at the following site(s): |_ c ...
简单权限管理模型介绍
前言风、宇个人博客的权限管理也是一个亮点,实现了接口管理与菜单管理,将前后端的权限都封装为可配置,此文简单总结一下基本使用。
权限管理方案基本介绍授权是用户认证通过根据用户的权限来控制用户访问资源的过程,拥有资源的访问权限则正常访问,没有
权限则拒绝访问。
基于角色RBAC基于角色的访问控制(Role-Based Access Control)是按角色进行授权,比如:主体的角色为总经理可以查询企业运营报表,查询员工工资信息等,访问控制流程如下:
根据上图中的判断逻辑,授权代码可表示如下:
123if(主体.hasRole("总经理角色id")){ 查询工资 }
如果上图中查询工资所需要的角色变化为总经理和部门经理,此时就需要修改判断逻辑为“判断用户的角色是否是
总经理或部门经理”,修改代码如下
123if(主体.hasRole("总经理角色id") || 主体.hasRole("部门经理角色id")){ 查询工资 }
我们可以发现当需要修改角色的权限时就需要修改 ...
策略模式+模板方法模式介绍
前言风、宇的个人博客中针对第三方登录、文件上传等功能使用了策略模式+模板方法模式进行编写,是非常良好的编程习惯,这样在新增策略时只需要添加新类即可,同时也避免了复杂的条件判断。
这里总结一下策略模式与模板方法模式的结合使用。
值得提到的是,对于设计模式的学习我更偏向于结合具体的场景进行理解,以便今后灵活应用,而不是死板地记忆各种类角色。
策略模式在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。
例如我们要创建一个计算策略,通过传入不同的策略执行不同的逻辑:
创建一个接口
123public interface Strategy { public int doOperation(int num1, int num2);}
创建实现接口的实体类,封装了具体地执行逻辑,也就是不同的策略
123456789101112131415161718public class OperationAdd implements Strategy{ @Override publi ...
手写简易版spring web框架
前言spring框架给java工程师们提供了极大的便利,只需要添加相应的配置即可快速搭建项目骨架,将更多重心放在业务逻辑的开发中。spring具有两大核心功能:
控制反转(IoC,Inversion of Control)
传统的JAVA开发模式中,当需要一个对象时,我们使用new或者通过getInstance等直接或者间接调用构造方法创建一个对象,而在spring开发模式中,spring容器使用工厂模式为我们创建了所需要的对象,不需要我们自己去创建了,直接调用spring提供的对象就可以了,这就是控制反转。控制反转的好处有:
使用方便,不用开发者大量使用new
解耦合,实例对象交给容器管理
面向切面编程(AOP)
在面向对象编程(OOP)中,我们将事务纵向抽成一个个的对象,而在面向切面编程中,我们将一个个的对象某些类似的方面横向抽成一个切面,对这个切面进行一些如权限控制,事务管理,日志记录等公用操作处理的过程,就是面向切面编程的思想。
实现ioc主要流程图
加载类文件首先我们需要加载包下的类文件,包名我们可以手动配置,因此提供配置文件:
1234567891011121 ...
迷宫游戏
写在前面算法设计与分析课程大作业为实现一个迷宫游戏,我觉得挺有意思的,于是做一下记录。
java的图形化编程没怎么学,我打算采用js来实现,使用网页编程的好处是比较轻量,并且自由度比较高,也挺适合这类小游戏的,但最主要的原因还是java图形化编程不太会。
前期准备首先引入jq简化开发,生成迷宫的基本思路是外面套一层div作为包裹,中间再包裹上小div,当然外层div拥有边框,内部的小div就需要对边框进行处理:
所有div加上右边和下边的边框
最后一行去除下边框
最后一列去除右边框
html结构如下:
12345678910111213141516171819202122232425262728293031323334353637383940<body> <div class="maze-outer"> <div class="first-grid"> <div class="second-grid">< ...