自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

原创 Lambda 表达式的使用

Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。Lambda表达式的本质:作为函数式接口的实例,先来看一下什么是函数式接口:只包含一个抽象方法的接口,称为函数式接口。我们可以在一个接口上使用 @FunctionalInterface 注解,这样做可以检查它是否是一个函数式接口。同时 javadoc 也会包含一条声明,说明这个接口是一个函数

2021-05-20 13:15:17 251

原创 谷粒学院-Nacos配置中心

新建配置点击 + 号新建配置文件Data ID 的完整规则格式如下:${prefix}-${spring.profiles.active}.${file-extension}prefix 默认为所属工程配置spring.application.name 的值(即:nacos-provider),也可以通过配置项 spring.cloud.nacos.config.prefix来配置。spring.profiles.active=dev 即为当前环境对应的 profile。 注意:当 s

2021-05-19 17:41:05 221

原创 谷粒学院-后台权限管理

权限管理表结构和关系怎么表示多对多的关系?一对多,在多的那边来个字段作为外键指向一的主键,多对多就需要第三张表作为中间表,在中间表中表示它们的关系如上图所示1. 菜单管理1.1 获取菜单先找到递归查询的入口,现在入口就是顶级菜单,根据菜单ID查询出菜单集合permissionList根据pid=0遍历得到顶级菜单,然后根据顶级菜单往下查询最终封装好返回 //获取全部菜单 @Override public List<Permission> queryAllMe

2021-05-19 16:24:27 1038 1

转载 谷粒学院-SpringCloud Gateway网关

网关概念API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题:(1)客户端会多次请求不同的微服务,增加了客户端的复杂性。(2)存在跨域请求,在一定场景下处理相对复杂。(3)认证复杂,每个服务都需要独立认证。(4)难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通信,那么重构将会很难实施。

2021-05-18 17:35:55 338

原创 ThreadLocal 的理解

介绍ThreadLocal类用来提供线程内部的局部变量。这种变是在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量,ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文。我们可以得知ThreadLocal的作用是:提供线程内的局部变量,不同的线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂度。总结:1.线程并发:在多线程并发的场景下2.传递数据

2021-05-10 21:15:15 151

原创 redis-持久化操作

RDB官网介绍:http://www.redis.io是什么在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里优势适合大规模的数据恢复对数据完整性和一致性要求不高更适合使用节省磁盘空间恢复速度快劣势Fork的时候,内存中的数据被克隆了一份,大致2倍的膨胀性需要考虑虽然Redis在fork时使用了写时拷贝技术,但是如果数据庞大时还是比较消耗性能。在备份周期在一定间隔时间做一次备份,所以如果Redis意外d

2021-05-05 10:59:32 125

原创 redis-缓存穿透、击穿、雪崩问题

缓存穿透问题分析key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。Redis中大面积出现未命中出现非正常URL访问解决方案一个一定不存在缓存及查询不到的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。对空值缓存:

2021-05-05 07:54:08 99

原创 redis-主从复制

是什么主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主能干嘛读写分离,性能扩展容灾快速恢复搭建一主两从1.创建文件夹在根目录创建文件夹 myredis,把 redis.conf 复制过来[root@itcast01 myredis]# cp /usr/local/bin/bconfig/redis.conf /myredis/redis.conf2.新建配置文件新建redis6379.conf,填

2021-05-04 16:48:27 139

原创 谷粒学院-整合ECharts

统计分析模块需求:统计在线教育每一天有多少注册人数,把统计出来的注册人数,使用图表显示出来准备工作代码生成、配置文件省略~~数据库表: statistics_daily,存储统计的数据CREATE TABLE `statistics_daily` ( `id` char(19) NOT NULL COMMENT '主键', `date_calculated` varchar(20) NOT NULL COMMENT '统计日期', `register_num` int(11) NOT

2021-05-02 08:34:31 412

原创 谷粒学院-整合Redis

1. Redis介绍Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把

2021-05-01 09:23:36 556 1

原创 谷粒学院-EasyExcel 的应用

EasyExcel简介1、数据导入:减轻录入工作量2、数据导出:统计信息归档3、数据传输:异构系统之间数据传输EasyExcel 特点:Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc。EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。EasyExcel能大大减少占用内存的主要原因是在解析Ex

2021-04-30 21:43:31 481 1

原创 谷粒学院-单点登录

单点登录实现方式 和 JWT工具类在 common 公共模块引入 JWT 依赖和工具类,工具类定义如下几个方法传入用户id和昵称生成token字符串的方法,token中包含用户信息判断token是否存在与有效,不符合规则返回false根据token字符串获取会员id,有了会员id就可以用来查询用户的相关信息了,通过HttpServletRequest 得到定义如下两个常量过期时间秘钥,用它来进行加密,用随便生成的字符串就可以,在公司中有自己的规则阿里云短信服务建立 servi

2021-04-30 16:55:51 568

原创 谷粒学院-微信扫码登录

1. 微信扫码登录1.1 OAuth2 是什么?

2021-04-30 16:50:30 971 1

原创 Spring IOC 理解总结

Spring 有两个核心部分:IOC 和 AopIOC:控制反转,把创建对象过程交给 Spring 进行管理Aop:面向切面,不修改源代码进行功能增强一句话概括:Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。1. IOC 概念和原理1.1 入门案例创建普通类,在这个类创建普通方法public class User { public void add() { System.out.println("add......");

2021-04-30 14:48:51 110

原创 阿里云OSS、数据校验和表的分析

品牌表新增菜单使用逆向生成的 vue 页面复制到 product 文件夹下,重启 renren-fast-vue 项目,但是这里只有查询,没有新增和删除,是因为权限的问题Ctrl + Shift + F 全局搜索 isAuth是在 index.js 中定义是否有权限的,注释掉直接返回 true,一直都有权限/** * 是否有权限 * @param {*} key *//** * 是否有权限 * @param {*} key */export function isAut

2021-04-25 06:43:38 873

原创 三级分类及配置网关(后台管理)

三级分类分类表在 CategoryController 中编写查询分类方法 /** * 查出所有分类以及子分类,以树形结构组装起来 */ @RequestMapping("/list/tree") //@RequiresPermissions("product:category:list") public R list(){ List<CategoryEntity> entities = categoryService.l

2021-04-22 14:09:47 657

原创 【菜单分类】增删改查(后台管理)

参照 ElementUI 官网:https://element.eleme.cn/#/zh-CN/component/tree删除菜单调整前端页面样式和功能<!-- --><template> <el-tree :data="menus" :props="defaultProps" :expand-on-click-node="false" show-checkbox node-key="catId" >

2021-04-22 14:07:52 795

原创 注册中心、配置中心、网关搭建

测试注册中心common 模块引入依赖 <dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</art.

2021-04-20 18:15:00 1645

原创 项目、数据库初始化搭建

码云创建好仓库,IDEA 中导入仓库作为开发环境项目结构初始化创建 gulimall 的商品服务模块,使用 springboot 初始化向导创建后项目结构图父工程 pom 文件<?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"

2021-04-20 12:55:36 107

原创 Docker 安装 MySQL 和 Redis

Docker 是什么?虚拟化容器技术。Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行环境,容器之间互相隔离。Docker 镜像仓库:https://hub.docker.com/参考文档:https://docs.docker.com/engine/install/centos/卸载旧版本 dockersudo yum remove docker \ docker-client \ docker-c

2021-04-18 19:03:10 81

原创 Vagrant 安装配置 Centos 虚拟机 IP 地址

由于在端口映射不方便,每次在 Virtualbox 中安装软件都要配置端口映射,所以我们配置 VirtualBox 的 IP 地址cmd 命令行输入 ipconfig 查看 VirtualBox ip地址在 Vagrantfile 中配置,第三个字段要改成和 ipconfig 中查看的一样都是 56然后重启虚拟机再次连接,地址已经改变测试主机和虚拟机是否可以 ping 通至此 IP 地址就设置好了...

2021-04-18 16:35:25 674 4

原创 vagrant 安装 centos7 问题

遇到的问题:用 vagrant 安装 centos7 报错:C:/HashiCorp/Vagrant/embedded/gems/2.2.5/gems/vagrant-2.2.5/lib/vagrant/util/io.rb:32:in `encode’: “\x83\xBC” from Windows-31J to UTF-8 (Encoding::UndefinedConversionError)类似这种什么 UTF-8 编码问题百度查了查应该是 我的 C 盘用户的名字是中文,然后在 Vagran

2021-04-18 16:14:49 366

原创 ReentrantLock 原理

非公平锁实现原理ReentrantLock 默认是非公平锁 public ReentrantLock() { sync = new NonfairSync(); }没有竞争时,就一个线程,加锁成功 static final class NonfairSync extends Sync { private static final long serialVersionUID = 7316153563782823691L; /

2021-04-16 20:12:33 80

原创 Spring 事务

创建数据库表,实现转账操作spring 配置文件<!-- 组件扫描 --> <context:component-scan base-package="com.atguigu"></context:component-scan> <!-- 数据库连接池 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" des

2021-04-14 07:29:44 70

原创 SpringAOP 的学习

1. 有接口情况,使用 JDK 动态代理(1)创建接口,定义方法public interface UserDao { public int add(int a,int b); public String update(String id);}(2)创建接口实现类,实现方法public class UserDaoImpl implements UserDao { @Override public int add(int a, int b) { Sys

2021-04-13 15:34:41 71

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除