自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(150)
  • 资源 (3)
  • 收藏
  • 关注

原创 maven私服

私服其实就是一种远程仓库。用处速度快,稳定 节省宽带,节省中央maven仓库宽带 便于控制和审计 能部署第三方构件Nexus搭建nexus需要占用较大内存,一般大于2Gdocker方式(推荐)下载镜像docker pull docker.io/sonatype/nexus3在linux创建挂载目录 mkdir localNexusdata这里的200...

2021-02-01 23:21:55 204

原创 开发过程中碰到的jdk1.8用法

public class Demo { public static void main(String[] args) { a(); } /** * 获取Map<Long, List<User>> 中value里的某个属性 */ public static void a() { List<User> userList = new ArrayList<>(); .

2020-11-20 15:37:53 252

原创 读写锁-ReentrantReadWriteLock

在看这篇之前先看看AQS框架的实现原理,很多重复的代码我就不在这里进行介绍了。https://blog.csdn.net/zgsxhdzxl/article/details/95032337 重入锁 ReentrantLock 是排他锁,排他锁在同一时刻仅有一个线程可以进行访问,但是在大多数场景下,大部分时间都是提供读服务,而写服务占有的时间较少。然而,读服务不存在数据竞争问题,如果一个线程在读时禁止其他线程读势必会导致性能降低。所以就提供了读写锁。 读写锁维护着一对...

2020-05-12 23:28:17 273

原创 Java8 日期及时间API

参考书籍《Java8 实战》LocalDate日期类 // 日期类 LocalDate date = LocalDate.of(2020, 10, 11); System.out.println(date.getYear() +"-"+ date.getMonthValue() +"-"+ date.getDayOfMonth()); ...

2020-04-19 22:21:28 180

原创 Java8 并行流

并行流个人工作中用处很少,所以仅仅了解了一下,详细的可以自己去看《Java 8 实战》parallel将序流转为并行流。并行流内部是使用了Fork/Join框架去做处理。sequential将并行流转为顺序流。先看一个小测试 long start2 = System.nanoTime(); long sum2 = LongStream.ran...

2020-04-19 22:21:13 229

原创 java8 stream收集数据

// 实体类public class Goods { private String name; private Integer price; public static List<Goods> getGoods() { List<Goods> goods = new ArrayList<>(); ...

2020-04-19 22:21:04 289

原创 java8 stream流基础

stream 部分用法https://mp.weixin.qq.com/s/yS61Bbvlj5eOfEGpJR4gQAMax和Min// 求对象某属性的最小值Ab ab = list.stream().min(Comparator.comparing(Ab::getCount)).get();// 直接求最小值Integer integer = Stream.of(8, 2...

2020-04-19 22:20:20 672

原创 SpringBoot启动类解析

写的不是很详细,只写了个大概,后续待补充启动类只有一句话@SpringBootApplication()public class ApiServiceApplication implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(...

2020-04-09 20:16:20 379

原创 java8 Lambda表达式

为简洁地表示可传递的匿名函数的一种方式。它包含三个部分,参数、箭头、主体。如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值List<Dog> dogs = new ArrayList<>();(a1,a2)是参数a1.getName().compareTo(a2.getName())是主体dogs.sort((a1, a...

2020-04-01 20:22:41 114

原创 Springboot集成Swagger2

引入jar <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</versi...

2020-04-01 15:02:35 115

原创 spring Aware接口

spring aware 的目的是为了让bean获取spring容器的服务。常见的aware接口有:BeanNameAware :可以获取容器中bean的名称BeanFactoryAware:获取当前bean factory这也可以调用容器的服务ApplicationContextAware: 当前的applicationContext, 这也可以调用容器的服务MessageS...

2020-03-19 23:16:19 121

原创 BeanPostProcessor分析

如果我们想在Spring容器中完成bean实例化、配置以及其他初始化方法前后要添加一些自己逻辑处理。我们需要定义一个或多个BeanPostProcessor接口实现类,然后注册到Spring IoC容器中。@Componentpublic class MyBeanPostProcessor implements BeanPostProcessor{ @Override public O...

2020-03-19 22:59:22 104

原创 MyBatis关联查询

association 一对一关系一对一嵌套结果property :对应实体类中的属性名,必填项。javaType : 属性对应的 Java 类型 。resultMap : 可以直接使用现有的 resultMap ,而不需要在这里配置映射关系。columnPrefix :查询列的前缀,配置前缀后,在子标签配置 result 的 column 时可以省略前缀 &lt...

2020-03-09 19:36:03 131

原创 MyBatis批量操作

通过foreach动态拼装sql <insert id="insert" parameterType="com.zxl.entity.ZxlUser"> insert into ZXL_USER (id, user_name) values <foreach collection="list" item="item" separator=","&g...

2020-03-09 19:17:42 81

原创 Mybatis动态sql

if跟java中的if类似,但是没有else <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> select id, user_name from ZXL_USER where 1 = 1 <if test=...

2020-03-09 19:06:34 150

原创 Mybatis基本元素

select映射查询语句元素 说明 备注 id 它和Mapper的命名空间组合起来是唯一的,提供给MyBatis调用 如果命名空间和id组合起来不唯一,会抛出异常 parameterType 传入参数的类型;可以给出类全名,也可以给出类别名,使用别名必须是MyBatis内部定义或自定义的; ...

2020-03-09 18:39:56 880

原创 网络编程面试题

从输入URI到页面展示中间经历了什么解析域名。先查询本地host,有的话直接使用对应的ip,否则查询DNS服务器,将最终查询到的ip返回拓展DNS是域名系统,是域名与ip地址相互映射的分布式数据库,使用户更方便地访问互联网。DNS两种查询方式递归解析:当局部dns查询不到时候,先去根DNS服务器查询,再由跟域名服务器向下一级级查询。迭代解析:当局部d...

2020-03-09 09:46:58 95

原创 IO模型

同步和异步(关注的是结果消息)同步:同步的意思就是调用方需要主动等待结果的返回异步:异步的意思就是不需要主动等待结果的返回,而是通过其他手段比如,状态通知,回调函数等。阻塞和非阻塞(关注的是等待结果返回调用方的状态)阻塞:是指结果返回之前,当前线程被挂起,不做任何事。 有人也许会把阻塞调用和同步调用等同起来,实际上他是不同的。对于同步调用来说,很多时候当前线程还是激活的,只...

2020-03-08 15:35:12 118

原创 TCP/IP协议

Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。协议采用了4层的层级结构。TCP和UDP: TCP: 1,建立连接,形成传输数据的...

2020-03-07 18:57:02 126

原创 OSI七层模型

OSI七层模型物理层物理层并不是物理媒体本身,它只是开放系统中利用物理媒体实现物理连接的功能描述和执行连接的规程。数据链路层数据链路的建立,拆除,对数据的检错,纠错是数据链路层的基本任务。网络层路由选择和中继,在一条数据链路上复用多条网络连接传输层定义传输数据的协议端口号,以及流控和差错校验。传输层有一个既存事实,即世界上各种通信子网在性能上存在着很大差异。例如电话交换...

2020-03-07 18:34:04 90

原创 ThreadLocal

https://blog.csdn.net/Y0Q2T57s/article/details/83247430https://www.jianshu.com/p/dde92ec37bd1作用、概念threadLocal是为了解决对象不能被多线程共享访问的问题,通过threadLocal.set方法将对象实例保存在每个线程自己所拥有的threadLocalMap中,这样每个线程使用自己的...

2020-03-07 10:50:30 133

原创 RabbitMQ介绍

AMQP 是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。目标是实现一种在全行业广泛使用的标准消息中间件技术,以便降低企业和系统集成的开销,并且向大众提供工业级的集成服务。主要实现有 RabbitMQ。生产者、消费者、消息 生产者:消息的创建者,发送到rabbit...

2020-03-05 15:40:08 157

原创 算法面试

常见排序算法及复杂度https://www.cnblogs.com/onepixel/articles/7674659.html如何遍历一棵二叉树public class Tree { private Node root; private List<Node> list=new ArrayList<Node>(); public Tre...

2020-03-04 23:07:32 439

原创 MySQL数据类型

float和Decimal类型的区别 float是单精度浮点数,Decimal是定点数。 float当插入的整数时候,会保存整数,例如输入1.00 会存入1,而decimal不会 浮点数如果不指定精度和标度,那么会按照实际精度存储,否则将四舍五入插入,系统不会报错;定点数如果不写,则默认按照decimal(10,0)操作,如果数据超过了精度和标度就会报错。 datat...

2020-03-02 15:41:43 122

原创 MySql查询优化

索引原理: 不使用索引,要查询name = 1的数据,则需要检查数据表中的每一行,使用索引,索引会包含每一条数据,并且经行分类,所以会直接查询到 = 1的所有行,并且不会检查其它的数据行。 优点 提高查询速度 使用min()或max()查询,能迅速找到 order by 和 group by 操作迅速完成 有时,可以通...

2020-03-02 15:37:17 140

原创 Mysql面试

varchar和char区别 varchar是可变字符类型,char是不可变。char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节) varchar(50) 指的是最多存50个字符,例如50个汉字或者...

2020-03-02 15:11:33 170

原创 SpringBoot集成flyway

flyway是数据库版本管理工具。引入jar<!-- 数据库版本管理工具 --><dependency><groupId>org.flywaydb</groupId><artifactId>flyway-core</artifactId><version>${flyway.version}</...

2020-03-02 11:11:18 178

原创 Springboot打war包

maven项目,修改pom包<packaging>war</packaging>打包时排除tomcat.<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</art...

2020-03-02 11:09:28 132

原创 Git日常命令

查看修改用户名、邮箱查询用户名、邮箱$ git config user.name$ git config user.email新建、修改用户名、邮箱$git config --global user.name "xxx"$git config --global user.email "xxx"新建版本库及提交文件 版本库又名仓库,英文名repository,你可以简单...

2020-03-02 10:34:12 198

原创 git简介及安装

git是分布式版本控制系统, 可以有效、高速的处理从很小到非常大的项目版本管理,它可在本地建立仓库,你写的代码的各个版本都可以存着。gitHub 是一个项目托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。...

2020-03-02 10:19:14 99

原创 RabbitMq安装

通过官网下载的21的包和3.7.7的包,无论如果都报erlang >= 19.3 被 rabbitmq-server-3.7.7-1.el7.noarch 需要,不会解决,所以用yum方式安装. yum安装方便,但是不能完全地掌控linux修改文件vi/etc/yum.repos.d/rabbitmq-erlang.repo复制进去[r...

2020-03-02 10:17:27 134

原创 循环写法

map循环最推荐的写法for (Map.Entry<String, Object> entry : map.entrySet()) {// System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());}循环删除Iterator<Map.Entry<Str...

2020-03-02 10:09:05 212

原创 反射

反射就是动态加载对象 public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchFieldException, NoSuchMethodException, InvocationTargetExcepti...

2020-03-02 10:05:08 75

原创 ConcurrentHashMap解析

结构图 jdk1.8 源码 公共属性 // node数组 transient volatile Node<K,V>[] table; // 触发扩容的数组长度 private transient volatile int sizeCtl; // 初始化table长度 ...

2020-03-02 09:31:42 173

原创 单点登录

使用redis+token方式 共享session方式 使用现成的框架spring-session 如果共用一个顶级域名 sessionid被种在顶级域名中 后台通过redis共享session的值,当请求来的时候,去redis中查询session 当请求到达服务器,服务器获取到cookie中的sessionid,然后通过sessionid到redis中获取ses...

2020-03-02 09:27:14 114

原创 MyBatis面试

MyBatis工作原理 mybatis应用程序通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件(也可以用Java文件配置的方式,需要添加@Configuration)来构建SqlSessionFactory(SqlSessionFactory是线程安全的);然后,SqlSessionFactory的实例直接开启一个SqlSessi...

2020-02-26 21:13:50 134

原创 Spring AOP

先写一个例子目标类@Componentpublic class Calcutor { public int div(int i, int j) { System.out.println("目标方法开始运行"); return i/j; }}切面类/** * @Description: 日志切面类 * 日志切面类可以动态感...

2020-02-26 17:23:00 210

原创 SpringBoot简介

Spring Boot是Spring组织下的子项目,是Spring组件一站式解决方案,主要简化了使用Spring的难度,简化了繁重的配置,提供各种启动器,开发者能快速上手。优势 去除大量的xml配置文件 自动化配置。Spring Boot 能根据但当前路径下的类、jar来自动配置bean,例如添加Spring-boot-start-web就能拥有web的功能,不需要其他...

2020-02-26 11:44:03 378

原创 Spring跨域

同一个ip、同一个网络协议、同一个端口,三者都满足就是同一个域,否则就是跨域解决办法 jsonp spring4增加了jsonp的支持,只需要ControllerAdvice就可以开启。 Controller正常编写,只要在相应的包下。 前台必须用jsonp方式提交 CORS 使用注解CrossO...

2020-02-26 11:39:08 158

原创 Spring面试题

IOC初始化流程初始化BeanFactory、标签国际化、注册监听器等去容器中获取bean实例,如果没有就进行创建创健bean实例、对bean进行属性赋值在初始化bean前后执行后置处理器将bean放入ioc容器执行下发通知SpringBoot启动机制首先得益于maven的父集成,使得SpringBoot能够引入第三方依赖有个核心的注解是@SpringBootApplicati...

2020-02-26 11:37:18 288 1

mybatis.generator配置文件

generator插件所需要的配置

2019-04-14

SpringMVC+Spring+Hibernate4框架整合

SpringMVC+Spring+Hibernate4框架整合,包含测试类

2017-02-19

空空如也

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

TA关注的人

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