架构资料
文章平均质量分 87
学习交流
殷十娘
身为一名Java老程序员,热衷于分享身边的八卦和烦恼
展开
-
Spring 如何解决循环依赖问题?
在关于Spring的面试中,我们经常会被问到一个问题,就是Spring是如何解决循环依赖的问题的。这个问题算是关于Spring的一个高频面试题,因为如果不刻意研读,相信即使读过源码,面试者也不一定能够一下子思考出个中奥秘。本文主要针对这个问题,从源码的角度对其实现原理进行讲解。1 过程演示关于Spring bean的创建,其本质上还是一个对象的创建,既然是对象,读者...原创 2019-11-26 13:58:00 · 1268 阅读 · 0 评论 -
Spring 常犯的十大错误,打死都不要犯!
1. 错误一:太过关注底层我们正在解决这个常见错误,是因为 “非我所创” 综合症在软件开发领域很是常见。症状包括经常重写一些常见的代码,很多开发人员都有这种症状。虽然理解特定库的内部结构及其实现,在很大程度上是好的并且很有必要的(也可以是一个很好的学习过程),但作为软件工程师,不断地处理相同的底层实现细节对个人的开发生涯是有害的。像 Spring 这种抽象框架的存在是有原因的,它将你从重...转载 2019-11-26 13:53:04 · 422 阅读 · 0 评论 -
史上最简单的 MySQL 教程
前 言数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。数据库1 定义数据库,可以简单的解...原创 2019-11-26 10:42:56 · 375 阅读 · 0 评论 -
从入门到放弃?零基础学java并不难,小白快速入门秘籍
很多同学在学Java前都会问这个问题:Java到底难不难学?本文小编就和大家唠唠这个事。74%的人认为不难有人曾经做过统计,询问500多已经参加工作的 Java开发者,“学习java是否困难?”有74%的人认为不难,说难学的仅占26%,那么这74%全部都是聪明人,智商比普通人高吗?显然不是的。说到底Java,它只是一种语言,仅此而已。跟我们平时学习母语,英语并无不同,只是他的适用对象是计算...原创 2019-11-26 10:36:42 · 334 阅读 · 0 评论 -
【Java基础内容总结】Java基础看这个就足够了
一、创建第一个工程打开Eclipse,创建HelloWorld程序打开Eclipse选择菜单 File --> New --> Java Project新建工程填写工程名称为HelloWorld右键工程名创建类输入代码public class HelloWorld { public static void main(String[] args) { S...转载 2019-11-25 10:54:38 · 216 阅读 · 0 评论 -
2019年IT人必看技能需求排名,Java第二,Python第三,第一竟是它
2019年IT人才必备十大技能,你知道吗?分别是云计算、HTML前端、Python、人工智能、大数据、区块链、网络安全、unity游戏开发、Java、全链路UI设计。在竞争激烈的今天,掌握紧俏技术,才是立于不败之地的制胜法宝。我国计算机行业岗位缺口巨大,北上广深等一线城市更是开出巨额薪资以此招揽优秀人才,从编程语言的热度来看Python位居榜首,但Java仍是企业招聘最为重视的语言,此外C/C++...原创 2019-11-22 10:11:37 · 657 阅读 · 0 评论 -
消灭 Java 代码的“坏味道”
阿里妹导读:代码中的"坏味道",如"私欲"如"灰尘",每天都在增加,一日不去清除,便会越累越多。如果用功去清除这些"坏味道",不仅能提高自己的编码水平,也能使代码变得"精白无一毫不彻"。这里,一直从事Java研发相关工作的阿里高级地图技术工程师王超,整理了日常工作中的一些"坏味道",及清理方法,供大家参考。让代码性能更高需要 Map 的主键和取值时,应该迭代 entrySet()...转载 2019-11-21 15:55:59 · 161 阅读 · 0 评论 -
设计模式(Java语言)- 简单工厂模式
简单工厂模式又称为静态工厂模式,属于设计模式中的创建型模式。简单工厂模式通过对外提供一个静态方法来统一为类创建实例。简单工厂模式的目的是实现类与类之间解耦,其次是客户端不需要知道这个对象是如何被创建出来的,只需要调用简单工厂模式的方法来统一创建就可以了,从而明确了各个类的职责。 一、创建简单工厂模式的步骤 第一步:声明一个抽象类(接口),以及对应的抽象方法,由实现类分别去实现这个方法。...原创 2019-11-21 09:51:20 · 158 阅读 · 0 评论 -
Java八大优势,这就是你选择它的理由!
如今互联网蓬勃发展,继Java、C++、php后也不断涌现出了许多新的编程语言,例如Python、Google Go、Apple's Swift和Rust。有许多可行且可靠的编程语言供你选择,每种语言都有各自的优点和缺点。特别是Python,因为简单易学的优势,大有后来居上的趋势。那么问题来了,为什么现在学习Java依然如此必要?一、Java广受欢迎...原创 2019-11-20 14:30:15 · 423 阅读 · 0 评论 -
2019 Java发展趋势报告:Java老矣,Java正年轻
Java 已经是一门具有 20 多年历史的老牌语言,雄霸编程语言排行榜榜首多年的 Java 目前也面临着越来越大来自新兴语言的挑战和使用者们的批评。InfoQ 英文站的编辑们按照技术采用生命周期的理论对 Java 在 2019 的发展趋势做了分析,Java 老矣,Java 却仍年轻。本文要点近期要发布的 Java 13(非 LTS 版本)进入创新者阶段。Java 11(LTS 版本)进入早...转载 2019-11-20 14:23:01 · 247 阅读 · 0 评论 -
Java 9 逆天的十大新特性
在介绍 Java 9 之前,我们先来看看 Java 成立到现在的所有版本。1990 年初,最初被命名为 Oak;1995 年 5 月 23 日,Java 语言诞生;1996 年 1 月,第一个 JDK-JDK 1.0 诞生;1996 年 4 月,10 个最主要的操作系统供应商申明将在其产品中嵌入 Java 技术;1996 年 9 月,约 8.3 万个网页应用了 Java 技术来制作;1...转载 2019-11-20 14:11:36 · 152 阅读 · 0 评论 -
Java 性能优化:教你提高代码运行的效率
作者:五月的仓颉原文:cnblogs.com/xrq730/p/4865416.html来源:博客园我认为,代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因。然而为了解决这个错误,我们需要先自验证、再打包出待替换的class文件、暂停业务并重启,对于一个成熟的项目...原创 2019-10-29 18:41:26 · 345 阅读 · 0 评论 -
MySQL 性能优化之骨灰级,高阶神技
作者 | 惨绿少年链接 | https://clsn.io/clsn/lx287.html一、前言MySQL调优对于很多程序员而言,都是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。今天给大家讲解MyS...原创 2019-10-24 18:18:23 · 342 阅读 · 0 评论 -
苏宁Spring Cloud微服务脚手架工具vole实践分享
从事Java已经5年,目前在某互联网公司做就Java系统架构师,每天都会写一些技术文章,感兴趣的同事请关注我,谢谢为应对传统单体架构的缺陷,微服务架构被企业广泛应用。Spring Cloud 为开发人员提供了快速构建微服务的系列工具,但是并没有进行相关整合, vole 是在其基础上搭建的一套可以快速实现微服务的基础脚手架工具。1、传统单体架构的缺陷传统单体应用将所有功能的表示层、业...转载 2019-06-19 16:56:55 · 576 阅读 · 0 评论 -
Spring Cloud中如何保证各个微服务之间调用的安全性
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送一.背景微服务架构下,我们的系统根据业务被拆分成了多个职责单一的微服务。每个服务都有自己的一套API提供给别的服务调用,那么如何保证安全性呢?不是说你想调用就可以调...转载 2019-06-19 18:27:24 · 5137 阅读 · 0 评论 -
SpringCloud学习笔记-Eureka服务治理
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送关系调用:服务生产者启动时,向服务注册中心注册自己提供的服务。服务消费者启动时,向服务注册中心订阅自己需要的服务。注册中心会返回服务提供者的地址信息给消费者。消费者则...转载 2019-06-20 11:01:30 · 385 阅读 · 0 评论 -
springCloud学习1(集中式配置管理)
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送一、前言 在开发普通的 web 应用中,我们通常是将配置项写在单独的配置文件中,比如application.yml,application.properties,但是在微...转载 2019-06-21 15:22:21 · 381 阅读 · 0 评论 -
springCloud学习2(服务发现)
一、服务发现架构 服务发现架构通常具有下面 4 个概念: 服务注册:服务如何使用服务发现代理进行注册? 服务地址的客户端查找:服务客户端查找服务信息的方法是什么? 信息共享:如何跨节点共享服务信息? 健康监测:服务如何将它的健康信息传回给服务发现代理? 下图展示了这 4 个概念的流程,以及在服务发现模式实现中通常发生的情况: 通常服务实...转载 2019-06-21 16:48:42 · 139 阅读 · 0 评论 -
IntelliJ IDEA For Mac 快捷键
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送建议将 Mac 系统中与 IntelliJ IDEA 冲突的快捷键取消或更改,不建议改 IntelliJ IDEA 的默认快捷键。Mac键盘符号和修饰键说明⌘ Command...转载 2019-07-01 14:38:49 · 1456 阅读 · 0 评论 -
使用docker部署SpringCloud项目
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送准备工作JDK1.8Docker1.12.1CentOS7.01.CentOS7.0下JDK1.8的安装1、到Oracle官网下载好 jdk-8u181-linux-x64.tar...转载 2019-07-01 15:56:12 · 660 阅读 · 0 评论 -
ActiveMQ|客户端原理及源码分析
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送主要解决三个问题:1 客户端通过什么与服务端建立连接?2 客户端通过什么方式向服务端发送消息?3 用到的设计模式-策略模式1 客户端通过什么与服务端建立连接?客户端通过传输连接器(...转载 2019-06-26 11:39:13 · 490 阅读 · 0 评论 -
ActiveMQ基本详解与总结
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送MQ简介:MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它...转载 2019-06-26 19:49:29 · 585 阅读 · 0 评论 -
spring-cloud-kubernetes背后的三个关键知识点
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送概览总结下来有三个关键知识点需要深入理解:1、DiscoveryClient是个接口,对应的实现类是哪个?2、discoveryClient.getServices()方法取得了kub...转载 2019-06-26 20:34:46 · 1103 阅读 · 0 评论 -
Spring Cloud微服务架构浅析
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送在之前的文章中和大家分享过一些关于Spring Cloud微服务开发相关的文章,内容比较侧重于框架有关的开发技巧,没有读过的朋友可以在文末的推荐阅读中进行查看。而在后续的系列文章中小码哥打算...转载 2019-07-02 15:24:42 · 149 阅读 · 0 评论 -
Spring Cloud中的Eureka和Zookeeper的区别在哪?
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送做程序员的,对Spring和Cloud一定不会感到陌生如何才能实打实的消化它们呢接下来沃师傅将会告诉你,如何夯实Spring CloudCAP理论在总结两者的区别...转载 2019-06-24 16:33:17 · 3215 阅读 · 0 评论 -
消息驱动——Spring Cloud Stream
在进入正题之前,我们先来设想一个场景。有两个人在对话,其中一个人问了另一个人一个问题,这个问题比不简单,得出正确答案需要花点时间。那么问题来了,问问题的一方,在对方给出答案之前,会怎么做呢?是一直做在那里等呢,还是去做其它待会必须去做的事呢,比如boss昨天才交代今天解决的bug;等到对方回复后,再根据回复的内容继续谈话或者做其它。如果是我,我会选择第二种(我还是很敬业的);当然若对方是美女,那我...转载 2019-07-08 18:52:19 · 545 阅读 · 0 评论 -
My SQL 事务基础理论
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送书籍推荐《SQL基础教程(第2版)》 (入门级) 《高性能MySQL : 第3版》 (进阶)常见问题总结存储引擎一些常用命令查看MySQL提供的所有存储引擎mys...原创 2019-07-03 15:04:03 · 191 阅读 · 0 评论 -
深入学习Redis:集群
写的时间有点长,喜欢的朋友点赞关注收藏素质三连,谢谢前言Redis集群解决了上述问题,实现了较为完善的高可用方案。本文将详细介绍集群,主要内容包括:集群的作用;集群的搭建方法及设计方案;集群的基本原理;客户端访问集群的方法;以及其他实践中需要的集群知识(集群扩容、故障转移、参数优化等)。一、集群的作用集群,即Redis Cluster,是Redis 3.0开始引入的分布式存储方案。...转载 2019-07-03 19:08:00 · 163 阅读 · 0 评论 -
Java资源大全中文版
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,关注我,免费分享Java基础教程,以及进阶的高级Java架构师教程,全部免费送古董级工具这些工具伴随着Java一起出现,在各自辉煌之后还在一直使用。Apache Ant:基于XML的构建管理工具。cglib:字节码生成库。GlassFish:应用服务器,由Orac...转载 2019-06-28 16:55:18 · 835 阅读 · 0 评论 -
Spring Cloud Gateway 5 分钟快速指南
API Gateway 是微服务架构中最常用的架构模式之一,在 Spring Cloud 全家桶中也存在多种选择。除了同样出自 Netflix 的 Zuul 和它的后继者 Zuul2,还有出自自家的 Spring Cloud Gateway。Zuul 作为一款「历史悠久」的 API Gateway 框架,经历了 Netflix 巨大流量的考验,而时间也证明了它的稳定可靠。同时 Spring B...转载 2019-07-09 18:40:45 · 155 阅读 · 0 评论 -
8种常见SQL错误用法
1、LIMIT 语句分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。SELECT * FROM operation WHERE type = 'SQLStats' AND name = 'S...转载 2019-07-04 16:28:46 · 253 阅读 · 0 评论 -
MyBatis基础搭建及架构概述
MyBatis 是什么?MyBatis是第一个支持自定义SQL、存储过程和高级映射的类持久框架。MyBatis消除了大部分JDBC的样板代码、手动设置参数以及检索结果。MyBatis能够支持简单的XML和注解配置规则。使Map接口和POJO类映射到数据库字段和记录。下面我们通过一个简单的项目搭建来带你认识一下MyBatis的使用和一些核心组件的讲解。MyBatis 项目构建为了快速构建一个...转载 2019-07-10 18:07:11 · 128 阅读 · 0 评论 -
SpringBoot+MyBatis+MySQL读写分离实战
引言读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做。因此,一般来讲,读写分离有两种实现方式。第一种是依靠中间件(比如:MyCat),也就是说应用程序连接到中间件,中间件帮我们做SQL分离;第二种是应用程序自己去做分离。这里我们选择程序自己来做,主要是利用Spring提供的路由数据源,以及AOP然而,应用...转载 2019-07-10 18:39:02 · 113 阅读 · 0 评论 -
一次性教你彻底理解 Spring容器和应用上下文
给自己打个广告,我从事Java行业接近10年了,目前在某互联网公司做Java架构师,现在免费分享Java架构文章,技术经验,感兴趣的朋友可以关注我,文末有彩蛋。有了Spring之后,通过依赖注入的方式,我们的业务代码不用自己管理关联对象的生命周期。业务代码只需要按照业务本身的流程,走啊走啊,走到哪里,需要另外的对象来协助了,就给Spring说,我想要个对象——于是Spring就很贴心的给你个对象...转载 2019-07-05 16:17:40 · 151 阅读 · 0 评论 -
镜像的分层特性
在说docker的文件系统之前,我们需要先想清楚一个问题。我们知道docker的启动是依赖于image,docker在启动之前,需要先拉取image,然后启动。多个容器可以使用同一个image启动。那么问题来了:这些个容器是共用一个image,还是各自将这个image复制了一份,然后各自独立运行呢?我们假设每个容器都复制了一份这个image,然后各自独立运行,那么就意味着,启动多少个容器,就需要...转载 2019-07-15 15:40:22 · 759 阅读 · 0 评论 -
Jenkins+GitLab+Docker+SpringCloud实现可持续自动化微服务
现有混合云平台的场景下,即有线下和线上的环境,又有测试与正式的场景,而且结合了Docker,导致打包内容有所区分,且服务的发布流程复杂起来,手工打包需要在编译阶段就要根据环境到处更改配置,因此纯手工发布增加了实施的难度,需要一个统一的适应各种环境部署的方案。基于微服务的发布流程 手动/自动构建 -> Jenkins 调度 K8S API ->动态生成 Jenkins Slave...转载 2019-07-15 15:51:08 · 306 阅读 · 0 评论 -
告诉你 38 个 MySQL 数据库的小技巧
无论是运维、开发、测试,还是架构师,数据库技术是一个必备加薪神器,那么,一直说学习数据库、学 MySQL,到底是要学习它的哪些东西呢?01如何快速掌握 MySQL?培养兴趣兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率。当然学习 MySQL 5.6 也不例外。夯实基础计算机领域的技术非常强调基础,刚开始学习可能还认识不到这一点,随着技术应用的深入,只有有着扎实的基础功...转载 2019-07-11 11:47:31 · 123 阅读 · 0 评论 -
docker发布项目的一般性步骤
准备准备服务器一台或者多台。本文以一台为例操作,如果多台,步骤类似,注意配置的ip和端口号即可。服务器操作系统需要是linux。本文中服务器的操作系统为CentOS 7.6 64位。一个调皮的项目。本文中的项目是基于spring cloud框架的多个微服务组成的项目。XShell上传文件工具。清醒的头脑。安装docker升级本地yum包yum update安...原创 2019-07-11 14:46:08 · 6560 阅读 · 0 评论 -
springboot入门
前言本文的主要内容:事务处理Docker安装及常用命令接入Redis缓存及配置Session整合MongoDB配置开发与生产环境部署项目到Docker上事务处理关于事务,可以简单理解为,当执行多条数据操作时,能确保每条操作能同时执行成功,否则有一条失败就会回滚前面所有执行成功的操作,保证一致性。下面我们来做一个简单的例子。@Servicepublic class MyUser...转载 2019-07-15 20:21:59 · 183 阅读 · 0 评论 -
一步步了解 Docker 存储驱动
镜像的分层特性在说docker的文件系统之前,我们需要先想清楚一个问题。我们知道docker的启动是依赖于image,docker在启动之前,需要先拉取image,然后启动。多个容器可以使用同一个image启动。那么问题来了:这些个容器是共用一个image,还是各自将这个image复制了一份,然后各自独立运行呢?我们假设每个容器都复制了一份这个image,然后各自独立运行,那么就意味着,启...转载 2019-07-11 16:20:16 · 126 阅读 · 0 评论