自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (四)RabbitMQ的应用问题

RabbitMQ的应用问题消息可靠性保障需求:100%确保消息发送成功消息可靠性保障–消息补偿消息幂等性保障幂等性指一次和多次请求某一个资源,对于资源本身应该具有同样的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。在MQ中指,消费多条相同的消息,得到与消费该消息一次相同的结果。消息幂等性保障–乐观锁机制...

2020-08-10 15:03:17 410

原创 (三)RabbitMQ的高级特性

RabbitMQ的高级特性消息的可靠投递在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。confirm 确认模式return 退回模式rabbitmq 整个消息投递的路径为:producer—>rabbitmq broker—>exchange—>queue—>consumer消息从 producer 到 exchange 则会返回一个 confirmCallba

2020-08-09 22:56:41 564

原创 (二)Spring与SpringBoot对RabbitMQ的整合篇

Spring与SpringBoot对RabbitMQ的整合篇Spring 整合RabbitMQ搭建生产者工程创建maven项目,添加依赖重点是spring-rabbit依赖<?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"

2020-08-09 15:15:24 400

原创 (一)RabbitMQ的基础部分

(一)RabbitMQ的基础部分消息中间件概述什么是消息中间件MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。为什么使用MQ在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。开发中消息队列通常有如下应用场景:1、任务异步处理将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。2、应用程序解耦合MQ相当于一个中

2020-08-07 23:33:58 471

原创 RabbitMQ的安装以及其控制台的一些使用

RabbitMQ的安装以及其控制台的一些使用准备工作安装依赖环境在线安装依赖环境:yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz安装Erlang上传以下几个文件到设置好的目录erlang-18.3-1.el7.centos.x86_64.rpmsocat-1.7.3.2-5.el7

2020-08-07 11:55:55 743

原创 Nginx之负载均衡与反向代理(附加安装)

Nginx之负载均衡与反向代理(附加安装)centos7下的nginx的安装1. 检索是否安装了nginxrpm -af|grep nginx2. 在安装之前要处理下源rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm3. 使用下面命令安装nginxyum -y install nginx4. 启动、关闭nginxsystemctl st

2020-07-30 19:39:03 171

原创 redis的安装(帮助手册)及其一些使用方法

redis的安装(帮助手册)及其一些使用方法安装过程选择你喜欢的路径创建一个文件夹在文件夹下执行如下命令wget http://download.redis.io/releases/redis-5.0.3.tar.gz解压压缩包 tar xzf redis-5.0.3.tar.gz进入到解压后的文件夹中cd redis-5.0.3make一下注: 安装过程可能出现的问题:如果make出现问题提示gcc之类的异常是因为我们的linux上没有安装gccCentOS默

2020-07-29 20:18:23 120

原创 Spring之JdbcTemplate和事务控制

Spring之JdbcTemplate和事务控制JdbcTemplate基本使用(运用Spring的思想)首先将数据库的连接信息抽取到外部配置文件中,和spring的配置文件分离开,有利于后期维护jdbc.propertiesjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/testjdbc.username=rootjdbc.password=root在Spring的配置文件中进行以下配置:&l

2020-07-21 09:04:01 241

原创 Spring整合Junit的详细配置

Spring整合Junit原始Junit测试Spring的问题在测试类中,每个测试方法都有以下两行代码: ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml"); IAccountService is = app.getBean("accountService",IAccountService.class);这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常。所以又不能

2020-07-20 21:52:51 273

原创 Spring的IOC思想

Spring的IOC思想spring的IOC概述:  控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。应用场景分析:  以前我们想要使

2020-07-20 08:53:35 148

原创 Mybatis高级进阶之缓存机制

Mybatis高级进阶之缓存机制缓存机制的应用:mybatis为我们提供了查询缓存,用于减轻数据库压力,提高数据库性能  我们在平常的查询中,如果缓存中有相应的数据,就不用再去从数据库获取,减少了一部分的性能损耗,可以大大的提高系统的性能mybatis的缓存机制有几种?mybatis提供了2种:一级缓存和二级缓存一级缓存(sqlsession级别的缓存)  在操作数据库时,需要构造sqlsession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据  不同的sqlsession

2020-07-19 19:59:24 317

原创 Mybatis高级进阶之懒加载

Mybatis高级进阶之懒加载懒加载什么是懒加载?  通俗的讲就是按需求来进行加载,我们需要什么的时候再去进行什么操作。而且先从单表查询,需要时再从关联表去关联查询,能大大提高数据库性能,因为查询单表要比关联查询多张表速度要快,避免了一些性能损耗。  在mybatis中,resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。两种方式的对比:第一种方式:我们会直接关联查询出所有学

2020-07-19 15:25:39 224

原创 Mybatis中使用注解的形式开发

Mybatis中使用注解的形式开发使用注解方式实现复杂映射开发  实现复杂关系映射之前我们可以在映射文件中通过配置resultMap来实现,使用注解开发后,我们可以使用@Results注解,@Result注解,@One注解,@Many注解组合完成复杂关系的配置使用注解模式开发记得在mybatis的核心配置文件中配置加载映射关系 <!--加载映射关系--> <mappers> <!--指定接口所在的包--> <

2020-07-19 09:47:01 1318

原创 mybatis中核心配置文件和映射文件的一些知识点

mybatis中核心配置文件和映射文件的一些知识点对mybatis中映射文件的概述(一般命名为xxxMapper.xml)映射文件中的一些注意事项:• 在映射文件中使用parameterType属性指定要插入的数据类型•Sql语句中使用#{实体属性名}方式引用实体中的属性值•增、删、改操作涉及数据库数据变化,所以要使用sqlSession对象显示的提交事务,即sqlSession.commit()MyBatis核心配置文件概述(一般命名为SqlMapConfig.xml)配置文件中常用配置的

2020-07-18 21:49:46 763

原创 SpringMVC之拦截器的使用方法

springmvc之拦截器拦截器的概述及其作用:Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(InterceptorChain)。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是AOP思想的具体实现。关于interceptor和filter的区别(面试可能会问):实现自定义拦截器的开发步骤:①创建拦截器类实现HandlerInter

2020-07-17 22:44:43 218

原创 SpringMVC中自定义类型转换器的使用

SpringMVC之自定义类型转换器应用场景:其中的一种应用分析:  比如我们在接收前端传来的日期的时候是字符串类型的,但实际上我们需要的是一个日期(Date)类型的数据去封装到相应的实体类中。此时我们应该去想有没有一种一劳永逸的东西可以以后在碰到此类情况的时候自动进行相应的类型转换,此时就应该轮到自定义类型转换器的出场了自定义类型转换器的开发步骤:1. 定义根据需求所需要的转换器实现Converter接口我们注意到在实现接口的时候有两个泛型第一个泛型: 要被转换的类型第二个类型: 要转成的

2020-07-16 22:08:42 238

原创 Spring的AOP思想

Spring之AOP什么是AOP?  AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。目的:  利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。作用及其优势**作用:**在程序运行期间,在不修改源码的情况下对方法进行功能增强**优势:**减少重复代码,提高开发效率,并且便于维护AOP 的底层实现  A

2020-07-13 23:17:57 158

原创 mybatis之分页助手的使用

mybatis之分页助手的使用概述:  MyBatis可以使用第三方的插件来对功能进行扩展,分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据注意版本的问题:  pagehelper的版本问题,版本为5.0之后的插件使用的接口为:com.github.pagehelper.PageInterceptor  版本为4…0.0之前的版本采用的接口为:com.github.pagehelper.PageHelper1.1. 开发步骤1.1.1.

2020-07-09 23:30:27 415

原创 mybatis中动态sql的使用

mybatis之动态sql1.1. foeach标签例:原始的sql语句: select * from emp IN (1001,1003,1006,1009)分析:此时括号中的查询条件为多个数值,此时我们应该想到用list集合去装载该多个数值,list中的数值我们通常都要用遍历的方式获取其中的值。此时我们就需要在xml(当前的映射文件)中使用到foeach标签。foeach标签所包含的属性:collection: 是一个固定的,表示遍历的开始item: 为所需要遍历的对象起一个别名op

2020-07-09 21:00:21 150

原创 数据结构篇之队列

概述队列是一个有序列表, 可以用数组或是链表来实现。遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出。(以下案例的front表示队列首位置、rear表示队列尾位置、maxSize表示队列的大小、数组arr用来模拟队列)数组模拟单向队列队列本身是有序列表,使用数组的结构来存储队列的数据时,maxSize 是该队列的最大容量。因为队列的输出、输入分别时由前后位置处理...

2020-05-08 17:07:11 256

原创 数据结构篇之稀疏数组

原始的二维数组转稀疏数组的思路遍历原始的二维数组,得到有效数据的个数sum根据sum就可以创建稀疏数组sparseArr int[sum+ 1][3]遍历原始数组并判断有效数据4.将二维数组的有效数据数据存入到稀疏数组稀疏数组转原始的二维数组的思路先读取稀疏数组的第一行,根据第-行的数据 ,创建原始的二维数组,比如上面的chessArr2 =int[11[11]在读取稀疏数组后几...

2020-05-08 00:58:39 286

原创 轻松搞定外观设计模式,你来试试这么学~

外观模式概述:为子系统中的一组接口提供一个一致的界面,该模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式的基本组成1)外观角色( facade) : 这是门面模式的核心。它被客户角色调用,因此它熟悉子系统的功能。它内部根据客户角色已有的需求预定了几种功能组合。2)子系统角色(sub-system): 实现了子系统的功能。对它而言,facade 角色就和客户角色一样是...

2020-05-06 22:14:30 168

原创 轻松搞定适配器设计模式,你来试试这么学~

适配器模式概述将一个类的接口转换成客户希望的另外一个接口,使得原本由于 接口不兼容而不能一起工作的那些类可以共同工作。适配器模式主要分为两种:类适配器和对象适配器适配器模式的基本构成01)目标角色( Target): 定义Client 使用的接口,可以是具体或抽 象的类、或是接口。02)被适配角色( Adaptee): 这个角色有一个已存在并使用了的接口,而这个接...

2020-04-26 19:18:56 208

原创 轻松搞定单例设计模式,你来试试这么学~

单例模式概述:使用场景:在当前系统中,某个类型的对象,最多只能有一个,就需要使用单例设计模式单例模式的设计原则:构造方法私有化,禁止外界随意创建实例在类中创建好该类对象在类中,给外界提供获取该对象的公有方式单例模式主要分为两种方式:饿汉式、和懒汉式单例模式中的饿汉式饿汉式原理:首先将类的构造函数私有化,禁止外部创建类的实例。然后在类中创建一个静态的本类类型私有的静态成员...

2020-04-25 00:27:07 165

原创 java中对象操作流之版本号问题

在同一个类下进行序列化与反序列化关于版本号的问题用对象输出流进行序列化前(此处是把对象从内存中写入a.txt中)时此时把类的版本号设置为1L然后利用对象输出流进行序列化:之后进行反序列化(从a.txt中将对象写入到内存中)时此时类的版本号应该要与进行序列化时设置的版本号一致(1L),此时类中的参数虽然被修改,但是没有影响。注意:如果序列化与反序列化时版本号不同,则运行会报错总结:...

2020-04-22 23:08:45 285

原创 轻松入门学习MySQL(一),你确定还不来瞧瞧?

笔记(一)数据库的基本概念MySQL数据库软件安装卸载配置SQL数据库的基本概念1. 数据库的英文单词: DataBase 简称 : DB2. 什么数据库? * 用于存储和管理数据的仓库。3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库 -- SQL4. 常见...

2020-04-09 23:17:17 105

原创 Java基础知识之重点知识概括(二)

switch语句1.switch语句的表达式只能是:byte short int char String 枚举类型2.case语句后,要跟的必须和表达式所表示的类型一致,并且必须是常量,不能是变量3.每一个case中都要视具体业务逻辑而定,如果该分支执行结束,那么应当添加break语句,如果没有break语句,那么会发生case穿透(有时候可以利用穿透)4.switch语句结束的标志:①...

2020-04-03 15:59:59 202

原创 Java基础知识之重点概括(一)

Java基础知识(一)基本数据类型与引用数据类型注意: 如果需要使用float类型的常量,则需要在小数后面加一个字母f java常量整数类型默认为int,常量浮点型默认为double数据类型转换之隐式转换数据类型表示范围的比较:byte < short = char < int < long < float < dou...

2020-04-02 11:20:14 380

空空如也

空空如也

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

TA关注的人

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