![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 81
ifredom_
我常常以为,记忆是最容易模糊的东西,在时间的流逝里,人生如一轻烟般的淡去。
展开
-
渐进式 shiro - shiro + jwt+salt (三)
在 ShiroConfig 中,规定了只有登录接口(subjet.login())会使用UserRealm.需要携带token得接口与UserRealm 毫无关系Shiro将Realm设计为可拔插模块,而Realm认证,授权。两个单词非常相似。授权 doGetAuthorizationInfo: 处理角色是否能够访问相应的 web service 相关信息认证 doGetAuthenticationInfo: 处理角色登录相关信息/**原创 2022-11-17 10:40:23 · 3061 阅读 · 2 评论 -
渐进式 shiro - shiro + jwt+salt (二)
本文简述:密码加盐,比较策略修改./regester/login/login自定义Realm自定义Realm原创 2022-11-17 10:35:12 · 377 阅读 · 0 评论 -
渐进式 shiro - shiro + jwt+salt (一)
本文简述:shiro基本使用shiro 最常用得就是用来处理登录接口以及这么一个框架。/login。原创 2022-11-17 10:33:50 · 451 阅读 · 0 评论 -
shiro-数据加盐
SimpleHash。原创 2022-10-24 09:24:32 · 661 阅读 · 0 评论 -
spring boot 注解用例
8 分钟阅读时长。学习 springboot 框架,就是学习如何使用它的注解。翻译 2022-10-19 15:41:57 · 145 阅读 · 0 评论 -
Java 系列-Exception
在 Java 中,Exception 被单独列为了一章,足以证明其独立性与重要性。所以什么是异常?Java 的基本理念是“结构不佳的代码不能运行”。对于程序 Error 而言,恢复系统 Error 十分重要,而,能够极大的提高代码健壮性。对于, 在编译期间发现它自然是最好的时机,因为此时我们可以立即更改代码,提高健壮性来解决问题。但是, 有些错误,属于运行时错误, 只有在程序编译完成后,在 JVM 中运行时,才能发现这种隐患。原创 2022-10-19 14:53:52 · 621 阅读 · 0 评论 -
序列化 - Jackson
Jackson 是当前用的比较广泛的,用来序列化和反序列化 json 的 Java 的开源框架。Jackson 社区相对比较活跃,更新速度也比较快。Spring MVC 的默认 json 解析器便是 Jackson。(目前最新稳定版本:2.13.4)原创 2022-10-17 17:35:58 · 1895 阅读 · 0 评论 -
Java 系列-- JSR-303 表单验证
起因,使用 springboot 创建了一个web项目,借助 mybatis 写了一个创建新用户的接口, 此时对客户端传递过来参数,该如何进行校验,哪个字段必传,如果某字段为空,如何返回一个指定的字符串消息?这样,我找到了JSR303规范。原创 2022-10-14 17:10:20 · 1592 阅读 · 0 评论 -
Java 系列 - ThreadPool 线程池
目的:掌握线程池的使用,API中各个参数什么是线程池: 线程池是一种线程使用模式,线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。为什么使用线程池: 为了减少创建和销毁线程的次数,让每个线程都可以多次的使用,可以根据系统情况调整线程的数量,防止消耗过多内存。在实际使用中,服务器在创建和销毁线程上花费的时间和消耗的系统资源都相当大,使用线程池就可以优化。说白了就是别再使用这三种基本方式去创建线程了,使用线程池这个类来管理线程的初始化参数,创建,销毁。原创 2022-10-04 21:39:31 · 939 阅读 · 0 评论 -
jaotc
JIT(Just-in-time,动态(即时)编译,边运行边编译):吞吐量高,有运行时性能加成,可以跑得更快,并可以做到动态生成代码等,但是相对启动速度较慢,并需要一定时间和调用频率才能触发 JIT 的分层机制AOT(运行前编译):内存占用低,启动速度快,可以无需 runtime 运行,直接将 runtime 静态链接至最终的程序中,但是无运行时性能加成,不能根据程序运行情况做进一步的优化AOT 程序的典型代表是用 C/C++ 开发的应用,它们必须在执行前编译成机器码;原创 2022-09-20 18:16:42 · 569 阅读 · 0 评论 -
spring 源码实现
框架运行过程步骤描述包含两部分内容:默认为 spring 框架,使用[应用]标注的表示,这一步骤描述是属于应用程序。通过实现 mini 版本 spring 框架,成为一个更合格的spring工程师。在书写源码的过程中,遇到不清晰的知识点,记录在文件夹。原创 2022-09-20 11:13:30 · 545 阅读 · 0 评论 -
RestTemplate今天过去将来
webClient本文适合阅读对象:项目中依然使用了 RestTemplate 作为客户端的开发人员。或者有需要使用 Apache HttpClient 或者 OKHttp 这一类 HTTP 工具库的开发人员。原创 2022-08-22 08:52:29 · 1060 阅读 · 0 评论 -
Idea Java开发必备插件
工欲善其事必先利其器开发 Java 必备的 Idea 插件.拥有这些插件后,避免工具使用方面的烦恼。原创 2022-08-12 17:50:26 · 4625 阅读 · 0 评论 -
rabbitMQ:二使用docker安装rabbitMQ
本教程将每一步脉络整体书写,每一步具体操作,都有细分讲解rabbitMQ 适合中小型公司,数据量不大的业务系统.exit。原创 2022-08-08 15:55:49 · 550 阅读 · 0 评论 -
rabbitMQ:一安装docker
本教程的适用于:在 centos7 上安装 docker,以及阿里云服务器(默认为 centos7)上完成 docker 的安装.安装 docker 是为了,省事。原创 2022-08-08 15:51:04 · 614 阅读 · 0 评论 -
白话 Tomcat 运行
本文适合相对Tomcat,SpringServlet不了解,或希望理解更深的用户阅读。Tomcat是一个Java应用程序,作用是为用户提供通过网络访问网站的功能,专业术语名称为网络服务器。1.Tomcat如何是实现允许用户通过网络访问的功能?2.Tomcat与Servlet,JSP关系?3.如何创建一个Tomcat程序4.关于Servlet需要了解的内容。......原创 2022-07-23 23:36:51 · 201 阅读 · 0 评论 -
Maven构建多模块项目
本文使用命令行进行演示,当然使用Idea也是可以的。原创 2022-07-21 14:09:37 · 706 阅读 · 0 评论 -
Java系列 - 设计模式(序)
1创建型模式这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用new运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。2结构型模式结构型设计模式关注类和对象的组合。继承则作为手段来组合接口和定义组合对象获得新功能的方式。3行为型模式这些设计模式特别关注对象之间的通信。4.J2EE模式这些设计模式特别关注表示层。这些模式是由SunJavaCenter鉴定的。......原创 2022-07-21 13:15:34 · 117 阅读 · 0 评论 -
Java系列 - 工具类提效
有很多现成的工具包可以加速开发,简化代码书写,将其分门别类归纳.使用: StringUtils.isNotBlank(“ifredom”);2. Collection 集合工具类(2种)1.包下的 类2. 包下的 (不推介使用spring框架提供的collections)使用:3. Objects 工具类4. Boolean 工具类与字符工具类一样,推介使用: commons-lang3布尔的包装类:, 它有三种值:5. IO 工具类主要常用到这3个类6. 反射工具原创 2022-07-12 17:45:58 · 299 阅读 · 0 评论 -
Java系列 - 最新 Mybatis Generator
最新版本的mybatis-plus-generator已经到了3.5.3,这个代码库的管理真是一言难尽。MybatisGenerator3.5.0以下版本使用方法,网上已经很多相关的老旧教程,不做讨论。本文只针对版本,可以直接copy运行。原创 2022-07-01 12:03:36 · 1109 阅读 · 4 评论 -
JAVA系列 - 数据库连接池
druid可以查看数据源,sql监控、sql防火墙、web应用、session监控、URI监控、spring监控、jsonapi等信息。原创 2022-06-30 14:27:42 · 630 阅读 · 0 评论 -
Java系列 - 反射
反射中的反意思是: 通过对象来找类为什么会有反射?反射其实是一种语言特性,设计反射的目的是为了:找到源头类,然后使用源头类。大部分情况都可以通过 一个对象 来使用类以及类上方法,但是有些情况下无法使用 new 来创建对象,因为类是再运行时动态创建的,压根就不存在,此时就是反射上场了。当然我们先用简单的例子来讲解。正常使用一个类的方式是: 首先先有这个类,然后通过来创建这个类的对象,然后就能够借助这个对象调用这个类上面的方法。而反射的使用方式有所不同,需要理解:正常使用一个类,等于我们已经有了工具原创 2022-06-29 16:43:37 · 234 阅读 · 0 评论 -
Java系列 - Spring 加载配置项的四种方式
spring框架默认加载配置:示例:1. spring 加载 yml 文件上面已经通过默认的方式演示了如何加载默认的application.yml,但是更好的写法是,将我们自定义的配置独立为一个单独的文件。比如我们开发微信公众号,小程序开发时,就需要用到配置,此时的配置就应该独立为一个额外的文件。(此处将演示加载为 List)一共有3步:示例:测试结果从上一步我们已经知道了, spring 默认使用 properties 文件的加载器。因此,我们可以少一步构造加载器测试:3.原创 2022-06-15 16:12:22 · 3557 阅读 · 0 评论 -
java 系列 - Mybatis-plus 注入自定义 Sql
mybatis-plus 提供了许多默认单表 CRUD 语句,对于其他 SQL 情况爱莫能助。如果有一个删库跑路,并且需要多次调用,来清空多张表数据得需求,那么如何把他封装在 mybatis-plus 中调用呢?SQL 注入器官方文档提供了一个小案例 自定义 Mapper 示例解读:DefaultSqlInjector就是一个注册类,其中注册了一系列 mybatis-plus 内置的 update,insert,select SQL 语句方法,并且对表主键是否存在进行了判定:如果设置了主键,那么会原创 2022-05-30 17:22:34 · 1293 阅读 · 0 评论 -
Java系列 - LocalDateTime
package com.ifdom.date;import java.time.DayOfWeek;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.Period;import java.time.format.DateTimeFormatter;import java.time.temporal.TemporalAdjusters;/** * @Author ifredomvip@gma原创 2022-05-25 11:12:01 · 227 阅读 · 0 评论 -
Java系列 - WebMvcConfigurer详解
WebMvcConfigurer接口常用的方法: /* 拦截器配置 */void addInterceptors(InterceptorRegistry var1);/* 视图跳转控制器 */void addViewControllers(ViewControllerRegistry registry);/** *静态资源处理**/void addResourceHandlers(ResourceHandlerRegistry registry);/* 默认静态资源处理器 */void原创 2022-05-17 09:22:37 · 2862 阅读 · 0 评论 -
java系列 - entity,vo转换
起因使用 mybatis-plus 操作后获得的数据类型为 Entity,但是前端界面往往需要展示一些其他的字段数据,此时就需要 将 Entity 转化为 Vo。那么他们三者的关系是什么呢?面向的使用对象不同entity: 对应数据库表模型,vo: 对应需要返回到前端的数据模型dto: 对应后台内部调用的数据模型package com.springblog.entity.vo;import lombok.Data;import java.io.Serializable;@Data原创 2022-05-10 17:01:55 · 5656 阅读 · 0 评论 -
Java系列 - 依赖注入及相关问题
起因Idea中使用@Autowire注解会出现提示黄线,强迫症患者看着很难受。使用构造器注入或者setter方法注入后可解决Spring中的三种依赖注入方式Field Injection :@Autowired注解的一大使用场景就是Field InjectionConstructor Injection :构造器注入,是我们日常最为推荐的一种使用方式Setter Injection: Setter Injection也会用到@Autowired注解,但使用方式与Field Injection有原创 2022-05-10 10:18:21 · 265 阅读 · 0 评论 -
java系列 - fastjson, jackjson, Gson三者异同
起源当后端接口向前端返回数据时,有时response数据是null, 十分不利于前端处理。因此为了统一格式,需要返回在:接口返回得数据是String类型时,不返回null,而返回 “”接口返回得数据是Map类型时,不返回null,而返回 {}接口返回得数据是List类型时,不返回null,而返回 []为了解决这个问题,就到了选择json序列化工具得时候,目前有三种工具:fastjson 是阿里巴巴2011年的开源 json 解析库jackjson 是 spring boot 官方内置原创 2022-05-09 13:41:31 · 2621 阅读 · 0 评论 -
java系列 - Windows安装Redis 以及 Springboot集成Redis
windows 安装 RedisRedis 是一个数据库,存放的数据结构是:key-value 这种键值对。例如:name:“张三”age:18sex:trueparent: ZhangSanFatherObject下载并安装 Redis.首先,redis 是一个数据库,需要有专门的运行环境,因此需要在电脑上安装redis服务来提供运行环境。在我本机上,将其安装到了目录 D:\software\redis,安装时其他选项都默认即可。注册为 Windows 服务并启动。上一步已经安原创 2022-04-27 13:13:34 · 2823 阅读 · 0 评论 -
Java系列 - socket 缓冲流传输文件
看的老韩的视频,记录一下socket缓冲流传输。封装的方法注意 read(buff) 传参设置结束标记时,注意package com.network.ioexercise.networkmain;import java.io.*;import java.net.ServerSocket;import java.net.Socket;/** * 1. 编写服务端和客户端,服务器再9999端口监听 * 2. 客户端连接服务端,发送一张图片 D:\\pic.png * 3. 服务端收到.原创 2022-04-08 16:46:18 · 862 阅读 · 0 评论 -
java系列 - win10 安装 MySQL
mysql安装下载。不使用官网,而使用国内的镜像去下载,速度很快。下载安装 选择版本 :mysql-8.0.27-winx64.msi安装。下载完成后,双击安装,选择第二项 custom, 设置路径,我本地安装地址为: D:\allsofoware\mysql8新建文件夹(数据库文件存放在这)。手动新建一个 文件夹,名称为 data, 位置在刚刚安装的 mysql 目录下:D:\allsofoware\mysql8\data新建文件。手动新建一个文件,名称为 my.ini,位置在刚原创 2022-03-23 22:48:46 · 393 阅读 · 0 评论