- 博客(83)
- 资源 (9)
- 收藏
- 关注
原创 Oauth2 理解
一、名词定义:资源 Resource资源所有者 Resource Owner资源服务器 Resource Server认证服务器 Authenticate Server客户端 Client客户端对应的服务器 ClientServer二、用例淘宝获取用户信息、github获取用户信息、用户授权快递员门禁码送快递三、前提:客户端系统 先在 【认证服务器 Authenticate Server】 注册 得到 appId 和 appSecret四、方式:...
2022-02-24 16:31:14
3045
转载 JVM与linux系统时间不一致问题
Java运行打印日志与系统时间不一致问题解决方法:1.修改/etc/sysconfig/clock文件,若没有该文件则创建。#编辑/etc/sysconfig/clocksudo vim /etc/sysconfig/clock#添加如下内容ZONE="Asia/Shanghai"UTC=falseARC=false2.设置linux的时区设置为上海时区ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime3...
2020-05-13 15:33:38
882
原创 Linux循环复制文件
#!/bin/bashn=1551341463614614j=0for ((i=1; i<=10; i++))do for faceFile in `ls /home/zhzhl/face_image/face_test/face_image_1_1/face1` do new=$[n+j] echo $new cp $faceFile /home/zhzhl/fa...
2020-03-20 17:25:46
2730
原创 Centos 6 升级gcc4.8
CentOS 6 升级安装gcc 4.8CentOS6.6通过yum升级gcc/g++至版本4.8.2(最简易方式)
2020-03-17 16:16:14
280
转载 Centos6 glibc2.14 libc.so.6
mkdir ~/glibc_install; cd ~/glibc_install wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gztar zxvf glibc-2.14.tar.gzcd glibc-2.14mkdir buildcd build../configure --prefix=/opt/glibc-2.1...
2020-03-17 16:14:17
317
原创 Redis
Redis主要用于缓存,自定义map、guava的缓存也可以用于简单缓存。自定义缓存时,注意value要使用SoftReference包装,以便JVM回收guava缓存:CacheBuilder、LoadingCache1. 数据结构1. string2. list3. hash4. set5. zset6. stream(5.0新增)2. 持久化RDBAOF...
2020-02-19 10:12:19
241
原创 RabbitMQ
RabbitMQ是实现了AMQP(高级消息队列协议)的开源消息代理软件。RabbitMQ服务器是用Erlang语言编写的,而聚类和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。AMQP从上到下分为:Model(提供命令)、Session(协议处理)、Transport(数据传输)1.结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直...
2020-02-14 11:17:49
154
原创 通过一个外卖例子了解分布式事务解决方案
通过外卖例子了解分布式事务解决方案。使用SpringBoot和RabbitMQ为例。1. RabbitMQRabbitMQ使用Erlang语言开发,是AMQP(Advanced Message Queuing Protocol)高级消息队列协议的实现。有五个重要的概念生产者消费者QueueExchangeBind流程生产者发送消息时并不直接发送到队列,而是通过Exc...
2020-02-10 22:53:36
465
原创 MacOS编译OpenJDK9
一、下载源码直接下载源码包,使用mercurial下载速度慢,容易失败。源码网站:http://jdk.java.net/Jdk9源码地址https://download.java.net/openjdk/jdk9/ri/openjdk-9_src.zip或者从:https://github.com/unofficial-openjdk/openjdk/re...
2019-12-20 09:12:24
323
原创 Java注解
1.Java使用接口Annotation来描述注解。使用AnnotatedElement来获取Annotation其他注解不能继承该接口(直接报错)。可以使用接口继承,单继承后只能是普通接口,不再是注解。jvm在编译后自动为注解加上继承Annotation,可以使用javap反编译查看2.元注解(注解其他注解的注解)Target :注解位置 值为ElementType枚举的实例。如 类...
2019-12-16 11:51:58
129
原创 mysql的物理分页与逻辑分页
1.逻辑分页查出所有的数据,使用程序进行分页。占用内存大、数据更新不能及时反馈、不用频繁查询数据库2.物理分页每次查询数据库,使用limit占用内存小、数据更新及时反馈、频繁查询数据库3.limit使用技巧limit a,b 当a越来越大时,销量会下降。改进:使用where条件(该列有索引时会使用索引)where 列名>a limit b...
2019-12-06 11:11:12
548
原创 Mybatis加载过程分析
1. 本地加载2.spring集成1.web.xml中配置spring-mvc的配置文件buildSqlSessionFactory构建SqlSessionFactory。2.在spring-mvc中配置mybatis的配置2.1 sqlSessionFactory (->InitializingBean接口,实现afterPropertiesSet方法。在afterPropert...
2019-12-06 09:54:17
229
原创 【Spring-boot】使用spring cache缓存,集成redis
一、spring cache是spring缓存。spring-boot默认使用ConcurrentMapCacheManager作为缓存管理器,当没有指定缓存配置时使用。二、加入依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin...
2019-05-09 11:02:44
356
原创 【Spring-boot】分离三方依赖
由于某种原因,不想使用Spring-boot默认打包方式,需要分离出依赖包:1.pom配置:<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> ...
2019-05-06 10:52:41
668
原创 【设计模式】观察者模式
1.定义观察者模式属于对象行为型模式模式观察者的英文软体设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实时事件处理系统。2.结构3.原理Observer 观察者 notify方法:当Subject有变化时,此方法被调用Subject 主题,又叫被观察者。持有...
2019-03-06 10:49:00
179
原创 【设计模式】策略模式
策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。策略模式:定义了一族算法(业务规则);封装了每个算法;这族的算法可互换代替(interchangeable)。参考:策略模式Java与模式...
2019-02-21 16:37:24
137
原创 docker使用nginx
1、启动docker container run -d -p 127.0.0.1:8080:80 --rm --name mynginx nginx-d:在后台运行-p :容器的80端口映射到127.0.0.1:8080–rm:容器停止运行后,自动删除容器文件–name:容器的名字为mynginx2、停止docker container stop mynginx3、查看docke...
2019-02-13 11:24:07
195
原创 【Spring-boot】使用aop记录访问日志
引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>加入记录日志功能@Slf4j@Aspect@Compo...
2019-01-21 11:58:22
281
原创 位运算符
位运算符用来对二进制位进行操作,~,&,|,^分别为取反,按位与与,按位与或,按位与异或运算,如下表实例:如果指定 A = 60; 及 B = 13; 两个变量对应的二进制为:A = 0011 1100B = 0000 1101进行位运算:参考:http://www.runoob.com/swift/swift-operators.html...
2019-01-19 11:40:32
154
转载 java中的AES 256算法遇到 Illegal key size or default parameters错的解决办法
报错信息:Caused by: java.security.InvalidKeyException: Illegal key size or default parameters问题原因:Java几乎各种常用加密算法都能找到对应的实现。因为美国的出口限制,Sun通过权限文件(local_policy.jar、US_export_policy.jar)做了相应限制。因此存在一些问题:密...
2019-01-16 11:07:21
259
原创 java.util.HashMap
一、注释hash table的Map接口实现。HashMap提供所有map的可选操作,允许键和值为null。(HashMap除了unsynchronized和允许null值,与Hashtable相同)。HashMap不保证元素顺序,特别是随着时间推移。在hash函数正确的分散元素到buckets中时,HashMap对基本的get和put操作提供常数项时间性能。对集合视图的迭代则与HashMa...
2019-01-11 11:06:10
1212
原创 【Spring-boot】shiro权限控制
缓存使用redis,自定义ShiroRedisCache、ShiroRedisCacheManager用于存储用户缓存信息自定义MyShiroToken继承自AuthenticationToken。用于用户名密码载体进行认证public class MyShiroToken implements AuthenticationToken { private AdminUse...
2019-01-07 15:28:21
162
原创 【Spring-boot】spring-batch传参数问题
Spring-boot集成spring-batch传参数时一般方法为: @Bean("step1Reader") public JdbcPagingItemReader&lt;T&gt; step1Reader(DataSource dataSource) { Map&lt;String, Order&gt; sortKeys = Maps.newHashMap(); ...
2018-12-18 14:13:37
8262
2
原创 Java8流式操作与Collectors
Java8 流式操作笔记集合关注的是它当中元素元素有效的管理和访问。Stream关注的是它的源source的各种聚合的计算操作一般来说Stream可分为三个部分:源source、中间操作Intermediate和终止操作Terminal。每一个流只能被使用一次(即调用中间操作或者终止操作)流的实际执行流程是这样的,在遇到中间操作的时候,其实只是构建了一个Pipeline对象,而该对象...
2018-12-11 11:41:09
669
原创 ActiveMQ安全设置
1、修改登录密码activemq的web管理界面:http://127.0.0.1:8161/adminActiveMQ管控台使用jetty部署,需要修改密码则修改对应的配置文件conf/jetty-realm.properties2、消息安全机制只有符合认证的用户才能进行发送和获取消息conf/confactivemq.xml添加安全验证<!--MQ安全验证配置--> ...
2018-12-11 10:18:54
176
原创 mysql区间统计函数
INTERVAL(N,N1,N2,N3,…)INTERVAL()函数进行比较列表(N1,N2,N3等等)中的N值。该函数如果N&lt;N1返回0,如果N&lt;N2返回1,如果N&lt;N3返回2 等等。如果N为NULL,它将返回-1。列表值必须是N1&lt;N2&lt;N3的形式才能正常工作。mysql&gt; select INTERVAL(10,0,5,10,15);+----...
2018-12-04 17:17:30
6192
转载 linux centos 7 安装tmux
安装 ncurses-develyum -y install ncurses-devel安装 libevent-devyum -y install libevent-devel安装tmux如果系统已经安装有git,则可以直接从github上clone tmux的源码进行安装,具体操作步骤如下3.1. 获取tmux 的源码git clone https://github.com/t...
2018-12-03 16:04:20
1476
原创 【Spring-boot】运行环境获取
一、类级别@Profile(“dev”)比如:可以用来控制,swagger只在测试环境使用@Profile({“dev”, “loc”})public class SwaggerConfig {}二、方法级别【Spring-boot】通过ApplicationContextAware获取spring管理对象...
2018-11-30 15:39:38
3545
原创 【Spring-boot】前后端分离跨域以及session问题
一、后端@Configurationpublic class CorsConfig { @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurer() { @Override //重写父类提供的跨域请求处理的接口 ...
2018-11-28 15:07:00
4849
1
原创 Java启动常用参数
-Duser.timezone=Asia/Shanghai启动设置时区用于:服务器时间正确,打印日志时间有问题-DskipTests跳过测试用于:mvn编译-Dfile.encoding=UTF-8编码格式用于:解决乱码问题...
2018-11-28 15:00:44
362
原创 【Spring-boot】通过ApplicationContextAware获取spring管理对象
用途1,在filter中使用servcie代码@Componentpublic class SpringUtils implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApp...
2018-11-27 09:58:36
5180
原创 【Spring-boot】使用filter对request body参数进行校验
@Slf4jpublic class ParameterCheckServletRequestWrapper extends HttpServletRequestWrapper { private byte[] requestBody; private Charset charSet; public ParameterCheckServletRequestWrap...
2018-11-02 12:01:50
8942
3
原创 【数据结构与算法】栈
一、特点:LIFO, (Last In First Out)二、基本操作:push(入栈)pop(出栈)三、可以用数组实现四、Java实现java.util.Stack继承java.util.Vector(向量)由于以下原因已不推荐使用1 . 使用synchronized关键字影响效率2 . 使用继承Vector 类的实现和 ArrayList 比较接近,都是基于数组及扩...
2018-09-28 11:51:13
963
原创 MarkDown中数学公式书写方法
在Markdown中插入数学公式的语法是$数学公式$和$$数学公式$$。行内公式是可以让公式在文中与文字或其他东西混编,不独占一行。独立公式使公式单独占一行,不与文中其他文字等混编。使用^来表示上标,_来表示下标,同时如果上下标的内容多于一个字符,可以使用{}来将这些内容括起来当做一个整体。与此同时,上下标是可以嵌套的。参考:1,http://jzqt.github.io/...
2018-09-27 15:03:37
3872
原创 【数据结构与算法】算法
一、算法定义算法(algorithm),在数学(算学)和电脑科学之中,为任何良定义的具体计算步骤的一个序列[1],常用于计算、数据处理(英语:Data processing)和自动推理。精确而言,算法是一个表示为有限长[2]列表的有效方法(英语:Effective method)。算法应包含清晰定义的指令[3]用于计算函数[4]。算法中的指令描述的是一个计算,当其执行(英语:Executio...
2018-09-27 14:59:21
257
原创 使用KeyHolder 获取Spring JdbcTemplate插入记录ID
使用Spring JdbcTemplate插入数据之后,如果需要获取插入之后的ID,代码如下: public NamedParameterJdbcTemplate namedParameterJdbcTemplate; public void insert(){ String insertSql = "insert into user(name,a...
2018-09-27 09:41:10
5399
原创 Java中参数传递——值传递(拷贝)
Java中参数传递实际上是值传递(拷贝)参数分为两种:基本数据类型、引用类型比如方法M调用方法N,参数为x,则:如果x是基本类型,则会把x的值拷贝一份放入N方法实例的栈中。此时,方法N改变参数x的值,M中的x不受影响。如果x是引用类型,则会把x的引用拷贝一份(x’)放入N方法实例的栈中。此时,方法N可以通过引用x’改变x的值。因为引用x和引用x’都是指向同一个对象。...
2018-09-26 11:45:06
1813
luyten-0.4.4
2015-06-03
openexplorer.jar
2014-12-12
IE Javascript leaks detector
2014-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人