Spring Cloud 系列之 Spring Cloud Stream】的更多相关文章

上文中我们简单介绍了Spring和Spring Framework的组件,那么这些Spring Framework组件是如何配合工作的呢?本文主要承接上文,向你展示Spring Framework组件的典型应用场景和基于这个场景设计出的简单案例,并以此引出Spring的核心要点,比如IOC和AOP等:在此基础上还引入了不同的配置方式, 如XML,Java配置和注解方式的差异.@pdai Spring框架系列(2) - Spring简单例子引入Spring要点 Spring框架如何应用 设计一个S…
在对IoC有了初步的认知后,我们开始对IOC的实现原理进行深入理解.本文将帮助你站在设计者的角度去看IOC最顶层的结构设计.@pdai Spring框架系列(6) - Spring IOC实现原理详解之IOC体系结构设计 站在设计者的角度考虑设计IOC容器 Spring IoC的体系结构设计 BeanFactory和BeanRegistry:IOC容器功能规范和Bean的注册 BeanFactory定义了IOC 容器基本功能规范? BeanFactory为何要定义这么多层次的接口?定义了哪些接口…
上文,我们看了IOC设计要点和设计结构:紧接着这篇,我们可以看下源码的实现了:Spring如何实现将资源配置(以xml配置为例)通过加载,解析,生成BeanDefination并注册到IoC容器中的.@pdai Spring框架系列(7) - Spring IOC实现原理详解之IOC初始化流程 引入 如何将Bean从XML配置中解析后放到IoC容器中的? 初始化的入口 设置资源解析器和环境 设置配置路径 初始化的主体流程 初始化BeanFactory之obtainFreshBeanFactory…
上文,我们看了IOC设计要点和设计结构:以及Spring如何实现将资源配置(以xml配置为例)通过加载,解析,生成BeanDefination并注册到IoC容器中的:容器中存放的是Bean的定义即BeanDefinition放到beanDefinitionMap中,本质上是一个ConcurrentHashMap<String, Object>:并且BeanDefinition接口中包含了这个类的Class信息以及是否是单例等.那么如何从BeanDefinition中实例化Bean对象呢,这是本…
前文,我们分析了Spring IOC的初始化过程和Bean的生命周期等,而Spring AOP也是基于IOC的Bean加载来实现的.本文主要介绍Spring AOP原理解析的切面实现过程(将切面类的所有切面方法根据使用的注解生成对应Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor,为后续交给代理增强实现做准备的过程).@pdai Spring框架系列(9) - Spring AOP实现原理详解之AOP切面的实现 引入 aop配置标签的解析 config配置标签…
上文我们介绍了Spring AOP原理解析的切面实现过程(将切面类的所有切面方法根据使用的注解生成对应Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor).本文在此基础上继续介绍,代理(cglib代理和JDK代理)的创建过程.@pdai Spring框架系列(10) - Spring AOP实现原理详解之AOP代理的创建 引入 代理的创建 获取所有的Advisor 创建代理的入口方法 依据条件创建代理(jdk或cglib) 更多文章 引入 前文主要Spring…
我们在前文中已经介绍了SpringAOP的切面实现和创建动态代理的过程,那么动态代理是如何工作的呢?本文主要介绍Cglib动态代理的案例和SpringAOP实现的原理.@pdai Spring框架系列(11) - Spring AOP实现原理详解之Cglib代理实现 引入 动态代理要解决什么问题? 什么是代理? 什么是动态代理? 什么是Cglib? SpringAOP和Cglib是什么关系? Cglib代理的案例 pom包依赖 定义实体 被代理的类 cglib代理 使用代理 简单测试 Cglib…
上文我们学习了SpringAOP Cglib动态代理的实现,本文主要是SpringAOP JDK动态代理的案例和实现部分.@pdai Spring框架系列(12) - Spring AOP实现原理详解之JDK代理实现 引入 什么是JDK代理? JDK代理的案例 不需要maven依赖 定义实体 被代理的类和接口 JDK代理类 使用代理 简单测试 JDK代理的流程 ProxyGenerator生成代码 从生成的Proxy代码看执行流程 SpringAOP中JDK代理的实现 SpringAOP Jdk…
Spring Cloud Stream 是消息中间件组件,它集成了 kafka 和 rabbitmq .本篇文章以 Rabbit MQ 为消息中间件系统为基础,介绍 Spring Cloud Stream 的使用.如果你没有用过消息中间件,可以到 RabbitMQ 的官网看一下,或者参考这个 http://rabbitmq.mr-ping.com/.理解了消息中间件的设计,才能更好的使用它. 消息中间的几大应用场景 1.异步处理 比如用户在电商网站下单,下单完成后会给用户推送短信或邮件,发短信和…
很多的参数可以配置在application.properties或application.yml文件中 一.BANNER banner.charset=UTF-8 # Banner file encoding. banner.location=classpath:banner.txt # Banner file location. banner.image.location=classpath:banner.gif # Banner image file location (jpg/png ca…
github地址:https://github.com/AndyFlower/Spring-Boot-Learn/tree/master/spring-boot-nosql-redis 一.加入依赖到pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <…
对于传统关系型数据库来说,Spring Boot使用JPA(Java Persistence API)资源库提供持久化的标准规范,即将Java的普通对象通过对象关系映射(ORM)持久化到数据库中. 项目代码地址:https://github.com/AndyFlower/Spring-Boot-Learn/tree/master/spring-boot-database 一.使用MySQL是maven中的依赖配置 <dependency> <groupId>mysql</gr…
项目代码地址:https://github.com/AndyFlower/Spring-Boot-Learn/tree/master/Spring-boot-helloworld 一.Spring Boot优点 为Spring开发提供更加简单的使用和快速开发的技巧 具有开箱即用的默认配置功能,能根据项目依赖自动配置 具有功能更加强大的服务体系,包括嵌入式服务.安全.性能指标.健康检查等 绝对没有代码生成,可以不再需要XML配置,即可让应用更加轻巧和灵活 对于第三方技术的使用,提供了非常完美的整合…
本文是学习 Spring Boot 的一些准备知识. Spring Web MVC Spring Web MVC 的两个Context 如下图所示, 基于 Servlet 的 Spring Web MVC 启动时会创建两个上下文, 即 Servlet WebApplicationContext 和 Root WebApplicationContext. 前者是 DispatcherServlet引导创建的, 后者由 ServletContextListener 创建, 包含服务,数据库操作等非…
参考:Spring系列之Spring常用注解总结 (1) Resource 默认是byName的方式进行bean配置,@AutoWired默认是按照byType的方式进行装配bean的:(2)Component是所有受Spring管理的的通用形式(3)Controller是对应表现层的Bean也就是Action(4)Service对应是业务层的Bean;(5)Repository对应是数据访问层的Bean;(6)PostConstruct用于指定初始化方法: 传统的Spring做法是使用.xml…
一.前言 在日常开发中,spring极大地简化了我们日常的开发工作.spring为我们管理好bean, 我们拿来就用.但是我们不应该只停留在使用层面,深究spring内部的原理,才能在使用时融汇贯通. 这是spring原理系列的第一篇,本篇主要讲解spring容器中bean的生命周期.这是基础,先从全貌上了解spring bean的生命周期,有利于我们更好地深入理解bean的生命周期各阶段发生了什么. 二. spring bean生命周期 spring bean从出生到死亡经历如下历程: (1)…
前言 本文将从示例.原理.应用3个方面介绍spring data jpa. 以下分析基于spring boot 2.0 + spring 5.0.4版本源码 概述 JPA是什么? JPA (Java Persistence API) 是 Sun 官方提出的 Java 持久化规范.它为 Java 开发人员提供了一种对象/关联映射工具来管理 Java 应用中的关系数据.他的出现主要是为了简化现有的持久化开发工作和整合 ORM 技术,结束现在 Hibernate,TopLink,JDO 等 ORM 框…
1. TaskExecutor Spring异步线程池的接口类,其实质是java.util.concurrent.Executor Spring 已经实现的异常线程池: 1. SimpleAsyncTaskExecutor:不是真的线程池,这个类不重用线程,每次调用都会创建一个新的线程. 2. SyncTaskExecutor:这个类没有实现异步调用,只是一个同步操作.只适用于不需要多线程的地方 3. ConcurrentTaskExecutor:Executor的适配类,不推荐使用.如果Thr…
数据源 类型 javax.sql.DataSource javax.sql.XADataSource org.springframework.jdbc.datasource.embedded,EnbeddedDataSource Spring Boot 中的数据源 单数据源(官方推荐微服务使用单数据源) 数据库连接池 Apache Commons DBCP Tomcat DBCP 多数据源 实际生产中很可能会出现. 事务 Spring 中的事务通过PlatformTransactionManag…
Spring Boot的内置Servlet Container: Name Servlet Version Java Version Tomcat8 3.1 Java 7+ Tomcat7 3.0 Java 6+ Jetty 9.3 3.1 Java 8+ Jetty9.2 3.1 Java7+ Jetty8 3.0 Java 6+ Undertow1.3 3.1 Java 7+ Depency Management: 每个版本的Spring Boot都提供了一个依赖列表,这个列表包含了你可能通…
Config 是通过 PropertySource 提供. 这节的内容主要是探讨配置, 特别是 PropertySource 的加载机制. Spring Cloud 技术体系 分布式配置 服务注册/发现 路由 服务调用 负载均衡 短路保护 分布式消息 Spring 事件机制 设计模式 观察者模式(发布/订阅) API: java.util.Observable , java.util.Observer 发布者通过 observable.notifyObservers() 通知, 订阅者是被动感知…
前言 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步.Swagger 让部署管理和使用功能强大的API从未如此简单. 一.修改pom.xml文件,加入依赖 <!--swagger--> <dependency> <groupId>io.springfox</groupId&g…
Spring简介 之前一直想写点东西,可一直没有开始实施,各种原因都有,最大原因可能还是自己太懒了,嘿嘿.最近在看Spring in action这本书,为了能让自己坚持下去把书看完,这次决定同步的在博客园上写个Spring系列栏目,期中部分代码案例是自己发挥写的,和书上不一样,大家参考理解,有钱的小伙伴也可以买一本自己看看.另外,由于我不是什么专业的编辑,也很少写文章,所有文章中有个别病句或者错别字的大家别介意,我自己也尽量避免. 一.Spring简介 在接触java开发之前,我是一个 .ne…
Spring部分: 1.声明bean的注解: @Component:组件,没有明确的角色 @Service:在业务逻辑层使用(service层) @Repository:在数据访问层使用(dao层) @Controller:在展现层使用,控制器的声明(Controller) 2.注入bean的注解: @Autowired:由Spring提供,按类型注入,如果一个接口有多个实现,需要和@Qualifier配合使用 @Inject:由JSR-330提供 @Resource:由JSR-250提供,按名…
Web项目开发过程中一般都是使用MVC(Model-View-Controller)模式,早先的Struts2到Spring MVC,再到现在Spring Boot,都是相似的思 路.Spring Boot用多了就真的不想回到SSM或者SSH框架(虽然公司还在用Spring MVC),写这篇随笔,算是自己对Spring MVC内容的复习吧. 工作流程 DispatchServlet的配置方式 1.web.xml 2.通过将其配置在Servlet容器中(Tomcat7+版本要求) /** * Ab…
这节没有高深的东西, 但有一些学习思路值得借鉴. JSR 303 (Bean Validation) Maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> Spring Boot 1.4 开始提出命名规则, 官方使用spr…
1.点击创建新工程 2.选择Spring Initializer和jdk1.8 注意:项目名称要小写字母 3.现在只需要一个创建一个web,选择一个就好 4.没有用的文件,可以删除 5.pom.xml文件自动引入了web和java相关包以及打包插件 主程序和测试程序都自动生成好了 源码 https://files.cnblogs.com/files/jtfr/spring-boot-01-helloworld.zip…
1. Spring概述 本章主要介绍Spring中的体系结构和常见概念,比如bean.控制反转(Inverse of Control,IoC)等. 1.1 体系结构 Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用. 核心容器 核心容器由核心,Bean,上下文和表达式语言模块组成,它们的细节如下: 核心模块提供了框架的基本组成部分,包括 IoC 和依赖注入功能. Bean模块提供 BeanFactory,它是一个工厂模式的复杂实现. 上下文模块建立在由核心和 Bean 模块提…
Rest (Representational Stat Transer) 是一种软件架构风格. 基础理论 架构特性 性能 可伸缩 简化的统一接口 按需修改 组件通信透明 可移植 可靠性 架构约束 C/S 结构 无状态: Stateless 可缓存 分层系统 按需编码 统一接口: URI , 自描述消息(MIME),超媒体作为应用状态引擎(HATEOAS) WEB MVC MVC 中 URL 与 HTTP 方法的联系 URL 和 HTTP 方法存在联系. 不同方法对应的不同状态, 比如: http…
一.Spring Boot 系列诞生原因 上学那会主要学的是 Java 和 .Net 两种语言,当时对于语言分类这事儿没什么概念,恰好在2009年毕业那会阴差阳错的先找到了 .Net 的工作,此后就开始了漫长的 .Net 编程之旅,说实话最初的"编程思想"的形成和确立都是在头几年做 .Net 的时候慢慢培养起来的. 后来在2015年之后就开启了"百花齐放"的模式,那时候 Nodejs.Vue.Golang 在程序界开始暂露头脚并逐渐流行,而作为类游戏公司出身的我和我…