自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

转载 springboot热部署实战

每次代码改动后都需要重新手动Run项目,心累,在网上找了下,发现SpringBoot提供了热部署的方案,改动代码后自动编译打包,现在将热部署的配置方法记下来:第一步:在pom.xml中添加依赖,导入spring-boot-devtools<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools&lt

2020-06-19 14:59:42 46

转载 探究springboot流行的因素以及能解决什么问题

一、springboot的发展2003 年 Rod Johnson 和同伴在此框架的基础上开发了一个全新的框架命名为 Spring ,据 Rod Johnson 介绍 Spring 是传统 J2EE 新的开始。随后 Spring 发展进入快车道。2004 年 03 月,1.0 版发布。2006 年 10 月,2.0 版发布。2007 年 11 月更名为 SpringSource,同时发布了 Spring 2.5。2009 年 12 月,Spring 3.0 发布。2013 年 12 月,Piv

2020-06-19 14:42:33 265

转载 JAVA设计模式:简单工厂模式-工厂模式-抽象工厂模式

概述一直不清楚这三个工厂模式的区别,于是看了几篇博客,想着把看到的和自己的理解梳理一下,于是有了这篇博客。我认为学习设计模式尽量结合平时的编码习惯以及一些优秀框架的源码学习,前者让我们关注设计模式如何改进编码风格,例如写web项目一般分service,serviceImpl,然后实例的引用是service,而不是serviceImpl,这是利用了oop的多态,后者很考验框架设计人员能力,spring自从设计以来都是在基础上不断扩展,这正是由于spring运用了大量设计模式,在刚开始功能简单和模块少的时候

2020-06-18 16:00:31 37

转载 一文章讲透分布式存储

为什么要使用分布式存储?为了简化用户端的使用,提供了一个分布式缓存系统来提供对此分布式存储系统的访问接口以及本地数据缓冲以降低网络压力。分布式存储简介分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

2020-06-18 15:49:30 87

原创 分布式架构之CDN加速文件访问

1.简介CDN加速大家应该都不陌生,至少是有听说过的,其实我们应该每天都会无形中使用到它,大多数比较优秀的互联网公司都会用到它来提高网站的响应速度,比如阿里,腾讯等.CDN是Content Delivery Network的简称,即“内容分发网络”的意思,一般是指网站加速或者用户下载资源加速.简单来说,CDN相当于一个中间代理,原来我们需要请求某个网址比如www.baidu.com,请求会直接发送至百度的服务器上,假如请求者在新疆,但百度的服务器在北京,这样的话请求和响应都会受距离影响慢一些,但有了

2020-06-18 14:58:55 231

转载 618,P7架构师带你探索淘宝服务端高并发分布式架构演进之路

1. 概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2. 基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍:分布式系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上高可用系统中部分节

2020-06-18 11:19:31 83

转载 设计模式之 - 策略模式

一、什么是策略模式策略模式:它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式的变化,不会影响到使用算法的客户。我们来看下策略模式的UML图:二、策略模式的构成 公共策略:定义一个接口作为公共策略,所有的算法规则实现该接口; 具体策略:封装了具体的算法和行为,继承于公共策略; 封装类:进行二次封装,维护对公共策略对象的引用; 三、实例演示业务场景:现在我们在做一个商场的优惠活动,这个活动根据节日的不同也会调整相应的活动规则,比如五一黄..

2020-06-17 15:14:32 29

转载 List-ArrayList集合基础增强底层源码分析

List系列特点:元素有序可重复有序指的是元素的添加顺序,也就是说,元素被第一个存进去的时候,它就在第一位,这就是list集合的元素添加顺序;通常情况下我们所说的有序有两个概念,第一个是添加顺序,第二个是大小顺序(实际上就是元素值的大小)List下面重点关注两个实现类分别是:ArrayList LinkedListArrayListArrayList底层实现是数组,既然是数组,那它就必然有数组的特点:查找快,增删慢;这里简单解释一下:首先我们建立一个数组,一旦建立一个数.

2020-06-17 15:10:29 21

转载 Java集合:HashMap底层实现和原理(源码解析)

一、先来熟悉一下我们常用的HashMap:1、概述HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null 建和null 值, 因为key不允许重复,因此只能有一个键为null,另外HashMap不能保证放入元素的顺序,它是无序的,和放入的顺序并不能相同。HashMap是线程不安全的。2、继承关系public class HashMap<K,V>extends AbstractMap<K,V> implements Map<K,V

2020-06-17 15:00:12 32

转载 高并发解决方案

我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。举个例子,我们假设处理一个业务请求平均响应时间为100ms,同时,系统内有20台Apache的Web服务器,配置MaxClients为500个(表示Apache的最大连接数目)。那么,我们的Web系统的理论峰值QPS为(理想化的计算方式):20*500/0.1 = 100000 (10万QPS)咦?我们的系统似乎很强大,1秒钟可以处理完10万的.

2020-06-17 14:45:08 165

转载 Spring AOP 创建代理的源码解析

前言在上篇文章Spring AOP 注解方式源码解析中已经获取到了 bean 的对应增强器,之后,就可以创建对应的代理了,Spring AOP 底层使用的是 JDK 动态代理和 CGLIB 的代理,在什么情况下使用JDK动态代理,什么时候使用 CGLIB 代理呢,下面通过源码来看一下// AbstractAutoProxyCreator.javaprotected Object wrapIfNecessary(Object bean, String beanName, Object cach..

2020-06-17 14:18:38 86 1

转载 Spring IOC 源码解析

Spring IOCspring IOC 本质上就是一个创建一个类的实例工厂,并且对类的实例进行管理bean定义对象BeanDefinition是Bean定义对象的一个顶级接口,定义了所有Bean定义对象的一部分行为,方便bean工厂来创建bean实例AbstractBeanDefinition定义了所有Bean定义对象的公共属性,例如scopelazyInitinitMethodNamefactoryBeanName等等GenericBeanDefinition...

2020-06-17 14:15:04 26

转载 SpringMVC 源码解析

作为一个javaer,Spring、SpringMVC目前是一项必不可少的技能了。SpringMVC在struts2之后异军突起,现如今已经完全超过了struts2,成为了javaweb开发的主流框架。今天我们基于Spring5.0对SpringMVC容器初始化过程、DispatcherServlet初始话过程、DispatcherServlet处理请求流程三个方面进行分析。WebApplicationContextWebApplicationContext结构我们可以看到WebApplic

2020-06-17 14:09:30 36

转载 看完这些大厂Java后端面试题,我能吊打大厂面试官了吗?

面试之前先刷几篇面经,或者做几道热门面试题,想必是大家很熟悉的一种复习方式了,就像我们当年经常做五年高考三年模拟一样。但是可不要把面试题和面经当成你的主要复习方式,它只是锦上添花,绝非雪中送炭!欢迎关注专栏:Java架构技术进阶。里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦。一、面经的意义面经是别人的面试经验,所谓前车之鉴,后事之师。我们可以通过面筋对自己的不足查缺补漏,却不能把这些面试题等同于我们所要掌握的知识点。原因很简单,两篇面经可能会有很多的重复知识点,10..

2020-06-17 13:59:40 120

转载 Spring源码解析之Spring事务源码解析(二)

在上一篇文章Spring源码解析之Spring事务源码解析(一)@EnableTransactionManagement注解解析中,我们阅读了Spring事务功能的注解@EnableTransactionManagement的实现逻辑在进行接下来的源码解析之前首先来简单了解一下传统的jdbc应用事务操作开启事务 save、update、delete等操作 出现异常进行回滚 正常情况提交事务Spring事务管理Spring事务实现是基于@Transactional注解的SpringAO

2020-06-17 13:55:03 35

转载 Spring源码解析之Spring事务源码解析(一)

Spring事务@EnableTransactionManagement注解源码解析首先在配置类中添加开启事务的注解@EnableTransactionManagement,事务开始是通过@EnableTransactionManagement注解启用的,所以此次源码解析也从此注解开始@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Import({TransactionManagement

2020-06-17 13:42:50 32

转载 SpringBoot 整合 redis 踩坑日记

SpringBoot 中除了了对常用的关系型数据库提供了优秀的自动化测试以外,对于很多 NoSQL 数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, Elasticsearch, Solr 和 Cassandra。01 整合redisRedis是一个速度非常快的非关系型数据库(non-relational database),它可以存储键(key)与5种不同类型的值(value)之间的映射(mapping),可以将存储在内存的键值对数据持久化到硬盘。可以使用复制特性来扩展读..

2020-06-16 16:53:00 598

转载 spring boot集成dubbo,Spring boot +Dubbo,简易的配置方式

刚做完一个基于motan的项目不久,便去看看dubbo的新特性了,dubbo自上年9月恢复更新到现在大概半年多,发现已经有和spring boot集成的配置了。个人喜欢的配置方式优先级一般都是资源文件>Bean>xml,因感觉而言Bean的配置方式更适合让人了解源码,而资源文件则是最简便,看了下还好之前写dubbo的demo时没有写文章,因为我一般都比较喜欢写可以通过最简易的方式达到目的的demo文章,而且也不会也重复的文章,如果之前写了就只有通过Bean配置而没有application资源文件

2020-06-16 16:39:36 228

转载 一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事

微服务架构微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物。互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,在这种情况下,如何从系统架构的角度出发,构建灵活、易扩展的系统,快速应对需求的变化;同时,随着用户的增加,如何保证系统的可伸缩性、高可用性,成为系统架构面临的挑战。如果还按照以前传统开发模式,开发一个大型而全的系统已经很难满足市场对技术的需求,这时候分而治之的思想被提了出来,于是我们从单独架构发展到分布式架构,又从分

2020-06-16 15:56:03 53

转载 一文读懂spring boot 和微服务的关系

Spring Boot 和微服务没关系, Java 微服务治理框架普遍用的是 Spring Cloud。Spring Boot 产生的背景,是开发人员对 Spring 框架越来越复杂的配置吐槽越来越多,Pivotal 设计 Spring Boot 用来简化新 Spring 应用的初始搭建以及开发过程。正如题主感觉的,Spring Boot 在简化配置、打包和集成第三方工具方面确实做得很好,可以减低 Spring 开发人员的入门门槛。Spring Cloud 是 Pivotal 推出的基于Spring

2020-06-16 15:48:04 58

转载 SpringBoot之快速入门SpringBoot

前言在没有SpringBoot之前,我们搭建的是SSM(SpingMVC+Spring+Mybatis)项目,搭建SSM项目的时候,我们要经过一系列的繁琐配置,例如:application,web.xml,spring-servlet等等的配置信息。如果我们这些配置出现一点点的错误。那么面临的就是寻找一大堆的Bug,而且还出现一些我们看难以看懂的异常,对于English不好的同志来说,这是内伤。那么SpringBoot到底解决了什么问题呢?简单来说,SpringBoot主要简化了我们的配置操作,将那些我

2020-06-16 15:38:42 47

转载 redis学习----Redis入门

RedisRedis 是一种基于键值对的NoSQL 我们用它来做数据缓存,减少数据库的压力。我们可以进入一下网站对redis进行学习 http://try.redis.io/Redis的数据类型Redis中所有的数据都是以key/value的方式存储的,我们所说的数据类型指的是value, 在Redis中有一下集中数据类型StringHashListSetZSet数据操作由于Redis是键值存储。我们可以使用set来进行数据的存储,使用get进行数据的读取,使用 del 对数据进行删除

2020-06-16 15:22:20 40

转载 Java程序员开发5年,该如何制定自己的职业规划

很多小伙伴从一踏上JAVA程序员这条路开始,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!整日深陷在创造Bug和修改Bug的无限循环中,上班来得最早的是你,下班走得最晚的还是你,经常回家之后还得继续加班,偶尔遇上赶项目的时候还要在公司打地铺。但是过了几年之后却发现自己依然奋斗在开发的第一线,依然是开发团队中可有可无的一角。相信很多人都听说过一万小时定律,即要成为某个领域的专家,需要一万小时,按比例计算就是:如果每天工作八个小时,一周工作五天,且不算上加班

2020-06-16 15:15:48 410

原创 SpringBoot之SpringBoot整合MyBatis

SpringBoot之SpringBoot整合MyBatis我们知道任何一个网站的数据大多数都是动态的,也就是说数据是从数据库提取出来的,而非静态数据,那么我们接下来就是要连接数据库,现在我们经常使用的数据库的种类可以大致分为两种,关系型数据库和非关系型数据库,而MySQL数据库,Oracle数据库SQL Server数据库等都是关系型数据库,而Redis,Mongodb等都是非关系型数据库。本章目标1.使用SpringBoot和MyBatis通过注解的方式操作数据库2.使用SpringBoot和M

2020-06-16 14:29:08 88

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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