- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 关于使用SpringCache 缓存失效原因?
关于使用SpringCache 缓存失效原因?观前提示:本文章适用前提条件是 SpringBoot+SpringMVC+SpringCache环境下解决:必须是Controller 层方法调用的方法上加入缓存注解缓存失败原因:spring cache 的关键原理就是 spring AOP,通过 spring AOP,其实现了在方法调用前,如果不是Controller层方法 所调用方法 缓存注解将无法生效。示例@ResponseBody@RequestMapping("/testMap")pub
2021-12-02 21:32:20
1526
原创 SpringBoot2.5原理解析
文章目录**SpringBoot原理讲解**一、SpringBoot是什么?二、SpringBoot自动装配原理?三、SpringBoot配置文件加载顺序?四、SpringBoot是如何解析yaml、properties文件?以及如何自定义解析配置文件?五、SpringBoot启动顺序?刷新上下文SpringBoot原理讲解一、SpringBoot是什么?Spring Boot是Spring公司的一个顶级项目,和Spring Framework是一个级别的。Spring Boot实际上是利用Spr
2021-10-28 23:48:32
906
原创 jQuere学习笔记
文章目录jQuery为什么使用jQueryjQuery使用导入JQuery文件jQuery页面加载函数jQuery页面加载函数和javascript页面加载函数区别jQuery选择器$()的作用选择器的使用基本选择器标签选择器ID选择器类选择器$("*")并集选择器后代选择器父子选择器prev+nextprev~siblings测试文本属性选择器[attribute][attribute1] [attribute2][attribute=value][attribute!=value][attribute^
2021-06-24 00:14:17
1176
原创 jedis获取redis中二进制图片转Base64
文章目录jedis获取redis里面的图片 转成Base64jedis存对象jedis获取redis里面的图片 转成Base64获取Base64字符转Base64工具类jedis获取redis里面的图片 转成Base64jedis存对象/** * 序列化 * * @param object * @return */ public static byte[] serialize(Object object) { ObjectOutputStream oos = null; Byte
2021-06-01 21:49:30
347
原创 Shiro学习笔记
文章目录思维导图Shiro简介核心功能架构Shiro 的INI文件配置Shiro注解SpringBoot 整合 shiroMD5 加密技术Shiro 整合 Thymeleaf 中的属性Shiro过滤器规则认证(登录实现)编写控制类自定义Realm,对用户名,密码验证编写配置类RememberMe(记住我)修改登录控制单元方法配置类编写记住我退出登录实现编写退出控制单元配置类配置退出路径授权编写自定义Realm,处理授权使用授权注解编写角色控制单元使用授权注解编写权限控制单元配置shiro 跟 thymele
2021-05-11 22:27:05
989
5
原创 带你了解Eureka注册中心
文章目录知识预热Eureka 简介Eureka角色Eureka ServiceEureka Client心跳Eureka集群实现原理自我保护机制Eureka注解Eurkea配置文件详细Eureka Server服务管理平台页面详解Eureka依赖知识预热Spring Cloud 项目 必须是基于SpringBoot项目 Spring Cloud 项目对应SpringBoot版本,SpringBoot版本不能随便写 SpringCloud版本对应SpringBoot版本参考Spring官网:https
2021-01-15 16:04:04
361
原创 RabbitMQ基础知识
RabbutMQ什么是MQ?MQ (Message Queuing) ,消息队列。AMQP什么是AMQP?AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是进程之间传递异步消息的网络协议。AMQP工作过程发布者(Publisher)发布消息(Message),经过交换机(Exchange),交换机根据路由规则将收到消息分发给交换机绑定的队列(Queue),最后AMQP代理会将消息投递给订阅了此队列的消费者,或者消费者按照需求自行获取。Publi
2020-12-31 21:27:31
239
原创 我的Docker学习
Docker官方文档Registry:仓库,存放镜像Images:Docker 镜像Containers:Docker容器 ,可运行镜像实例Docker daemon:Docker守护进程,跟客户端建立通信Docker_Host:Docker主机,运行Docker的宿主机Client:客户端对Docker进行管理卸载Dockersudo yum remove docker \ docker-client \ docke
2020-12-31 21:23:58
161
原创 SpringSecurity安全框架学习笔记
Spring SecuritySpring Security简介Spring Security 是一种高度自定义的安全框架,利用(基于)SpringIOC/DI和AOP功能,为系统提供了声明式安全访问控制功能,减少了为系统安全而编写大量重复代码的工作。核心功能:认证和授权Spring Security 认证流程Spring Security 项目搭建导入依赖Spring Security已经被Spring boot进行集成,使用时直接引入启动器即可<dependency>
2020-12-31 21:16:53
973
原创 超详细Maven教程
MavenMaven是一个项目资源管理工具Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶(phase)中插件(plugin)目标(goal)的逻辑Maven优点:简化项目依赖jar包管理,防止冲突便于项目升级,项目依赖jar包升级有助于项目开发,一个模块开发好后,发布
2020-12-31 21:13:43
1302
2
原创 RPC远程调用学习
文章目录RPC 远程过程调用CAP定理(重点)什么是单体架构?什么是分布式架构?什么是微服务架构?RPC软件模型架构描述RPC简介什么是RFC?RPC协议作用及原理RPC和HTTP区别实现效率连接方式性能注册中心负载均衡HttpClient实现RPC什么是HttpClient?RMI实现RPC什么是RMI?执行流程演示DemoAPI详细1.1 Remote1.2 RemoteException1.3 UnicastRemoteObject1.4 LocateRegistry1.5 NamingR
2020-12-31 21:09:56
745
1
原创 面试官问你什么是Redis缓存雪崩、缓存穿透和缓存击穿?该如何处理?
面试官问你什么Redis缓存雪崩、缓存穿透和缓存击穿?该如何处理?缓存雪崩缓存雪崩,指面对用户突发的大量请求时,出现以下情况:Redis缓存服务器无法处理这么多请求,服务器压力过大宕机Redis缓存服务器大量缓存同一时间内过期导致大量用户请求,都去访问数据库,数据库面对这么多请求必然扛不住,然后就挂了解决方案:Redis 高可用,搭建Redis主从,哨兵,Redis集群。避免全部崩溃Redis持久化,崩溃后重启,从磁盘中加载数据,恢复数据使用hystrix 限流&降级 ,保
2020-12-30 15:13:21
309
原创 学习Elasticsearch
文章目录Elasticsearch简介Elasticsearch概念cluster(集群)Index(索引)shards(碎片)replicas(副本)Document(文档)Type(类型)Elasticsearch原理Elasticsearch配合Kibana操作操作命令查看健康状态查看所有索引查看所有分片创建索引创建索引时指定分片修改索引删除索引查询数据添加数据批量添加数据修改数据分页查询排序条件查询高亮显示Elasticsearch简介Elasticsearch是一个基于Lucene的搜索服务器
2020-12-30 12:03:36
112
原创 Spring Cache常用注解详解
Spring Cache常用注解详解@EnableCaching开启Spring Cache框架支持。解析对应的注解,实现缓存读写访问@CacheConfig缓存配置,可以配置当前类型中所用缓存注解的通用信息示例:配置当类前所有缓存注解的缓存前缀@CacheConfig(cacheNames = "cache:prefix")@Cacheable表示要对方法返回值进行缓存注解属性:cacheNames : 缓存key前缀名字key :缓存key后缀condition : Spri
2020-12-30 11:23:43
1681
原创 一篇文章带你熟知Dubbo
文章目录Dubbo什么Dubbo框架?发展史架构原理执行流程Dubbo支持协议Dubbo支持注册中心负载均衡RandomRoundRobin(推荐)LeastActiveConsistentHash负载均衡的配置常用注解@EnableDubbo@DubboService@DubboReferenceDubbo文件配置Dubbo什么Dubbo框架?Apache Dubbo 是一个高可用的,基于Java的开源RPC框架。Dubbo框架不仅仅是具备RPC访问功能,还包含服务治理功能(其他方式管理服务信息)
2020-12-29 12:12:49
433
原创 Spring Data Elasticsearch简单入门
文章目录Spring Data Elasticsearch 简介Spring Data Elasticsearch常用注解@Document@Id@Field代码示例Spring Data Elasticsearch配置文件Spring Data Elasticsearch访问示例创建索引删除索引添加数据修改数据删除数据查询数据分页和排序高亮数据Spring Data Elasticsearch依赖Spring Data Elasticsearch 简介SpringData项目下的子项目 用于访问Ela
2020-12-28 12:11:56
739
原创 如何用java实现每天给对象发情话
文章目录一、引言二、搭建项目二、编写配置四、编写SpringBoot启动类五、自动生成发送内容六、编写定时任务七、打包运行八、总结一、引言最近看到一篇用js代码实现表白的文章,深有感触。然后发现自己也可以用java代码实现,然后就开始写代码了,发现还挺有意思的,话不多说开搞实现思路:使用HttpClient远程获取彩虹屁生成器网站中的内容 网站:https://chp.shadiao.app/java Mail 实现发送邮件SpringBoot 整合Scheduled 实现定时发
2020-12-19 20:44:08
9686
36
原创 Spring Date Redis ,Redis数据库读写很方便的哟
文章目录知识预热(了解即可)Jedis 简介Jedis依赖Jedis使用Spring Data Redis 简介Spring Data Redis序列化器==JdkSerializationRedisSerializer====StringRedisSerializer====GenericJackson2JsonRedisSerializer==Jackson2JsonRedisSerializerGenericToStringSerializerOxmSerializer使用RedisTemplate类
2020-12-12 19:17:00
676
原创 一篇文章带你了解HTTP
文章目录HTTP协议简介HTTP工作原理HTTP协议特点HTTP协议版本HTTP 1.0HTTP 1.1HTTP 2.0URI、URL、URNHTTP消息结构HTTP Request (请求信息)Request Line(请求行)Request Headers(请求头)Request body(请求体)HTTP Response (响应信息)Response LineResponse HeadersResponse body(响应体)HTTP状态码(HTTP Status Code)HTTP状态码分类HT
2020-12-12 18:43:20
287
原创 我的SpringBoot学习
文章目录思维导图Spring Boot启动器作用Spring Boot特征Spring Boot核心Spring Boot版本介绍SpringBoot原理Spring Boot配置文件有几种文件方式配置?.properties文件配置方式.yml文件配置方式配置文件存放位置配置文件存放执行顺序配置文件格式加载顺序bootstrap配置文件bootstrap配置文件特征bootstrap与 application 的应用场景FreeMarker 视图技术FreeMarker优势Thymeleaf 视图技术Sp
2020-11-21 16:46:36
424
原创 简单又好上手的Thymeleaf
文章目录简介Thymeleaf常用语法th:textth:valueth:ifth:eachth:herfth:onclick字符串处理日期处理域对象简介 Thymeleaf是一个现代服务器端 Java 模板引擎,用于 Web 和独立环境。Thymeleaf 的主要目标是将优雅的自然模板引入您的开发工作流 – HTML,它可以在浏览器中正确显示,也可以作为静态原型工作,从而在开发团队中实现更强的协作。借助 Spring Framework 的模块、与您喜爱的工具的大量集成以及插入您自己的功能的能力
2020-11-21 16:32:27
664
原创 FreeMarker简单入门,这篇就够了
文章目录FreeMarker简介FreeMarker优势FreeMarker入门项目结构新建启动类新建控制类FreeMarker文件启动测试FreeMarker常用语法if指令list指令遍历Map运算符空值处理内建函数 时间处理FreeMarker简介FreeMarker是免费的,基于Apache许可证2.0版本发布基于模板 + 要改变的数据,并用来输出文本(HTML网页、电子邮件、配置文件、源代码等)Freemarker 模板语言是FTL文件编写的(Freemarker 文件后缀 .ftl)
2020-11-21 16:00:05
1033
原创 我的SpringMVC学习
文章目录spring MVCspring MVC解决问题MVC 模型SpringMVC执行原理SpringMVC 注解@Controller@RequestMapping@PostMapping@GetMapping@RequestParam@PathVariable@ResponseBody@RestController@RequestBody@RequestHeader@CookieValue@JsonFormat@CrossOrigin@CrossOrigin注解的属性:SpringMVC 转发和重定
2020-11-16 14:11:43
547
原创 我的JDBC 学习之路
JDBC什么是JDBCJDBC(Java DataBase Connectivity, Java数据库连接) ,是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成连接数据库mysql8 之前连接数据库驱动名:com.mysql.jdbc.Driverurl连接:jdbc:mysql://127.0.0.1:3306/mydbpublic class test{ public static void main(String
2020-11-04 17:28:00
155
1
原创 看懂LO4J日志配置文件
log4j 日志记录log4j日志的级别 FATAL:指出现非常严重的错误事件,这些错误可能导致应用程序异常中止 ERROR:指虽有错误,但仍允许应用程序继续运行 WARN:指运行环境潜藏着危害 INFO:指报告信息,这些信息在粗粒度级别上突出显示应用程序的进程 DEBUG:指细粒度信息事件,对于应用程序的调试是最有用的理解日志格式化字符的含义%p:输出日志信息的优先级,即DEBUG,INFO,WARN,ERROR,FATAL。%d:输出日志时间点的日期或时间,
2020-11-04 17:23:40
152
原创 一篇文章搞懂Mybatis SQL动态处理
Mybatis SQL动态处理Where 、ifwhere 标签:相当于sql语法中的whereif 判断标签test 判断条件 ,满足条件,执行if标签中sql语句<select id="findEmpByCondition" resultType="emp"> select * from emp <where> <if test="empno != null"> and empno=
2020-11-03 20:24:03
2518
9
原创 SpringBoot整合Mybatis+SpringMVC 项目,进行简单的CRUD操作
SpringBoot整合Mybatis 项目环境搭建<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 ht
2020-10-29 00:47:48
224
原创 我的MyBatis学习之路
MyBatisMyBatis入门用来替代JDBC来访问数据库MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录MyBatis 是支持普通 SQL查询,存储过程]和高级映射的优秀持久层框架。My
2020-10-10 17:12:07
2063
2
原创 我的spring学习之路
学前知识预热框架的概念不同项目都会使用的代码的封装,软件半成品,别人封装好的功能代码框架的使用 ① 将jar包导入到自己的项目中 ② 查阅API文档,调用jar包中的资源完成功能开发 ③ 配置框架的配置文件(框架代码运行需要的常量数据)数据和代码的解耦,使用者可以通过配置问价来自定义数据。Spring 框架Spring 框架解决问题解决问题:Spring 解决了业务层和其他层之间的耦合(高内聚、低内核) 代码层之间耦合性比较高 项目代码后期扩展性比较低.
2020-10-10 17:09:25
390
2
原创 我的MySQL学习
连接MySQL启动MySQL服务 net start (已经启动的服务) net start mysql连接MySQL、 mysql -h127.0.0.1 -uroot -p mysql -uroot -p退出MySQL exit quit关闭MySQL服务 net stop mysql数据库相关操作创建数据库 create database stumgr;显示所有数据库 show databases;切换数据库 use stumgr;显
2020-10-10 17:03:48
1385
原创 深入学习JSP
JSP简简介JSP,全称JavaServer Pages ,是由Sun公司主导创建的一种动态网页技术标准。动态生成网页数据,不是动态效果的网页JSP在HTML中嵌入Java代码JSP是服务端技术由应用服务器来编译和执行嵌入的Java代码,然后生成整个页面信息返回给客户端JSP运行原理 当浏览器第一次发送请求一个JSP资源是,JSP加载引擎会将一个.jsp文件转换成一个Servlet的.java文件将HTML代码编入Servlet中,然后运行这个Servlet,将数据响应给浏览器。JS
2020-10-10 16:58:48
237
原创 分析多线程-ThreadLocal
ThreadLocal早在JDK 1.2 的版本中就提供 java.lang.ThreadLocal .ThreadLocal为解决多个线程并发问题提供了一种新的思路。是一个工具类,可以很简洁的编写出多线程ThreadLocal 很容易我们理解为本地线程,ThreadLocal并不是一个线程,而是线程中的一个局部变量。ThreadLocal 为每个线程提供独立的变量副本,每个线程都可以改变自己的副本,不会影响其它线程多多对应的副本ThreadLocal使用场景 多个线程共享同一个数据,会引
2020-05-24 21:57:04
605
原创 我的servlet学习之路
Servlet简介Servlet全称 Server Applet ,服务端小应用Servlet运行在支持java的应用服务器中,主要用作Web服务器,处理客户端(浏览器)的请求,并响应给客服端,一种B/S模型Servlet项目部署结构package com.test.servlet;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.H
2020-05-21 23:32:15
878
原创 一篇文章java反射学习
反射反射使Java代码能够发现有关已加载类的字段、方法和构造函数的信息,并在安全限制范围内使用反射的字段、方法和构造函数对其底层副本进行操作。每个类都有一个class对象,包含了与类有关的信息。当编译一个新类是,会产生一个同名的.class文件,该文件内保存着Class对象。类加载相当于Classs对象的加载,类在第一次使用时才能动态加载到JVM中。文件名说 明getFields()获得类的public类型的属性。getDeclaredFields()获得类的所有属
2020-05-21 21:19:54
583
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人