自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis 关于缓存穿透、缓存击穿、缓存雪崩及解决方案

缓存穿透缓存穿透,是指在很短的时间内,大量的请求,去查询Redis服务器都查不到,也就是缓存没有命中,于是向数据持久层发起查询,发现也没有,本次查询失败。大量请求直接访问mysql服务器这样会导致缓存直接穿透,MySQL宕机。解决方案1.布隆过滤器布隆过滤器是一个中数据结构,对所有可能查询的参数,以hash形式存储,在控制层先进行校验,不符合则丢弃,从而避免对底层存储系统的查询压力。对于布隆过滤器,是加在Redis和mysql服务器之间的,将mysql中的数据提前存到布隆过滤器中。布

2020-11-14 20:26:04 245

原创 Redis Linux环境下的安装和远程访问

Redis Linux 环境安装步骤1、解压redis压缩包到指定文件tar -zxvf redis... -C /文件路径# 步骤2、进入解压目录cd ...# 3.安装gc-cc++环境yum install -y gcc-c++# 4.编译make# 编译安装make install# 6.redis 的默认安装路径为 /usr/local/bin# 进入安装目录,可以看到一些redis的一些文件# 7.创建一个文件夹,将redis的配置文件拷贝到这个文件夹下mkdir

2020-11-14 20:21:38 197

原创 Shiro-MD5加密

使用shiro的MD5Hash对密码进行加盐加密及验证步骤1、在添加用户的时候,将密码加密之后再保存这里是使用的shiro框架中自带的MD5hash加密算法 //保存用户 @Override public void saveUser(User user) { String uuid= UUID.randomUUID().toString(); user.setUserId(uuid); //将用户的密码进行加盐加密 if

2020-11-10 14:53:54 932 1

原创 分布式项目之 Shiro 整合搭建

Shiro 搭建导入Shiro 的maven依赖在web.xml中配置过滤器这个过滤器会创建一个过滤器工厂,用来创建多个不同用途的过滤器通过filter-name 和spring中的bean 的id 的值来找到这个过滤器工厂 <!--shiro 过滤器配置--> <filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframe

2020-11-09 20:43:27 831

原创 Linux 环境下 ZooKeeper 的安装和启动

使用zookeeper 作为分布式的注册中心安装步骤1、下载zookeeper的 .ar.gz 文件官网:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz步骤2、在Linux环境下解压安装包到指定位置tar -zxvf 安装包名 -C /usr/local/zookeeper/为了方便,这里更改一下解压后的文件名为zookeeper 命令:mv o

2020-11-01 14:18:24 1521

原创 学习 Dubbo 一些必知必会的知识 三

Dubbo简介什么是Dubbo高性能Java RPC框架Apache Dubbo 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。官网:http://dubbo.apache.org/zh-cn/Dubbo 的一些基本概念节点角色说明Provider暴露服务的服务提供方Consumer调用远程服务的服务消费方Registry服务注册与发现的注册中心Mon

2020-10-31 21:06:12 1401

原创 学习 Dubbo 一些必知必会的知识 二

RPC什么是RPC ?RPC (remote procedure call) 远程过程调用是一种进程间通信方式,他是一种技术的思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。RPC基本原理RPC中的两个核心模块通信序列化如何让两台机器上的进程能够更加稳定和快速的建立连接交换数据,是RPC框架最需要解决和考虑的问题。而数据在网络中传

2020-10-31 20:43:45 1409

原创 学习 Dubbo 一些必知必会的知识 一

Dubbo1、分布式基础理论什么是分布式系统?分布式系统是一些或一群独立计算的计算机集合。这些计算机组合起来给用户提供服务,再用户看来,就像是一个独立的系统。网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。2、架构的发展演变单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。优点:将所有的功能都部署到一

2020-10-31 20:31:05 1550

原创 使用PowerDesigner 生成数据库sql文件

创建物理数据模型步骤1、下载并安装PowerDesigner 软件这一步网上有很多的教程,这里就不详写了步骤2、创建一个物理数据模型步骤3、创建表步骤4、编辑表步骤5、使用软件自动生成sql完成sql代码/*==============================================================*//* DBMS name: MySQL 5.0

2020-10-24 15:03:34 1963 3

原创 分布式项目之部署UI

部署AdminLTE

2020-10-24 14:17:57 1913

原创 分布式项目搭建之整合SpringMVC

SpringMVC的整合1、配置web.xml 加载spring配置文件,以及配置前端控制器DispatcherServlet由于service模块和dao模块都有spring配置文件,所以在加载spring配置文件的时候,需要加载整个父工程的spring配置文件classpath*:applicationContext-*.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org

2020-10-23 19:56:19 2072

原创 分布式项目搭建之业务模块的整合

整合service子模块1、配置事务和aop创建一个applicationContext-service.xml文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="htt

2020-10-23 19:43:21 1990

原创 分布式项目搭建之spring整合mybatis

Spring整合mybatis1、在spring的核心配置文件中配置数据源在resources/spring文件路径下创建applicationContext-dao.xml文件将数据库的配置信息写道db.properties文件中配置阿里巴巴的druid数据源 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"

2020-10-23 17:45:38 1916

原创 分布式项目工程搭建

export_saas 项目搭建创建工程以及子模块工程1、新建一个maven的project,创建完成后将src文件和不需要的文件删除,再创建子模块只有创建web的 模块才需要勾选maven提供的webapp的模板每创建一个子模块都需要maven clean install2、在父工程的pom.xml文件中导入需要的依赖子工程可以共享父工程的jar包依赖<!-- 定义依赖的版本号 --> <properties> <projec

2020-10-23 17:25:44 2398

原创 SpringMVC 全局日期转换器的使用

SpringMVC 实现日期转换器springmvc 默认是不支持字符串直接转换成Date类型的,需要通过其他实现日期的转换两种方式:1、使用注解2、实现Converter接口使用@Component 注解 @Componentpublic class StringToDateConvert implements Converter<String, Date> { private SimpleDateFormat sdf = new SimpleDateF

2020-10-23 14:23:45 2094 3

原创 pageHelper分页插件的使用

pageHelper分页插件的使用针对mybatis 提供的分页插件,能够简化分页查询使用方式1,通过mybatis核心配置文件配置1、pom.xml文件导入pageHelper依赖 <!--引入pageHelper分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</arti

2020-10-20 16:56:01 2187 3

原创 Ajax 提交json格式数据给后台

Ajax 提交json格式数据在实际的开发当中,尤其是在前后端分离的项目中,传输数据都是以json格式进行传输的,所以对于json格式数据的情求和响应的学习十分重要。1、前端提交json格式数据前端一般是通过 Ajax 进行表单提交设置ajax的contentType属性contentType:application/jsondata属性提交的数据就需要是json格式的 data:'{"did":"","dname":"'+dname+'"}'具体实现代码:<script typ

2020-10-20 11:37:09 4432 1

原创 Spring-AOP

Spring-AOPAOP 面向切面编程,是spring中最核心的技术之一你可以将业务模块中横向上公共的部分抽取出来,利用spring-aop在你需要的时候为你自动注入,而不需要修改你的源代码,开发中就可以更加专注于业务的开发。动态代理和静态代理静态代理:静态代理需要你手动实现代理类对象。通过和被代理类实现相同的接口的方式,在代理类中调用被代理类的方法,在代理类中编写需要增强的代码。动态代理:由机器自动的为你生成代理类对象。你只需要定义被代理类对象,被代理类对象实现的接口。JDK 动态代理

2020-10-17 14:21:31 1860

原创 Spring 动态代理

Spring 动态代理AOP (Aspect Oriented Programming) 面向切面编程!代理类:运行时产生,运行结束时销毁!在不改变原方法代码的基础上对该方法进行增强动态代理:spring 提供两种方式实现动态代理​ 1)、JDK动态代理​ 2)、cglib 动态代理JDK 动态代理创建代理类,实例化该类的对象 使用Proxy类的newProxyInstance()方法被代理类必须实现接口,可以是一个也可以是多个,并且代理类只能增强接口中定义的方法传入代理类

2020-10-09 19:52:47 1894

原创 Spring 使用注解实现依赖注入

Spring 使用注解实现依赖注入依赖注入:本质就是对类中的变量进行赋值操作!spring 使用注解标注类,spring容器通过包扫描注解,将这些标注了spring注解的类管理起来。1、@service注解:​ 标注在一个service层的业务类上,告诉spring容器这是一个service层业务类,spring就会自动创建这个类的实例,在你需要这个对象的地方将它注入。​ 标注了这个注解的类在spring容器中生成的对象的id默认是首字母小写的类名,也可以由自己指定@service("name

2020-10-08 17:35:38 4792 3

原创 Mybatis 一对一与一对多查询

</collection></resultMap><select id="findAllCategory" resultMap="findAllCategoryMap"> select * from category c left join products p on c.cid = p.category_id</select>

2020-09-28 19:45:43 2034

原创 docker 解决 mysql 容器的时区(与东八区差8小时)问题

docker 解决 mysql 容器的时区(与东八区差8小时)问题在使用docker 生成的mysql容器时,在表中有timestamp类型的字段时,我们会发现生成的时间与我们所用的北京时间(东八区)相差8个小时!并且通过mysql工具和更改配置文件的方式无法更改!!经过多次尝试,找到了解决办法!!原因,docker 生成的mysql容器,默认是使用的格林威治天文台时区的时间,与我们所用时区(东八区)相差了有八个时区!解决办法:在生成mysql容器的时候使用 ==-e TZ=Asi

2020-09-27 22:17:14 4121

原创 学生身份学习免费使用阿里云服务器教程

学生身份学习免费使用阿里云服务器教程很多厂商的服务器对学生还是比较友好的,价格都比较便宜,大家可以了解一下!!!步骤1、进入阿里云官网,阿里云高校计划https://developer.aliyun.com/adc/student/步骤2、注册,进行实名认证和学生认证(已经认证过需要账号下没有其他实例,有的话需要释放之前的实例)步骤3、根据提示完成测试完成一个远程登录阿里云服务器的实验(远程连接工具推荐使用xshell、putty)完成测试测试是一些基础的计算机基础问

2020-09-26 10:42:00 6245 1

原创 Dockerfile 制作cnetos的镜像

Dockerfile 制作cnetos的镜像dockerfile 的常用命令FROM # 基础镜像,一切构建从这里开始MAINTAINER # 镜像是谁写的,姓名+邮箱RUN # 镜像构建的时候需要运行的命令ADD # 步骤,tomcat镜像,tomcat压缩包,添加内容WORKDIR # 工作目录VOLUME # 需要挂载的目录EXPOSE # 暴露的端口CMD # 指定容器启动的时候要运行的命令

2020-09-25 20:50:42 2210

原创 mybatis 中mapper.xml文件无法<、<=问题

mybatis 中mapper.xml文件无法<、<=问题在mapper.xml文件中使用条件查询时如果有where price < 300这样的语句,在执行时就会报错!报错:### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error cre

2020-09-25 15:32:10 3269

原创 【Mybatis一】 getMapper()方法的使用

【Mybatis一】 getMapper()方法的使用需要理解动态代理和mybatis的一些基础知识!步骤1、定义需要代理的接口//这里以添加方法为例public interface ProductDao { public void addProduct(Products products);}步骤2、在相同的目录下创建与接口对应的mapper.xml文件<!-- 1.namespace 命名空间要与接口的全类路径名一致 2.insert标签的id属性

2020-09-24 20:14:44 5628 1

原创 去除IDEA中xml文件黄色背景

去除IDEA中xml文件黄色背景IDEA 中在编写mybatis 的mapper.xml文件时,里面写sql语句总是会有黄色的背景显示出来,写的sql一多就很不美观,所以这里提供给了一个idea中去除黄色背景的设置。步骤1、打开设置步骤2、Editor -> Inspections的配置页面,去掉SQL中No data sources configured(没有配置数据源) 选项 和 SQL dialect detection(SQL方言检测) 选项,点击 OK步骤3、去掉代

2020-09-24 17:51:22 3588 1

原创 Maven 的安装和使用

Maven 的安装和使用什么是maven?maven 是一个项目管理工具分模块构建工程,提高开发效率对项目的jar包进行统一的管理,可以使用配置文件自动导入maven仓库存放jar包和插件的地方仓库分类:​ 1、中央仓库:存放所有常用的jar的服务器,对外公开,由专业团队维护,地址:http://repo1.maven.org/maven2/​ 2、远程仓库:一般是企业将核心jar包放在自己的服务器上(阿里镜像)​ 3、本地仓库:一个本地文件夹仓库的坐标什么是仓库的坐标?仓

2020-09-22 09:49:08 2423

原创 Docker 部署MySQL 以及同步数据

Docker 部署MySQL 以及同步数据步骤1、通过docker 下载MySQL5.7的镜像docker pull mysql:5.7步骤2、在后台启动MySQL,设置数据卷挂载# 在启动mysql时,需要设置密码需要注意# -p 端口映射# -v 设置挂载目录# -e MYSQL_ROOT_PASSWORD 设置密码docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/

2020-09-21 20:31:14 2516

原创 Docker 数据卷的使用

Docker 数据卷的使用什么是docker 数据卷技术?本质就是一个目录的挂载,将容器内的目录挂在到Linux上的目录,是一种数据共享技术。容器卷技术的目的是为了将容器内的数据同步到Linux主机上,并进行持久化,以避免因为容易的删除二导致数据丢失!同时也方便在Linux上操作容器内的数据,因为数据的的绑定是双向的!数据卷的使用方式:直接使用命令进行挂载 -v# 使用 -v 主机目录:容器内目录 映射一个目录地址docker run -it -v /home/test:/home c

2020-09-19 21:11:02 2477

原创 Docker 部署Tomcat

Docker 部署Tomcat步骤1、下载tomcat镜像# 这里指定下载版本tomcat9.0docker pull tomcat:9.02、查看下载的tomcat镜像docker images3、运行tomcat# 运行时要指定tomcat的版本,否则会默认下载最新的来运行[root@iZ2ze7o0mf9u89jilhgjutZ ~]# docker run -d --name tomcat01 -p 3345:8080 tomcat:9.0[root@iZ2ze7o0mf9u

2020-09-18 20:47:36 2672

原创 Docker 部署Nginx

Docker 部署Nginx步骤1、下载Nginx镜像# 可以通过命令行下载,也可以去dockerhub上下载[root@iZ2ze7o0mf9u89jilhgjutZ ~]# docker pull nginxUsing default tag: latest2、查看下载的Nginx镜像,并且运行# 查看镜像[root@iZ2ze7o0mf9u89jilhgjutZ ~]# docker imagesREPOSITORY TAG IMA

2020-09-18 19:59:30 2666

原创 Jquery 进阶

Jquery 进阶Jquery 的数组遍历原始遍历 for循环遍历var $lis = $("li");for (var i = 0;i < $lis.length;i++) { //write code.... }jquery 对象函数遍历(对象.each)$("div").each(function (index,element) { //write code....});全局函数遍历

2020-09-18 10:01:47 2725

原创 Docker 常用命令

Docker 常用命令帮助命令docker version # 显示docker的版本信息docker info # 显示docker的系统信息,包括镜像和容器数量docker --help # 帮助命令帮助文档:https://docs.docker.com/reference/镜像命令docker images 查看所有本地主机上的镜像[root@iZ2ze7o0mf9u89jilhgjutZ ~]# docker imagesREPOSITORY

2020-09-17 20:50:19 2875

原创 Redis 常用命令

Redis 命令基本命令redis 默认有16个数据库,可以通过select命令来切换数据库2.清除数据库flushdb,这个命令是清除当前数据库,flushall清除所有的数据库Redis 6.x以前是单线程的!但是redis 6.x以后是多线程的,在网络io方面添加了多线程。Redis 是基于内存操作的,cup不是redis性能瓶颈。五大基本数据类型String类型set / get 设置值/获取值set key valueget key判断是否有某个key值

2020-09-17 16:49:42 2785

原创 Jquery 常用方法

Jquery 操作函数DOM操作属性attr() 函数,操作元素的属性,更改属性值 <script> $("#b1").click(function () { $("#content").attr("title","content") }); </script>prop() 函数 <script> $("#b1").click(function () {

2020-09-17 16:37:33 2903

原创 Jquery 使用案例

Jquery 综合案例隔行换色 <script> $(function () { $("tr:gt(1):odd").css("background","green"); $("tr:gt(1):even").css("background","blue"); }) </script>全选全不选<script type="text/javascript"> $(functi

2020-09-17 16:23:36 2802

原创 DBUtil的使用

一、DBUtil介绍DBUtil是什么及作用DBUtil是Apache提供的一个开源的JDBC工具类库,是java编程中数据库操作实用工具,小巧简单。DBUtil封装了对JDBC的操作,简化了JDBC操作,可以让我们少些代码。1.对数据表的读操作可以将结果转换成List、Array、Set等集合。2.对数据表的写操作只需要写SQL语句3.可以使用数据源,使用JNDI,数据库连接池等技术来优化程序性能。二、DBUtil的三个核心对象QueryRunner类QueryRunner中提

2020-09-17 08:45:38 3615

原创 Docker 安装教程

Docker安装Docker安装环境准备1、Linux操作系统,centOS72、xhell远程连接工具3、系统内核3.10以上开始安装docker步骤1:从官网下载Linux系统下的docker,https://www.docker.com/步骤2:按照官网给的提示走,先卸载旧的dockeryum remove docker \ docker-client \ docker-client-late

2020-09-16 16:40:19 2875

原创 Request快速入门!!!

Request快速入门!!!Request简述什么是request?HTTP协议中的request,Servlet中的requestHttp超文本传输协议,用于定义web浏览器与web服务器之间交换数据的过程!默认端口:80Http请求请求行get方式:请求方式/请求地址/请求参数/协议post方式:请求不会将请求参数放到请求行中,而是放到了请求体中请求头请求体(get请求没有请求体)Request-获取请求行两种方式:get,postgetMethod

2020-09-10 17:37:43 3116

空空如也

空空如也

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

TA关注的人

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