自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

转载 MySQL执行计划

2021-03-05 16:05:45 107

原创 Spring解决循环依赖的原理

什么是循环依赖?简单来说就是A、B两个对象互相依赖,A中有B,B中有A。循环依赖分类:构造器循环依赖//A类中引用B类实例class A { B b; public A(B b){ this.b = b; }}-----------------//B类中引用A类实例class B { A a; public B(A a) { this.a = a; }}像上面这种构造器循环引用是无解的,即使强如Spring这样的框架。setter方法

2021-02-27 16:11:16 460

原创 Springboot自动装配的实现流程

带着这个问题到网上搜索,大多数文章在解释这个问题的时候,上来就是@SpringBootApplication注解中找@EnableAutoConfiguration注解,然后找到@Import(AutoConfigurationImportSelector.class)注解,然后就到AutoConfigurationImportSelector类中找,惊呆????~不过也没错,最后确实是因为这个注解这个类完成的自动装配,但是Spring是如何从开始的注解一步一步完成自动装配的呢?接下来一步一步的调试跟

2020-10-16 17:17:12 910

原创 基于Netty实现TCP连接的服务端、客户端

简介Netty是一个异步事件驱动的网络应用框架,可快速开发可维护的高性能协议服务器和客户端。基于NIO实现的高性能网络IO框架,极大简化基于常用网络协议的编程(TCP、UDP等)。架构模型完整版:根据自己的理解,简单版的工作模型架构图:如上图所示,Netty是基于主从Reactor的架构模型;主EventLoopGroup负责处理客户端的连接请求事件,客户端连接成功后交由从EventLoopGroup,具体的数据IO由从EventLoopGroup的EventLoop处理。EventLoop

2020-10-03 16:37:46 9181 2

转载 RocketMQ高级

1. 高级功能1.1 消息存储分布式队列因为有高可靠性的要求,所以数据要进行持久化存储。消息生成者发送消息MQ收到消息,将消息进行持久化,在存储中新增一条记录返回ACK给生产者MQ push 消息给对应的消费者,然后等待消费者返回ACK如果消息消费者在指定时间内成功返回ack,那么MQ认为消息消费成功,在存储中删除消息,即执行第6步;如果MQ在指定时间内没有收到ACK,则认为消息消费失败,会尝试重新push消息,重复执行4、5、6步骤MQ删除消息1.1.1 存储介质关系型数据库D

2020-09-12 16:34:26 182

转载 RocketMQ入门

1. MQ介绍##1.1 为什么要用MQ消息队列是一种“先进先出”的数据结构其应用场景主要包含以下3个方面应用解耦系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验。使用消息队列解耦合,系统的耦合性就会提高了。比如物流系统发生故障,需要几分钟才能来修复,在这段时间内,物流系统要处理的数据被缓存到消息队列中,用户的下单操作正常完成。当物流系统回复

2020-09-12 08:30:56 258

原创 使用NIO实现一个群组聊天功能

使用nio实现一个群聊功能NIO:(No Blocking IO或者New IO),非阻塞IO,是相对于传统IO来说,其意义在于网络IO的非阻塞性。其工作流程:Buffer :数据的载体Channel:客户端到服务端的通道,负责数据(Buffer)的传输Selector:多路复用器,用于监听Channel的事件(可对应多个Channel)1.Server端 public static void chatServer() throws IOException { /

2020-09-04 18:53:14 157

原创 Service层的数据校验

在传统的单体项目开发中,三层结构WEB层、Service层、DAO层最终是一个整体,调用关系也是一一对应,WEB->Service->DAO的调用关系。程序的”入口“只能是用户从WEB层发起调用,为了对数据负责、也为了避免不合法的数据浪费性能所以会在WEB层做数据校验,而Service层基本处于裸奔的状态。如今分布式、微服务大行其道,WEB层和Service层未必是一一对应的关系 了,可能是一对多、多对一、多对多的关系,你的Service不一定会有谁来调用,所以在Service层进行数据校验也

2020-09-02 14:46:56 3195 1

转载 VisualVM连接远程主机

一、在服务器上部署JMX服务1.进入tomcat的bin目录,修改catalina.sh文件#tomcat的bin目录,修改catalina.sh: #vim catalina.sh # 添加如下配置: CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jm

2020-09-02 13:55:22 1478

原创 Spring中如何向POJO类中注入属性?

假如在SpringBoot项目中有这么一个 需求,需要对接口返回的某个UserDto对象的手机号phone只显示后四位的处理,那么如何操作?public class UserDto { private String name; private String phone; private String address;}方式一public UserDto getUserInfo() { UserDto user = getUserDto; //在此处处理 user.setPho

2020-08-25 18:50:30 983

原创 SpringBoot+Jersey文件下载

常见下载文件有返回文件流、字节数组、字符串、通过HttpServletResponse的io写 等形式本文使用javax.ws.rs.core.Response的形式实现文件下载@GET@Path("download")@Produces(MediaType.APPLICATION_OCTET_STREAM) public Response fileTemplateDownload(@Context SecurityContext context) throws FileNotFoundExcep

2020-08-05 18:01:10 447

原创 HashMap插入数据执行流程分析

概要JDK1.7中的HashMap底层实现为数组+链表,JDK1.7中的HashMap存在问题:多线程状态下内部数组扩容时有可能会导致死循环。所以,JDK1.8中对HashMap进行了重新实现,其底层实现为数组+链表+红黑树。提高了HashMap的性能。HashMap源码解读内部属性static final int DEFAULT_INITIAL_CAPACITY默认初始化容量,默认值16,要求改值必须为2的幂次方数。至于为何必须是2的幂次方数,简单来说就是为了提高map的key在放入数

2020-07-21 10:54:20 974 1

转载 CentOS 7 一键安装FTP

CentOS 7 一键安装FTP转自这里#!/bin/bash#此脚本目前只是为了方便centos7下安装vsftp,其他版本后期集成。#ftp数据存放目录# by liwentong 20191219ftp_data=/home/ftpchcek_friewalld(){ echo "开始检查防火墙设置" systemctl status firewalld |grep runing & >/dev/null if [ $? -ne 0 ] t

2020-07-18 14:55:04 596

原创 事务相关概念

事务特性(ACID)原子性(Atomicity)一个事务内的操作是不可再分割的,要么全部成功要么全部失败。一致性(Consistency)事务内的操作要求逻辑正确一致,比如A向B转账,不可能A账户扣了钱,B账户却没有增加。隔离性事务和事务之间是隔离的,事务与别的事务之间不能互相访问。持久性事务完成的结果应该被持久化到数据库。事务并发问题脏读A事务和B事务同时执行时,A事务读取到B事务未提交的数据,B事务回滚后相当于A事务读取到不曾存在的数据。

2020-07-18 14:51:09 137

原创 volatile关键字作用

保证内存可见性何为内存可见性?线程操作共享资源时会将资源从主内存区拷贝到当前线程的工作内存区,且不同的线程无法互相访问其工作内存,线程间变量的传递需要将变量写回到主内存区后再进行传递。而volatile之所以可以保证内存可见性,因为其保证修饰的变量在值被修改后及时写回到主内存区,同时也会将CPU中对变量的缓存刷新,保证各个线程得到最新的值。示例:class JCounter { int value = 0; public void increase() { value

2020-06-19 14:10:38 151

原创 为View设置边框阴影效果

like this CALayer *layer = [_adviserView layer]; layer.shadowOffset = CGSizeMake(0, 3); layer.shadowRadius = 5.0; layer.shadowColor = [UIColor blackColor].CGColor; laye

2016-07-20 08:51:26 1284

原创 tableview下拉 表头缩放效果

实现该效果的关键在于  为tableview设定表头图片的时候  不要直接指定tableviewHeader为imagView  要把imageView添加到一个UIView (baseView)上面  然后在将tableViewHeader指定为baseView最后实现下拉缩放 - (void)scrollViewDidScroll:(UIScrollView *)s

2016-07-15 12:04:58 597

原创 iOS开发 根据字符内容计算宽高度

根据内容计算宽度- (CGFloat)calculateRowWidth:(NSString *)string { NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:17]}; //指定字号 CGRect rect = [string boundingRectWithSize:CGSizeMa

2016-07-15 11:58:09 11965

原创 ios二维码生成和扫描

//创建二维码- (CIImage *)creatQRCodeForString:(NSString *)qrString { NSData *stringData = [qrString dataUsingEncoding:NSUTF8StringEncoding]; //创建CIFilter CIFilter *filter = [CIFilter fi

2016-07-13 16:18:57 404

原创 iOS通讯录读写

首先引入addressBook.framework addressBookUI.framework框架首先申请读写权限 // Request authorization to Address Book ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL); if (AB

2016-06-01 15:03:56 552

原创 iOS view控件设置渐变色

.

2016-04-06 11:34:17 601

原创 Xcode7 Http请求

Xcode7版本以上设置http请求打开工程配置文件 info.plist加入 NSAppTransportSecurity 字段, NSDictionary 类型加入此字段NSAllowsArbitraryLoads ,Boolean 类型 值 YES

2015-12-17 21:20:22 272

原创 IOS获取当前位置坐标不执行代理方法

利用CLLocationManager获取当前位置坐标时,程序不会执行代理方法获取当前位置 此时应在info.plist配置中加入NSLocationAlwaysUsageDescription, NSLocationWhenInUseUsageDescription字段

2015-12-12 11:33:45 666

转载 GData解析XML

在IOS平台上进行XML文档的解析有很多种方法,在SDK里面有自带的解析方法,但是大多情况下都倾向于用第三方的库,原因是解析效率更高、使用上更方便,关于IOS平台各种解析XML库的优缺点分析,可以看下这篇文章:http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project这里

2015-12-10 22:36:22 496

VisualJSON MAC版本

Json字符串自动解析工具

2016-07-14

空空如也

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

TA关注的人

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