Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 文章目录 搭建服务注册中心: 注册服务提供者: 高可用注册中心: 搭建服务注册中心: pom文件如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h…
Spring Cloud 学习 之 Spring Cloud Eureka(源码分析) Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 文章目录 客户端(以之前搭建的[客户端](https://blog.csdn.net/qq_41907991/article/details/89611301)demo为例): Region,Zone,ServiceUrls: 服务注册: 服务获取与服务续约: 注册中心的处理: 客户端(以之前搭建…
1. Spring Boot简介 初次接触Spring的时候,我感觉这是一个很难接触的框架,因为其庞杂的配置文件,我最不喜欢的就是xml文件,这种文件的可读性很不好.所以很久以来我的Spring学习都是出于停滞状态的. 不过这种状态在我接触了Spring Boot之后,就发生了改变.Spring官方可能也觉得庞杂的配置是一件很不优雅的事情,虽然加入了包扫描,但是也没有触及灵魂. Spring还有一个问题就是依赖的冲突问题,这个对我这种半道出家的程序员来说更是痛苦至极. 还好,所有的痛苦都被Spr…
1.准备数据库环境 # 创建数据库 CREATE DATABASE IF NOT EXISTS zifeiydb DEFAULT CHARSET utf8 COLLATE utf8_general_ci; use zifeiydb; # 创建一个名为tb_user的表 CREATE TABLE tb_user ( id int(32) PRIMARY KEY AUTO_INCREMENT, username varchar(32), address varchar(256) ); # 插入3条数…
Spring Cloud Config 参考个人项目 参考个人项目 : (希望大家能给个star~) https://github.com/FunriLy/springcloud-study/tree/master/%E6%A1%88%E4%BE%8B5 什么是 Spring Cloud Config? 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储.Git以及Subversion. 场景介绍:在一个 Application 中,很经常需要连接资源和其它应用,…
纸上得来终觉浅,绝知此事要躬行 文章大纲 什么是spring 传统Java web应用架构 更强的Java Web应用架构--MVC框架 Spring--粘合式框架 spring的内涵 spring核心 JavaBean 应用上下文 IoC/DI spring框架组成 spring还可以做什么 什么是Spring Spring框架是Java平台的开源的全栈应用程序框架和控制反转容器实现. 传统的Java Web应用架构 传统的Java web框架一般分为两层:Contrller-Model. 控…
Spring Security Spring Security 是 Spring Resource 社区的一个安全组件.在安全方面,有两个主要的领域,一是"认证",即你是谁:二是"授权",即你拥有什么权限,Spring Security 的主要目标就是在这两个领域 Spring OAuth2 OAuth2 是一个标准的授权协议,允许不同的客户端通过认证和授权的形式来访问被其保护起来的资源 OAuth2 协议在 Spring Resource 中的实现为 Spring…
1.Bean 的配置 Spring可以看做一个大型工厂,用于生产和管理Spring容器中的Bean,Spring框架支持XML和Properties两种格式的配置文件,在实际开发中常用XML格式的配置文件.XML配置文件的跟标签是<beans>,<beans>中包含了多个<bean>子元素,每个<bean>元素定义一个Bean,并描述Bean如何被装配到Spring容器中.<bean>元素的常用属性及其子元素说明如下: id属性:Bean在Bea…
1.Spring IOC的基本概念 IOC(Inverse of Control)反转控制的概念,就是将原本在程序中手动创建对象的控制权,交由Spring框架管理.当某个Java对象(调用者)需要调用另一个Java对象(被调用者)时,在传统编程模式下,调用者通常会采用“new 被调用者”的代码方式来创建对象.这种方式会增加调用者与被调用者之间的耦合性,不利于后期代码的升级与维护.当Spring框架出现后,对象的实例不再由调用者来创建,而是由Spring容器来创建.Spring容器会负责控制程序之…
Spring Boot版本:2.1.4.RELEASE 启用: spring-boot-actuator模块提供了一系列的用于监控的端点.最简单的开启这个功能的方法就是,在pom文件中添加如下的依赖. <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifac…
最近一段时间一直在学习Spring Boot,刚进的一家公司也正好有用到这个技术.虽然一直在学习,但是还没有好好的总结,今天周末先简单总结一下基础知识,等有时间再慢慢学习总结吧. Spring Boot 概述 首先,Spring Boot是一个框架,主要理念就是消除项目中大量的配置文件,使项目更加短小精悍.我们知道 java 的开发显得很笨重:繁多的配置.开发效率低下.复杂的布署流程以及第三方技术集成难度大.所以说,spring boot就是在此环境下产生的. Spring Boot 的核心功能…
spring boot 框架整合 thymeleaf spring boot 的官方文档中建议开发者使用模板引擎,避免使用 JSP.因为若一定要使用 JSP 将无法使用. 注意:本文主要参考学习了大神程序员DD的博客. 附上,相应链接:http://blog.didispace.com/springbootweb/ 关于 thymeleaf 模板引擎的介绍 thymeleaf 学习笔记 同时,模板引擎默认的模板配置路径为:src/main/resources/templates. Spring…
什么是Spring Boot Spring Boot正是在这样的一个背景下被抽象出来的开发框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速.敏捷地开发新一代基于Spring框架的应用程序.也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具.同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的…
spring boot 各版本中使用 log4j2 记录日志 前言 Spring Boot中默认日志工具是 logback,只不过我不太喜欢 logback.为了更好支持 spring boot 框架,我使用 log4j. spring boot 各版本与 log4j 的支持情况 1. spring boot 1.2.X 版本 spring boot 1.2.X 版本一般建议使用默认日志工具(logback),也可以使用 log4j. 但,注意的是:Spring Boot 1.2.4.RELEA…
Spring Boot对JMS(Java Message Service,Java消息服务)也提供了自动配置的支持,其主要支持的JMS实现有ActiveMQ.Artemis等.这里以ActiveMQ为例. 一.使用内嵌的ActiveMQ 1.添加ActiveMQ起步依赖 在项目的pom.xml中添加ActiveMQ的依赖信息: <dependency> <groupId>org.springframework.boot</groupId> <artifactId&…
一.添加Redis缓存 1.添加Redis起步依赖 在pom.xml中添加Spring Boot支持Redis的依赖配置,具体如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.4.7.RELEASE</version> </…
Spring Boot Admin 用于管理和监控一个或者多个 Spring Boot 程序 新建 spring-boot-admin-server pom <parent> <artifactId>spring-cloud-parent</artifactId> <groupId>com.karonda</groupId> <version>1.0.0</version> </parent> <mode…
MyBatis提供了多个注解如:@InsertProvider,@UpdateProvider,@DeleteProvider和@SelectProvider,这些都是建立动态语言和让MyBatis执行这些语言使用基于注解的mybatis的方法,还是比较好用的. 一 首先是定义mapper, @ SelectProvider去声明类(CitySqlProvide)和方法名(findByState), public interface CityMapper { @SelectProvider(ty…
Spring Cloud Config(续) 个人参考项目 个人博客 : https://zggdczfr.cn/ 个人参考项目 : (整合到上一个案例中)https://github.com/FunriLy/springcloud-study/tree/master/%E6%A1%88%E4%BE%8B5 为 Config Client 配置配置刷新 场景介绍 在上一个案例,我们成功配置了 Config Server 与 Config Client.依次启动两个项目. * 访问API接口 ht…
​ 版本号: ​ Spring Boot:2.1.3.RELEASE ​ Spring Cloud:G版 ​ 开发工具:IDEA 搭建配置中心,这里我们搭建一个简单版的就行 POM: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/…
文章目录 1.负载均衡: 2.RestTemplate详解: xxxForEntity/xxxForObject:主要介绍get跟post exchange: execute源码分析: 1.负载均衡: ​ 负载均衡在系统架构中是一个非常重要,并且不得不去实施的内容.因为负载均衡是对系统高可用,网络压力的缓解和处理能力扩容的重要手段之一.我们通常说的负载均衡都指的是服务端负载均衡,其中分为硬件负载均衡和软件负载均衡.硬件负载均衡主要通过在服务器节点之间安装专门用于负载均衡的设备,而软件负载均衡则是…
今天测了一下Ribbon的重试跟超时机制,发现进行的全局超时配置一直不生效,配置如下: ribbon: #单位ms,请求连接的超时时间,默认1000 ConnectTimeout: 500 #单位ms,读取数据的超时时间,默认1000 ReadTimeout: 3000 #对所有操作请求都进行重试 #设置为true时,会对所有的请求进行重试,若为false只会对get请求进行重试 #如果是put或post等写操作, #如果服务器接口没做幂等性,会产生不好的结果,所以OkToRetryOnAllO…
Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 我们还是从流程图入手: 创建HystrixCommand或者HystrixObservableCommand对象,在上篇文章我们已经讲过了,这里主要用的是命令模式 命令执行 从图中我们可以看到一共有4种命令的执行方式,而Hystrix在执行时会根据创建的Command对象以及具体的情况来选择一个执行,其中HystrixCommand实现了下面的执行方式 execute():同步执行,…
Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 文章目录 前述: 快速入门: 命令模式: RxJava: 前述: ​ 在微服务架构中,我们将系统拆分成了很多服务单元,各单元的应用间通过服务注册与订阅的方式互相依赖.由于每个单元都在不同的进行中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身的问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会因为等待…
Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 文章目录 分析: 总结: 分析: ​ 在上篇文章中,我们着重分析了RestTemplate,主要是因为,如果我们采用Ribbon进行服务间的调用的话,要用到这个类,现在我们就先来看看怎么使用RestTemplate配合Ribbon进行服务间的调用. @SpringBootApplication @EnableDiscoveryClient @Slf4j public class Sp…
Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 文章目录 Eureka服务治理基础架构的三个核心要素: 服务治理机制: 服务提供者: 服务消费者: 服务注册中心: Eureka服务治理基础架构的三个核心要素: **服务注册中心:**Eureka提供的服务端,提供服务注册与发现功能,也就是我们之前实现的eureka-server **服务提供者:**提供服务的应用,可以是Spring Boot应用,也可以是其他技术平台且遵循Eure…
Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 前述: ​ 服务治理可以说是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册于发现.为什么我们在微服务架构中那么需要服务治理模块呢?微服务系统没有它会有什么不好的地方吗? ​ 在最初构建微服务系统的时候可能服务并不多,我们可以通过做一些静态的配置来实现服务的调用.比如有两个服务A和B,其中服务A需要调用服务B来完成一个业务操作时,为了失效服务B的高可用,不论…
在实际开发过程中,每个服务都有大量的配置文件,例如数据库的配置.日志输出级别的配置等,而往往这些配置在不同的环境中也是不一样的.随着服务数量的增加,配置文件的管理也是一件非常复杂的事 在微服务架构中,需要有统一管理配置文件的组件,例如 Spring Cloud 的 Spring Cloud Config.阿里的 Diamond.百度的 Disconf.携程的 Apollo 等 新建 spring-cloud-config-server 从本地读取配置 pom <parent> <arti…
什么叫IoC 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup).通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它.也可以说,依赖被注入到对象中.` 高内聚低耦合可以说是软件技术形态的终极目标.用学术界的话来说,软…
AOP是什么? 面向切面编程 软件工程有一个基本原则叫做“关注点分离”(Concern Separation),通俗的理解就是不同的问题交给不同的部分去解决,每部分专注于解决自己的问题.这年头互联网也天天强调要专注嘛! 这其实也是一种“分治”或者“分类”的思想,人解决复杂问题的能力是有限的,所以为了控制复杂性,我们解决问题时通常都要对问题进行拆解,拆解的同时建立各部分之间的关系,各个击破之后整个问题也迎刃而解了.人类的思考,复杂系统的设计,计算机的算法,都能印证这一思想.额,扯远了,这跟AOP有…