学习
郭罗氏
夏天死的时候,所有莲都殉情。
展开
-
unnecessary Mockito stubbings » UnnecessaryStubbing问题解决
这个问题是Junit提示我们在测试用例中存在没有用到的方法打桩。这个时候我们就需要对报错的测试用例进行检查,确认执行流程是否是按照我们预期进行的。如果是没有走到目标分支导致的,那么就需要改逻辑,否则就需要删除无用的打桩。...原创 2019-12-03 09:35:34 · 9552 阅读 · 0 评论 -
spring boot项目打包
1.三种常见的部署方式1)搞成groovy源码,需要手写产生,可以部署于Cloud Foundry(paas服务/云环境)上和容器中(docker)2)搞成jar包,可以由maven、gradle或者是spring boot CLI搞,出了不能往java应用服务器(tomcat等)中部署以外其他地方基本上都可以部署3)搞成war包,可以由maven或者是gradle搞,可以往云环境和j...原创 2018-12-18 17:22:07 · 279 阅读 · 0 评论 -
spring Bean作用域
1.spring上下文管理的bean默认都是单例的(全局范围),也就是说一个bean无论被注入对少次,注入的实例都是一样的。这样操作效率很高,但是会有安全问题。2.spring提供自定义作用域,bean的四大作用域为:1)单例(application),整个应用上下文中只创建一个实例。然后到处注入。2)原型(prototype),每次获取(注入)bean,spring都会创建一个新的b...原创 2019-01-07 14:30:45 · 180 阅读 · 0 评论 -
websocket简介及和socket对比
1.什么是websocket是一种网络通信协议,是html5开放出来的双工通信协议(服务端和客户端随便通信,不像http协议只能客户端去请求服务端,然后服务端把信息返回)2.websocket和socket的区别是什么1)socket是一个工作在OSI模型会话层(第5层)的抽象层。是对TCP/IP协议族的一个封装(目的是方便程序员的使用),它是一个API(使用TCP/IP协议的接口)。...原创 2019-01-22 17:41:34 · 3368 阅读 · 2 评论 -
java注解
1.注解Java1.5之后,出现了注解(annotation)。注解本身是一个类,用于对类中的元素进行修饰,然后编译器(javac),开发工具或其他程序可以通过注解来对类元素进行特定的操作。2.元注解定义注解的注解称为元注解。用于修饰注解,常见的元注解有:@Target, @Retention@Target:用于说明注解在什么地方起作用。可选值如下:Publicenum Ele...原创 2019-02-14 09:49:28 · 285 阅读 · 0 评论 -
sharding学习-参数解析
1.在解析配置文件之前,需要先说说sharding是如何去扫描配置文件的。在源码中,是通过这个方法去扫描的配置文件:private File[] findRuleConfigurationFiles(final File path) { return path.listFiles(new FileFilter() { @...原创 2019-05-17 17:53:14 · 2745 阅读 · 0 评论 -
java8学习-流入门
1.定义流指的是一系列的数据项,每次只处理一项。所谓流处理是指从输入流中一个一个的读取数据,然后再写入到输出流中。2.java体现在java8中我们可以通过stream接口来实现流处理。当然,stream的主要作用对象是java的集合,在java中,它可以被当成是一个遍历数据集的高级迭代器。下面是一个简单的例子,以比较流和传统表达式的区别:package java8...原创 2019-06-02 21:50:06 · 170 阅读 · 0 评论 -
记一次mysql主从关系修复过程
1.故事背景今天在使用sharding时,突然发现sharding服务居然启动不起来了。只好去查看日志,查看日志后发现报错信息为从库无法连接。然后,就开始对比主从库的结构,然后发现主从库结构已经不一致了,然后手动执行建库sql后,从库也无法同步,所以只好查看下从库的状态。利用mysql客户端连接从库,然后执行show slave status\G命令后错误内容如下: Re...原创 2019-06-14 17:33:30 · 677 阅读 · 0 评论 -
单例模式学习
1.什么是单例模式单例模式(singleton pattern)官方说明是:Ensure a class has only one instance, and provide a global point of access to it翻译过来就是一个类只能有一个实例(实例化一次),并且需要自身提供可供全局访问的实例(自己实例化自身)。使用了单例模式的类通常称为单例类,...原创 2019-06-28 13:02:22 · 143 阅读 · 0 评论 -
lambda表达式实践
1.环绕执行模式所谓环绕执行模式,指的是每个可用的业务代码都会包含很多重复的周边代码,比如如果是执行资源处理的话,出去有用的业务代码外,常常需要我们去书写资源打开/关闭(清理)的代码,几乎每次操作都是需要的。针对具备环绕执行模式特点的代码,我们可以把业务代码(具体行为)参数化,用一个函数式接口代替,这样就能大大减少代码重复。下面是一个环绕执行模式的例子:/***环绕模式例子*/...原创 2019-07-10 22:40:04 · 215 阅读 · 0 评论 -
redis学习-redis基本数据结构
1.字符串是redis中最简单的数据类型,通常用于缓存用户信息。key为userId,value为对象信息(以json字符串存储,存储时需要把user对象json序列化)redis的字符串是动态字符串(类似于动态数组),采用空间预分配的形式来减少内存扩充次数。当字符串大小超过1M时,扩容都是翻倍的扩。支持的操作:1)单条读写:redis语法: set key value...原创 2018-12-11 21:35:40 · 381 阅读 · 0 评论 -
java动态代理(jdk动态代理和CGLIB动态代理)
1.什么是代理根据原有对象生成一个占位(代理对象),然后由代理对象来代理真实对象,控制对真实对象的访问的操作就叫做代理。2.代理的必要步骤1)让代理对象和真实对象建立联系(建立关系的过程会生成代理对象,基于java反射)2)实现代理对象的代理逻辑方法3.代理的作用(好处)4.常用的代理技术有哪些1)JDK动态代理2)CGLIB动态代理5.JDK动态代理1)代...原创 2018-11-19 21:18:34 · 1012 阅读 · 0 评论 -
关于spring boot的组件扫描
在spring boot中,自动扫描会把整个包都隐式的注册为bean(注册到spring中),即使你类上面没有任何组件注解(扫描单包时起效)。这样操作的话,在自动装配的时候代码会报错,但是不影响程序的使用。比如@MapperScan,@ComponentScan....原创 2018-09-20 09:56:33 · 554 阅读 · 0 评论 -
spring boot学习笔记(从0开始)之集成mybatis+mybatis3.X使用
1.spring boot集成mybatis(注解版)第一步<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1....原创 2018-09-15 15:28:16 · 147 阅读 · 0 评论 -
在spring boot中使用redis(一):集成redis
在考虑如何集成redis之前,首先需要确保你拥有一个已经安装好的redis环境。1.redis环境安装(Linux版本)由于redis官方只支持Linux环境,所以如果你想安装官方版本,那么你就需要准备一台安装了Linux系统的服务器(虚拟机)。redis安装包下载地址:http://download.redis.io/releases/下载好安装包后,就可以把安装包放到Lin...原创 2018-09-26 15:40:37 · 363 阅读 · 0 评论 -
tomcat发布应用的三种方式
1.直接发布,也就是把需要发布的应用直接copy到tomcat的webapp下即可。2.通过修改conf下的server.xml文件的host标签中添加配置来实现发布,此时应用可以放在磁盘任意位置,配置如下:<Context path="/访问上下文" docBase="应用所在的具体路径" debug="0" privileged="true" > </Contex...原创 2018-10-09 18:53:50 · 1421 阅读 · 0 评论 -
java远程调试(介绍两种发布方式)
1.jar包启动时java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -jar demo.jar--jdk1.7之后java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -jar demo.jar--jd...原创 2018-10-16 16:04:38 · 848 阅读 · 0 评论 -
mysql日期格式化(date和varchar相互转换)
1.date类型装换为varchar类型使用date_format函数进行转换,使用方式为Date_format(col,pattern)col为需要格式化的字段,pattern为转换的格式,格式参照总的格式表其中最常用的xxxx-xx-xx xx:xx:xx的格式根据格式表,需要写为:%Y-%m-%d %H:%i:%s,也就是: DATE_FORMAT(xxx,'%Y...原创 2018-11-13 19:40:27 · 34687 阅读 · 0 评论 -
mybatis和hibernate比较
相同点1.都是对象关系映射(Object Relational Mapping)框架,体现为都提供实体类和数据库表相互映射的功能。2.业务逻辑代码层面的操作基本一致。区别1.hibernate设计理念是完全面向POJO(Plain Ordinary Java Object)的,所以使用者可以基本不用书写sql就能通过配置的映射关系完成数据库操作,但是mybatis不一样,他需要我们...原创 2018-11-12 20:31:08 · 6611 阅读 · 0 评论 -
责任链模式
1.定义一个对象在一条链上被多个拦截器拦截处理(当然,可能只会拦截,不会处理)的设计模式称为责任链模式。该模式是一个对象在多个角色中传递的过程。类似于流程审批,申请单被级级审核。2.构成对象+拦截器3.例子由于责任链模式由多个拦截器组成,所以现在先让我们来撸3个拦截器: /** * 一号拦截器 */public class ResponsibilityI...原创 2018-11-22 16:32:38 · 121 阅读 · 0 评论