后端
文章平均质量分 70
roman.zhang
这个作者很懒,什么都没留下…
展开
-
Redis与MySQL双写一致性如何保证?
前言四月份的时候,有位好朋友去美团面试。他说,被问到Redis与MySQL双写一致性如何保证?这道题其实就是在问缓存和数据库在双写场景下,一致性是如何保证的?本文将跟大家一起来探讨如何回答这个问题。 公众号:捡田螺的小男孩 谈谈一致性一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。 强一致性:这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好,但实现起来往往对系统的性能影响大 弱一致性:这种一致性级别约转载 2021-05-27 17:10:26 · 150 阅读 · 0 评论 -
JDK11-ArrayList集合源码(2)
List集合一览图JDK11-ArrayList1.List接口public interface List<E> extends Collection<E> { // Query Operations /** * Returns the number of elements in this list. If this list contains ...原创 2020-04-01 21:50:57 · 238 阅读 · 0 评论 -
Java集合-基于JDK11(1)
Java集合体系一览图(UML)JDK11-Iterable1.Iterable 接口Iterable,即迭代器的意思。其作用是为集合类提供for-each循环遍历的支持,只要让一个类实现这个接口,该类的对象就可以成为for-each循环遍历的目标。换句话说,想让一个Java对象支持for-each遍历,只要让它的类实现Iterable接口即可。而这具体又是如何做到的呢?我们来看下它的源码。public...原创 2020-04-01 11:41:01 · 301 阅读 · 0 评论 -
Spring Mvc的异步处理
第一步 Callable实现异步 第二步 DeferredResult实现异步 提示:此种方式是采用消息机制,实现异步。原创 2018-06-26 10:21:24 · 206 阅读 · 0 评论 -
Spring cloud 实战微服务
Spring cloud 实战微服务 第一章 微服务架构简介 一.首先介绍下传统的架构 单体架构 一个归档包(例如war格式)包含了应用所有功能的应用程序,我们通常称之为单体应用。架构单体应用的方法论,我们称之为单体应...原创 2018-07-05 11:23:43 · 239 阅读 · 0 评论 -
idea创建的微服务架构详解
idea创建的微服务项目详解 idea开发的微服务项目源码:点击打开链接原创 2018-07-06 10:24:59 · 4783 阅读 · 0 评论 -
Spring 多线程与异步
背景Spring是通过任务执行器(TaskExecutor)来实现多线程和并发编程的,Spring使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor,在实际开发中,现在的多线程都是异步非阻塞的,所以我们在配置类中需要加上@EnableAsync注解,开启对异步任务的支持,并通过在实际执行的Bean的方法中使用@Async注解来声明其是一个异步任务。...原创 2018-08-28 11:40:00 · 3474 阅读 · 0 评论 -
Spring5--IOC
简介 spring已经成为了java开发人员必备的框架,spring基本引领着整个java开发方向的流程,现在spring提供了五花八门的模块来帮助开发人员进行各种java项目的构建,在spring5中提出了非阻塞的web框架。Spring的安装 Spring的安装非常的简单,只要使用在maven中引入相应的java即可完成安装<dependencies>...原创 2018-09-05 16:45:00 · 388 阅读 · 0 评论 -
Spring5--AOP
前言spring的aop是spring的另外一个基本功能,面向切面的编程可以为开发人员提供极大的便利,面向切面编程主要是针对一些控制性功能,如:权限控制,缓存处理,日志控制,事务管理等,这些功能和主要的业务逻辑没有关系,但是却需要整合在很多业务逻辑模块中。模拟面向切面编程 首先创建一个菲布尼奇数列的接口,里面有两个方法可以完成菲布尼奇数据的求值。 public interfa...原创 2018-09-06 18:06:06 · 777 阅读 · 0 评论 -
深入理解Java的接口和抽象类
对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 一.抽象类 在了解抽象类之前,先...原创 2018-12-03 10:41:04 · 229 阅读 · 0 评论 -
为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作
在阿里巴巴Java开发手册中,有这样一条规定:但是手册中并没有给出具体原因,本文就来深入分析一下该规定背后的思考。1foreach循环foreach循环(Foreachloop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素。Java语言从JDK1.5.0开始引入foreach循环。在遍历数组、集合方面,foreach为开发人员提供了极大...原创 2019-04-15 17:38:47 · 189 阅读 · 0 评论 -
多线程下的数据安全
前言 多线程下的线程安全,主要是由于无法控制线程的执行顺序,无法确定那个线程是先执行,是由CPU确定的,出现线程不安全的情况-》每次运行的结构都不相同(程序无法按照我们想要的结果)下面是一个简单的多线程例子,来说明下多线程下的数据安全 package com.el.jichu.thread.writerlock;import java.util.concurrent.a...原创 2019-04-10 15:20:34 · 993 阅读 · 0 评论 -
spring以注解的方式启动spring mvc
第一步 如何启动Spring Mvc 1.创建一个类继承AbstractAnnotationConfigDispatcherServletInitializer 代码: MyWebAppInitializer //web容器启动的时候创建对象;调用方法来初始化容器控制前端控制器public class MyWebAppInitializer extends ...原创 2018-06-26 09:21:08 · 3474 阅读 · 0 评论 -
Spring的BeanFactoryPostProcessor,BeanDefinitionRegistryPostProcessor,ApplicationListener了解
1、BeanFactoryPostProcessor:beanFactory的后置处理器;* 在BeanFactory标准初始化之后调用,来定制和修改BeanFactory的内容;* 所有的bean定义已经保存加载到beanFactory,但是bean的实例还未创建*** BeanFactoryPostProcessor原理:* 1)、ioc容器创建对象* 2)、in...原创 2018-06-24 17:41:46 · 276 阅读 · 0 评论 -
Spring的声明式事务--注解
步骤1.导入相关依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.12.RELEASE</version></depe原创 2018-06-24 11:59:14 · 568 阅读 · 0 评论 -
logback使用配置详解
1.介绍 Logback是由log4j创始人设计的另一个开源日志组件,它当前分为下面下个模块: logback-core:其它两个模块的基础模块 logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging logback-access:访问模块与Servlet容器集成提供通过Htt...转载 2018-05-25 11:04:40 · 225 阅读 · 0 评论 -
Oracle的exists与not exists的区别,以及in,not in的区别
exists (sql 返回结果集为真) not exists (sql 不返回结果集为真) 如下: 表A ID NAME 1 A1 2 A2 3 A3 表B ID AID NAME 1 1 B1 2 2 B2 3 2 B3 表A和表B是1对多的关系 A.ID => B.AID SELECT ID,NAME FROM A WHERE EXIST (SELECT...原创 2018-05-22 11:16:59 · 234 阅读 · 0 评论 -
Spring boot入门
Spring boot 的优点: 1:快速创建独立运行的Spring项目及主流框架集成 2:使用嵌入式的servlet容器,应用无需打成war包。 3:starters自动依赖与版本控制 4:大量的自动化配置,简化开发,也可修改默认配置 5:无需配置XML,无代码生成,开箱即用 6:与云计算的天然集成缺点:入门容易,...原创 2018-05-22 10:20:43 · 122 阅读 · 0 评论 -
搭建Maven私服
Maven私服1.1.1. 关于中央仓库注意事项l 地址: 目前来说: http://repo1.maven.org/maven2/是真正的Maven中央仓库的地址,该地址内置在Maven的源码中,其他的都是镜像l 索引: 中央仓库带有索引文件以方便用户对其进行搜索,完整的索引文件大小约为60M,索引每周更新一次l 黑名单: 如果某个IP地址恶意的下载中央仓库内容,例如全公司100台机器使用同一个...转载 2018-05-21 16:21:31 · 263 阅读 · 0 评论 -
Git入门
这里以git.oschina.net为例(oschina可以免费创建私有项目,github创建私有得花钱)。第一步,我们需要先注册个git帐号,这里就不说了。这个oschina提供的git服务其实就是给我们一个空间,我们的代码可以传上去由oschina保管。第二步,新建项目,填上项目名称,git地址等信息以后,就可以新建一个项目了。第三步,填加ssh的key,添加key的作用是允许你的电脑访问gi...转载 2018-05-21 16:17:30 · 129 阅读 · 0 评论 -
Spring aop切面编程实现log日志步骤
1、在spring-mvc.xml配置文件中打开切面开关:<aop:aspectj-autoproxy proxy-target-class="true"/>注意:proxy-target-class属性值决定是基于接口的还是基于类的代理被创建。如果proxy-target-class 属性值被设置为true,那么基于类的代理将起作用(这时需要cglib库)。如果proxy-targe...转载 2018-05-28 09:24:13 · 5169 阅读 · 1 评论 -
使用Spring Initializer快速创建Spring Boot项目
IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目; 选择我们需要的模块;向导会联网创建Spring Boot项目; 默认生成的Spring Boot项目;主程序已经生成好了,我们只需要我们自己的逻辑 resources文件夹中目录结构 static:保存所有的静态资源; js css images; templates:保存所有的模板页面;(Spring Boot...原创 2018-05-30 11:10:02 · 1541 阅读 · 0 评论 -
Spring boot的配置文件
1.配置文件SpringBoot使用一个全局的配置文件,配置文件名是固定的; •application.properties •application.yml配置文件的作用:修改Spring boot自动配置的默认值,Spring boot在底层都给我们配置好了标记语言: 以前的配置文件;大多都使用的是 xxxx.xml文件; YAML:以数据为中心,比json、xml等更适合做配置文件; Y...原创 2018-05-30 15:22:48 · 279 阅读 · 1 评论 -
Spring 注解驱动开发
1.项目结构 创建一个maven项目 在pom文件里引入 spring-context,junit(测试使用jar包)配置文件测试类原创 2018-06-24 10:22:55 · 288 阅读 · 0 评论 -
idea maven项目如何使用lib下得jar包
在项目开发中,一般使用maven来管理项目,但有时还需要引用本地lib下的jar包比如,中央仓库没有jar包。这时我们就需要引入lib下的jar包了。下面通过截图,一看就懂 ...原创 2018-05-31 17:30:06 · 1270 阅读 · 0 评论 -
Spring 的AOP-注解
1、导入aop模块;Spring AOP:(spring-aspects) <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>4.3.12.RELE...原创 2018-06-24 10:39:47 · 597 阅读 · 0 评论 -
如何将应用的log4j替换成logback详解
前言 最近考虑到log4j很久不更新、性能相对弱,以及一些项目本身的原因,经过较为谨慎的考虑,决定改用logback。如果你已经对log4j很熟悉,你也可以很快上手logback。如果你喜欢使用log4j,你也许会迷上使用logback。迁移还是比较顺利的,花了1个小时左右就搞定了,做个简单的笔记。方法如下(1) 首先去掉所有log4j相关的依赖,主要有:?1234<dependen...转载 2018-05-25 10:24:22 · 7189 阅读 · 0 评论