Spring ioc

Spring IoC[转] 1.依赖倒置 ​ 假设我们设计一辆汽车:先设计轮子,然后根据轮子大小设计底盘,接着根据底盘设计车身,最后根据车身设计好整个汽车。这里就出现了一个“依赖”关系:汽车依赖车身,车身依赖底盘,底盘依赖轮子。 ​ 这种常规设计面临的挑战:这样的设计看起来没问题,但是可维护性却很低。 ​ 假设设计完工之后,上司却突然说根据市场需求的变动,要我们把车子的轮子设计都改大一码。这下我们就蛋疼了:因为我们是根据轮子的尺寸设计的底盘,轮子的尺寸一改,底盘的设计就得修改;同样因为我们是根据底盘设计的车身,那么车身也得改,同理汽车设计也得改——整个设计几乎都得改! ​ 现在换一种思路。我们先设计汽车的大概样子,然后根据汽车的样子来设计车身,根据车身来设计底盘,最后根据底盘来设计轮子。这时候,依赖关系就倒置过来了:轮子依赖底盘, 底盘依赖车身, 车身依赖汽车。 ——依赖倒置 ​...

1 minute read

短信项目回顾

短信项目回顾 短信平台直接与通信运营商合作,拥有运行商内部最高优先级的“党政军”短信通道。 项目的刚需有:极速、稳定、扩展性强 1.开发流程 1.1.瀑布模型 1.2.接口文档 接口规范化(restful接口)、文档标准化 1.3.Devops 运行协同工具,提升效率 2.技术栈 3.系统设计 1.架构 2.层次 3.功能需求 4.服务划分...

1 minute read

Hadoop搭建

Hadoop 环境搭建(基于Hadoop 2.0) 1.上传Hadoop包 将包上传到/usr/lcoal目录下,并用tar -zxvf 命令解压 2.1单节点配置 安装单节点的Hadoop不需要任何配置,这种方式经常用来调试 ####2.2伪分布式配置 预备工作 修改静态IP 修改主机名和修改hosts文件(windows系统 & CentOS都要改)...

6 minute read

Xml&json解析

XML&JSON解析 一、dom4j解析XML 1.dom4j的接口 接口名 描述 Node 所有的节点,是Document、Element、Text、Attribute、Branch等的父类型 Branch 包含子节点的节点 Element XML元素 Document XML文档 Attribute XML元素的属性,属性是放在尖括号内的...

5 minute read

类加载机制

类加载机制 一 类加载机制 JVM类加载分为5个过程:加载,验证,准备,解析,初始化,使用,卸载,如下图所示: 下面来看看加载,验证,准备,解析,初始化这5个过程的具体动作。 1.1 加载 加载主要是将.class文件(并不一定是.class。可以是ZIP包,网络中获取)中的二进制字节流读入到JVM中。 在加载阶段,JVM需要完成3件事: 1)通过类的全限定名获取该类的二进制字节流; 2)将字节流所代表的静态存储结构转化为方法区的运行时数据结构; 3)在内存中生成一个该类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。 1.2 连接 1.2.1...

2 minute read

Mysql 索引及优化实战

MySQL 索引及优化 索引概念和作用 索引是一种使记录有序化的技术,它可以指定按某列/某几列预先排序,从而大大提高查询速度(类似于汉语词典中按照拼音或者笔画查找)。 索引的主要作用是加快数据查找速度,提高数据库的性能。 MySQL 索引类型 从物理存储角度上,索引可以分为聚集索引和非聚集索引。 1. 聚集索引(Clustered Index) 聚集索引决定数据在磁盘上的物理排序,一个表只能有一个聚集索引。 2. 非聚集索引(Non-clustered Index)...

4 minute read

Jvm gc回收算法

JVM GC回收算法 Java内存运行时区域,其中程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性。在这几个区域内不需要过多考虑回收的问题,因为方法结束或线程结束时,内存自然就跟随着回收了。 Java堆 和 方法区 则不一样,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样。我们只有在程序处于运行期间时才能知道会创建哪些对象,这部分内存的分配和回收都是动态的,垃圾收集器 所关注的是这部分内存。 (一) 对象生死判定 如何判断 Java中一个对象应该 “存活” 还是 “死去”,这是...

2 minute read

Spring boot项目改造成spring cloud一般过程

spring boot项目改造成spring cloud一般过程 1.注册中心的搭建 (五号标题) 2.spring boot项目改造(生产者) 2.1引入pom配置 <dependencies> <!-- 注册中心客户端 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>...

2 minute read