随笔 - 229  文章 - 0  评论 - 10  阅读 - 26万 
11 2019 档案
传统IO拷贝与零拷贝技术比较
摘要:1. 传统IO 由上面图知,传统io需要经过4次copy, 3次状态切换 第一次: 从硬盘 经过 DMA 拷贝 到 kernel buffer (内核buferr) 第二次: 从kernel buffer 经过cpu 拷贝到 user buffer ,比如拷贝到应用程序 第三次: 从user buf 阅读全文
posted @ 2019-11-30 23:36 显示账号 阅读(1233) 评论(0) 推荐(0) 编辑
NIO编程之多客户端聊天系统
摘要:1. 服务端 import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.*; import java.util.Iterato 阅读全文
posted @ 2019-11-30 22:46 显示账号 阅读(280) 评论(0) 推荐(0) 编辑
NIO编程模式示例
摘要:1. 服务端 import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.*; import java.util.Iterator; import java.util.Set; pub 阅读全文
posted @ 2019-11-30 18:00 显示账号 阅读(210) 评论(0) 推荐(0) 编辑
java.nio.channels.IllegalBlockingModeException
摘要:报错信息如下: Exception in thread "main" java.nio.channels.IllegalBlockingModeException at java.nio.channels.spi.AbstractSelectableChannel.register(Abstract 阅读全文
posted @ 2019-11-30 17:47 显示账号 阅读(1379) 评论(0) 推荐(0) 编辑
NIO之Buffer操作示例
摘要:1. buffer常规操作 略 2. 只读buffer /** * 只读buffer */ public class BufferTest01 { public static void main(String[] args) { IntBuffer buffer = IntBuffer.alloca 阅读全文
posted @ 2019-11-30 16:31 显示账号 阅读(250) 评论(0) 推荐(0) 编辑
NIO之FileChannel操作示例
摘要:1. 写文件操作 /** * 写文件 */ public class FileChannelTest { public static void main(String[] args) throws IOException { String str = "test file channel, 测试fi 阅读全文
posted @ 2019-11-30 15:44 显示账号 阅读(563) 评论(0) 推荐(0) 编辑
Flask学习笔记04之路由重定向
摘要:Flask框架提供了请求重定向功能,只需要使用 redirect_to即可, 示例代码如下: from flask import Flask, render_template, request, redirect, session app = Flask(__name__) app.secret_k 阅读全文
posted @ 2019-11-30 12:39 显示账号 阅读(811) 评论(0) 推荐(0) 编辑
python对象之__call__方法
摘要:先看示例,然后啥都明白了 class Student(): def __call__(self, *args, **kwargs): print('__call__方法被调用', *args) class Person(): def mm(self): print('mm方法被调用') 测试代码 : 阅读全文
posted @ 2019-11-29 22:56 显示账号 阅读(389) 评论(0) 推荐(0) 编辑
Flask学习笔记03之路由
摘要:1. endpoint from flask import Flask, url_for # 实例化一个Flask对象 app = Flask(__name__) # 打印默认配置信息 # 引入开发环境的配置 app.config.from_object('settings.DEV') # 引入生产 阅读全文
posted @ 2019-11-28 23:09 显示账号 阅读(206) 评论(0) 推荐(0) 编辑
Flask学习笔记02之配置文件
摘要:1. Flask默认的配置 Flask实例中包含了它的配置信息 #实例化一个Flask对象 app = Flask(__name__) # 打印默认配置信息 print(app.config) 打印结果如下: < Config { 'ENV': 'production', 'DEBUG': Fals 阅读全文
posted @ 2019-11-28 22:42 显示账号 阅读(215) 评论(0) 推荐(0) 编辑
Flask学习笔记01之环境搭建
摘要:使用pycharm搭建Flask运行环境 1. 打开pycharm ,创建一个新的工程 2. 选择创建Flask项目 3. Flask项目创建成功,结构如下 4. 运行项目 5. 发送请求 over! 阅读全文
posted @ 2019-11-28 22:16 显示账号 阅读(123) 评论(0) 推荐(0) 编辑
通过类路径字符串获取获取类中静态属性
摘要:一个python类,其类路径字符串是student.Student class Student: name = 'admin' age = 12 通过如下方式就能获取到类的属性及其属性值 import importlib # 类的全路径 path = 'student.Student' p,c = 阅读全文
posted @ 2019-11-28 21:56 显示账号 阅读(301) 评论(0) 推荐(0) 编辑
bio编程示例
摘要:直接干代码,用BIO写一个Server端,然后使用telnet模拟客户端发送数据 import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; 阅读全文
posted @ 2019-11-27 23:45 显示账号 阅读(403) 评论(0) 推荐(0) 编辑
定时任务crond
摘要:在服务器上使用crond完成定时操作很方便, 下面简单记录一下。 常用的命令主要有以下三个: (1)编辑定时任务 crontab -e (2) 查看定时任务 crontab -l (3) 删除定时任务 crontab -r 示例1: 1. 先crontab -e, 在弹出的编辑文件中输入 * * * 阅读全文
posted @ 2019-11-27 22:10 显示账号 阅读(162) 评论(0) 推荐(0) 编辑
日志管理工具logrotate
摘要:工作所需,需要管理脚本的打印日志,百度一圈,发现了logrotate这款工具,经测试确实挺好的! 话不多说,直接上重点,以便于以后需要时查看 命令: whereis logrotate 可以看到logrotate相关的配置 /etc/logrotate.conf 这是logrotate默认的配置文件 阅读全文
posted @ 2019-11-27 21:25 显示账号 阅读(695) 评论(0) 推荐(0) 编辑
springboot2整合logback.xml动态修改日志打印级别
摘要:今天找bug烦到了,生产上的日志级别不能修改,非常不利于排查问题,于是想到了动态修改日志打印级别, 因为上一周把项目升级成springboot2,并且使用logback.xml管理日志打印,所以修改也很方便。 1. 在pom.xml引入日志依赖 <dependency> <groupId>org.s 阅读全文
posted @ 2019-11-25 23:17 显示账号 阅读(2292) 评论(0) 推荐(0) 编辑
mybatis框架之装饰模式
摘要:学习开源框架源码,除了储备点知识以便于与面试官互相忽略之外,我想最重要的还是去学习大神如何写代码,如何做到职责单一,如何做到可扩展等。。。 本篇,试着总结一下mybatis在缓存模块使用到的装饰模式。 或许一说到装饰模式就会扯到装饰模式四种角色,但我觉得这些都是扯蛋,没必需照本宣科,我觉得myabt 阅读全文
posted @ 2019-11-24 23:07 显示账号 阅读(451) 评论(1) 推荐(1) 编辑
mybatis源码分析之06二级缓存
摘要:上一篇整合redis框架作为mybatis的二级缓存, 该篇从源码角度去分析mybatis是如何做到的。 通过上一篇文章知道,整合redis时需要在FemaleMapper.xml中添加如下配置 <cache eviction="LRU" type="qinfeng.zheng.RedisCache 阅读全文
posted @ 2019-11-24 22:14 显示账号 阅读(203) 评论(0) 推荐(0) 编辑
mybatis整合redis二级缓存
摘要:mybatis默认开启了二级缓存功能,在mybatis主配置文件中,将cacheEnabled设置成false,则会关闭二级缓存功能 <settings> <!--二级缓存默认开启,false关闭--> <setting name="cacheEnabled" value="false" /> <! 阅读全文
posted @ 2019-11-23 22:41 显示账号 阅读(234) 评论(0) 推荐(0) 编辑
python字符串非空判断
摘要:1. 字符串非空判断 2. list 非空判断 阅读全文
posted @ 2019-11-22 21:23 显示账号 阅读(2167) 评论(0) 推荐(0) 编辑
mybatis源码分析之05一级缓存
摘要:首先需要明白,mybatis的一级缓存就是指SqlSession缓存,Map缓存! 通过前面的源码分析知道mybatis框架默认使用的是DefaultSqlSession,它是由DefaultSqlSessionFactory创建的,下面是源码 private SqlSession openSess 阅读全文
posted @ 2019-11-21 23:13 显示账号 阅读(228) 评论(0) 推荐(0) 编辑
mybatis框架之动态代理
摘要:坦白讲,动态代理在日常工作中真没怎么用过,也少见别人用过,网上见过不少示例,但总觉与装饰模式差别不大,都是对功能的增强,什么前置后置,其实也就那么回事,至于面试中经常被问的mybatis框架mapper接口这一块,少不了的要扯到动态代理。说起来高深莫测,其实只是在忽略自己,或者也包括面试官吧。不过, 阅读全文
posted @ 2019-11-20 23:39 显示账号 阅读(289) 评论(0) 推荐(0) 编辑
Redis事件通知示例
摘要:1. redis如同zk一样,提供了事件监听(或者说是回调机制), 下面是redis的配置说明: ############################# EVENT NOTIFICATION ############################## # Redis can notify Pu 阅读全文
posted @ 2019-11-19 23:33 显示账号 阅读(1234) 评论(0) 推荐(0) 编辑
springboot2集成redis5报错:io.lettuce.core.RedisException: io.lettuce.core.RedisConnectionException: DENIED Redis is running in protected
摘要:报错信息如下: Caused by: io.lettuce.core.RedisException: io.lettuce.core.RedisConnectionException: DENIED Redis is running in protected mode because protect 阅读全文
posted @ 2019-11-19 22:31 显示账号 阅读(5367) 评论(0) 推荐(0) 编辑
Centos7关闭防火墙
摘要:查看防火墙状态: systemctl status firewalld 关闭防火墙: systemctl stop firewalld 开启防火墙: systemctl start firewalld 将关闭防火墙设置为开机启动: systemctl disable firewalld.servic 阅读全文
posted @ 2019-11-19 21:47 显示账号 阅读(248) 评论(0) 推荐(0) 编辑
mybatis源码分析之04Mapper接口的动态代理
摘要:在工作中,使用mybatis操作数据库,只需要提供一个接口类,定义一些方法,然后调用接口里面的方法就可以CRUD,感觉是牛了一逼! 该篇就是记录一下,mybatis是如何完成这波骚操作的,即分析我们测试代码的第4行。 FemaleMapper femaleMapper = sqlSession.ge 阅读全文
posted @ 2019-11-18 23:18 显示账号 阅读(251) 评论(0) 推荐(0) 编辑
mybatis源码分析之03SqlSession的创建
摘要:在上一篇中,说到了mybatis是如何构造一个SqlSessionFactory实例的,顾名思意,SqlSessionFactory就是用于创建SqlSession的工厂类。 好,现在我们接着昨天的来,mybatis框架解析完xml配置文件之后,将其封装成一个Configuration实例,然后,S 阅读全文
posted @ 2019-11-18 21:36 显示账号 阅读(192) 评论(0) 推荐(0) 编辑
mybatis源码分析之02配置文件解析
摘要:该篇正式开始学习mybatis的源码,本篇主要学习mybatis是如何加载配置文件mybatis-config.xml的, 先从测试代码入手。 public class V1Test { public static void main(String[] args) { try (InputStrea 阅读全文
posted @ 2019-11-17 23:23 显示账号 阅读(237) 评论(0) 推荐(0) 编辑
mybatis源码分析之01环境搭建
摘要:直接使用maven搭建一个mybatis的运行环境 1. pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w 阅读全文
posted @ 2019-11-17 20:22 显示账号 阅读(328) 评论(0) 推荐(0) 编辑
springboot2集成pagehelper
摘要:springboot2集成pagehelper超级简单,本示例直接抄袭官方示例,仅将数据库由H2改成MySQL而已。 1、 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/P 阅读全文
posted @ 2019-11-17 00:02 显示账号 阅读(784) 评论(0) 推荐(0) 编辑
Redis5离线安装
摘要:1. 直接上redis官网安装包, 然后上传服务器 https://redis.io/download 2. 解压 tar -zxvf redis-5.0.6.tar.gz 3. 进入redis根目标 cd redis-5.0.6 4.编译安装 直接make, 但是我这虚拟机报错了, 报错信息如下 阅读全文
posted @ 2019-11-16 23:09 显示账号 阅读(670) 评论(0) 推荐(0) 编辑
spark streaming简单示例
摘要:<?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:sc 阅读全文
posted @ 2019-11-14 20:34 显示账号 阅读(421) 评论(0) 推荐(0) 编辑
spark集群搭建
摘要:一. 准备工作 1. 准备三台虚拟机,网络互联,安装jdk,配置JAVA_HOME 2. 对虚拟机进行hosts配置,以便于免密操作 3. 三台虚拟机进行免密登录配置 3.1 执行 ssh-keygen -t rsa 命令,然后一直回车,会在/root/.ssh/ 目标下面生成两个文件id_rsa( 阅读全文
posted @ 2019-11-14 00:05 显示账号 阅读(263) 评论(0) 推荐(0) 编辑
list的过滤操作
摘要:假设 l = ['abc', 'mn', 'aq', 'liuming'] 我要过滤出以a开头的元素,方法有以下两种 方法1: l = ['abc', 'mn', 'aq', 'liuming'] list1 = [e for e in l if e.startswith('a')] print(l 阅读全文
posted @ 2019-11-06 23:16 显示账号 阅读(946) 评论(0) 推荐(0) 编辑
python之字符串切分
摘要:在工作中,经常遇到字符串切分,尤其是操作linux命令,返回一段文本,如下面这种格式 Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 3.1G 35G 9% / tmpfs 939M 0 939M 0% /dev/shm 在整理数据时 阅读全文
posted @ 2019-11-06 23:03 显示账号 阅读(1758) 评论(0) 推荐(0) 编辑
eval函数让我忧伤
摘要:今天首次接触这个eval函数,让我忧伤了一把。我把当成字符串拼接,结果错得天远地远。大体情况是下面这句代码,一个劲的给我报NameError: name 'qinfeng' is not defined. class_obj = eval('qinfeng.zheng.ipvsadm.%s()' % 阅读全文
posted @ 2019-11-06 22:49 显示账号 阅读(180) 评论(0) 推荐(0) 编辑
spring依赖搜索
摘要:spring项目在启动时,spring框架会根据名称自动搜索实现类. 这在日常开发中还是很有用的。 下面举两个例子。 1. 先写一个接口(或者抽象类) public interface IPersonService { void say(); } 2. 弄两个实现类,并注册到Ioc中 @Compon 阅读全文
posted @ 2019-11-05 21:51 显示账号 阅读(448) 评论(0) 推荐(0) 编辑
项目启动时操作数据库
摘要:对于springboot项目而言,框架提供了多种接口,在项目启动时执行自定义操作。本篇记录项目启动时操作数据库的场景,利用了spring框架帮我们封装好的JdbcDaoSupport接口,操作起来还是很简单的。 application.properties 好, 代码就是如上所示。 项目启动时,就会 阅读全文
posted @ 2019-11-04 22:42 显示账号 阅读(347) 评论(0) 推荐(0) 编辑
IO操作之ObjectInputStream与ObjectOutputStream
摘要:之前写过DataInputStream和DataOutputStream,使用这两个类可以对java基本数据类型进行序列化和反序列化。 本篇再来两个新东西:ObjectInputStream,ObjectOutputStream,这二位不但能对java基本数据类型进行操作,还可以直接干对象,使用起来 阅读全文
posted @ 2019-11-04 20:30 显示账号 阅读(234) 评论(0) 推荐(0) 编辑
DataInput接口说明及其实现类
摘要:一. DataInput接口 DataInput接口提供了一系列的方法从二进制流中读取字节,并将读取出来的字节转换成任意的java基本类型,包括转换成UTF-8类型的字符串。 该接口中主要方法介绍如下: (1)void readFully(byte b[]) throws IOException; 阅读全文
posted @ 2019-11-04 20:02 显示账号 阅读(1634) 评论(0) 推荐(0) 编辑
数据流:DataOutputStream与DataInputStream的使用
摘要:看这两个类的名字就不难猜测出它们的类关系图。 DataOutputStream: 主要是一些writeXxx()操作,写出, 相当于序列化 DataInputStream: 主要是一些readXxx()操作,写入, 相当于反序列化 一般情况下,两者会成对出现。 在使用过程中要特别注意, 一个writ 阅读全文
posted @ 2019-11-03 23:04 显示账号 阅读(1006) 评论(0) 推荐(0) 编辑
InputStream接口的常见实现类
摘要:一. FileInputStream FileInputStream可以从系统文件中获取输入字节,也从可以从诸从图象数据的的原始字节流中读取。 如果是读取字符串流,推荐使用FileReader。 感觉就是视频,音频,图象之类的文件,就用FileInputStream读取。而如果是纯文字(字符串)文件 阅读全文
posted @ 2019-11-03 16:56 显示账号 阅读(1353) 评论(0) 推荐(0) 编辑
输入流之顶层抽象InputStream
摘要:该类是所有二进制输入流的的抽象父类 类中主要方法解释说明如下 (1)public abstract int read() throws IOException; 该方法是从输入流中读取下一个字节,返回的值字节是一个范围从0到255之间的int数。如果读到输入流的未尾,则返回-1。 同时该方法会一直阻 阅读全文
posted @ 2019-11-03 14:26 显示账号 阅读(285) 评论(0) 推荐(0) 编辑
Spring框架之接口实现覆盖(接口功能扩展)
摘要:在日常开发中,存在着这种一种场景,框架对接口A提供了一个种默认的实现AImpl,随着需求的变更,现今AImpl不能满足了功能需要,这时,我们该怎么办? 当然是修改AImpl的实现代码了,但是,如果它是第三方依赖呢? 或者说,我们自己写了的某个功能模块,AImpl是我们为此模块提供的一种默认实现,用户 阅读全文
posted @ 2019-11-03 11:36 显示账号 阅读(2067) 评论(0) 推荐(1) 编辑
04 SecurityContextHolder与SecurityContext说明
摘要:该篇记录一下SecurityContextHolder与SecurityContext两个类,当然还有与它们关系密码的SecurityContextPersistenceFilter.java这个过滤器 1. SecurityContext.java 查看spring security的源码,发现它 阅读全文
posted @ 2019-11-02 22:02 显示账号 阅读(4966) 评论(1) 推荐(1) 编辑
03 spring security执行流程分析
摘要:spring security主要是依赖一系列的Filter来实现权限验证的,责任链设计模式是跑不了的。下面简单记录一下spring操作这些Filter的过程。 1. WebSecurityConfiguration.java 该类是spring security的一个配置类,里面定了一系列的Bea 阅读全文
posted @ 2019-11-02 19:19 显示账号 阅读(549) 评论(0) 推荐(0) 编辑
02 spring security 自定义用户认证流程
摘要:1. 自定义登录页面 (1)首先在static目录下面创建login.html 注意: springboot项目默认可以访问resources/resources, resources/staic, resources/public目录下面的静态文件 (2) 在spring securiy 配置类中 阅读全文
posted @ 2019-11-02 16:59 显示账号 阅读(750) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示