spring rest小马哥】的更多相关文章

幂等 PUT 初始状态:0 修改状态:1 * N 最终状态:1 DELETE 初始状态:1 修改状态:0 * N 最终状态:0 非幂等 POST 初始状态:1 修改状态:1 + 1 =2 N次修改: 1+ N = N+1 最终状态:N+1 幂等/非幂等 依赖于服务端实现,这种方式是一种契约 #自描述消息 > Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 第…
小马哥出手的Spring栈核心编程思想课程,可以说是非常专业和权威的Spring课程.课程主要的方向与核心是Spring Framework总览,带领同学们重新认识重新认识IoC,Spring IoC容器概述课程.Spring Bean基础课程,Spring IoC依赖查找,Spring IoC依赖注入,Spring IoC依赖来源,Spring Bean作用域,Spring Bean生命周期,Spring配置元信息等等.课程内容非常的专业,需要同学们优先进行Spring协议系列的基础学习,再进…
课程github地址 https://github.com/mercyblitz/segmentfault-lessons 传统的web应用架构.微服务是一种架构.不限定什么语言 单体应用和微服务的对比 SOA 微服务的发展史 rpc更讲究面向接口 socket更面向于底层 分布式的,也叫作进程外的 业务处理的结果一般返回给服务组件. rest可以是json.xml.html.为什么很多会会选择json,json的格式比较简单清晰. 微服务面临的挑战 表达式驱动依赖反射驱动 目录概要 demo…
之前我发过一篇<说说我为什么看好Spring Cloud Alibaba>,然后这两天有网友给我转了这篇文章<坑爹项目spring-cloud-alibaba,我们也来一个>,问我的看法是怎么样的,聊天时候简单说了一下.今天在家休息,抽空整理一下内容,逐点说一下我的看法,主要还是觉得这篇文章博眼球的成分高一些,因为这篇文章的解读与之前其他某些自媒体发布的<Eureka 2.0 开源工作宣告停止,继续使用风险自负>一文有异曲同工之"妙",如果读者没有真…
在实现消息推送的项目中往往需要WebSocket,以下简单讲解在Spring boot 中使用 WebSocket. 1.pom.xml 中引入 spring-boot-starter-websocket <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </depen…
Spring Framework 组件注册 之 @Component 写在前面 在spring大行其道的今天,对于spring的使用和掌握乃是不可缺少的必备技能.但是spring的整个体系尤为庞大,对它的学习,还得从基础一点一滴的慢慢积累.本文主要介绍@Component注解在spring中的简单使用,以及注解的派生性和层次性 @Component 简单使用 @Component注解是一个元注解,即可以标注在其它的注解上.在spring中,任何被@Component注解标识的组件均为组件扫描的候…
在上篇文章 Spring 注解编程之模式注解 中我们讲到 Spring 模式注解底层原理,依靠 AnnotationMetadata 接口判断是否存在指定元注解. 这篇文章我们主要深入 AnnotationMetadata,了解其底层原理. Spring 版本为 5.1.8-RELEASE AnnotationMetadata 结构 使用 IDEA 生成 AnnotationMetadata 类图,如下: AnnotationMetadata 存在两个实现类分别为 StandardAnnotat…
到目前为止,我们整个初级广告检索系统就初步开发完成了,我们来整体回顾一下我们的广告系统. 整个广告系统编码结构如下: mscx-ad 父模块 主要是为了方便我们项目的统一管理 mscx-ad-db 这个模块主要有2个作用,本身只应该作为数据库脚本管理package来使用,但是我们在生成索引文件的过程中,为了方便,我就直接将导出全量索引的json文件生成也写在了该项目中. 主要目的还是通过flyway进行数据库脚本的管理. mscx-ad-common 这个主要是一些通用工具类的存放 mscx-a…
? 小马哥 & Josh Long ? 喜欢写一首诗一般的代码,更喜欢和你共同 code review,英雄的相惜,犹如时间沉淀下来的对话,历久方弥新. 相见如故,@杭州. 4 月 18 日,Josh Long 来到了阿里巴巴西溪园区,我们向其演示了 Spring Cloud Alibaba 各个组件的功能和实现方式,Josh Long 看完意犹未尽,表示会在新的 Spring Tips 视频再次介绍 Spring Cloud Alibaba 中的其他组件.(点击文末阅读原文,访问上一期spri…
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean Definition到底是什么,咱们对着接口,逐个方法讲解 曹工说Spring Boot源码(3)-- 手动注册Bean Definition不比游戏好玩吗,我们来试一下 曹工说Spring Boot源码(4)-- 我是怎么自定义ApplicationContext,从json文件读取bean de…
Spring ioc 有依赖查找和依赖注入,之前不太明白依赖查找是什么意思,翻了一大堆博客看了好多定义也不太清楚 ,后来看了小马哥视频,他通过代码演示,清楚地讲解了什么是 依赖查找以及几种依赖查找的方法,本文结合代码浅析一下Spring ioc的依赖查找,通过代码来更加形象的理解依赖查找. 1.根据bean名称查找: 实时查找 延时查找 1.配置xml文件 <beans xmlns="http://www.springframework.org/schema/beans" xml…
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean Definition到底是什么,咱们对着接口,逐个方法讲解 曹工说Spring Boot源码(3)-- 手动注册Bean Definition不比游戏好玩吗,我们来试一下 曹工说Spring Boot源码(4)-- 我是怎么自定义ApplicationContext,从json文件读取bean de…
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1.14.RELEASE 开始阅读这一系列文章之前,建议先查看<深入了解 Spring IoC(面试题)>这一篇文章 该系列其他文章请查看:<死磕 Spring 之 IoC 篇 - 文章导读> BeanDefinition 的加载阶段(XML 文件) 上一篇文章 <Bean 的&qu…
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1.14.RELEASE 开始阅读这一系列文章之前,建议先查看<深入了解 Spring IoC(面试题)>这一篇文章 该系列其他文章请查看:<死磕 Spring 之 IoC 篇 - 文章导读> BeanDefinition 的解析阶段(XML 文件) 上一篇文章<BeanDefini…
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1.14.RELEASE 开始阅读这一系列文章之前,建议先查看<深入了解 Spring IoC(面试题)>这一篇文章 该系列其他文章请查看:<死磕 Spring 之 IoC 篇 - 文章导读> 解析自定义标签(XML 文件) 上一篇<BeanDefinition 的解析阶段(XML…
作者:Grey 原文地址: 语雀 博客园 依赖查找 Spring IoC 依赖查找分为以下几种方式 根据 Bean 名称查找 实时查找 延迟查找 根据 Bean 类型查找 单个 Bean 对象 集合 Bean 对象 根据 Bean 名称 + 类型查找 根据 Java 注解查找 单个 Bean 对象 集合 Bean 对象 以下示例基于spring-framework 5.2.13.RELEASE 版本, 通过Maven管理项目 根据Bean名称实时查找 pom.xml 文件引入如下依赖 <depe…
小马哥的 Java 项目实战营 小马哥的 Java 项目实战营 第二节:数据存储之 JDBC JDBC 核心 API 数据源 接口 - javax.sql.DataSource获取方式 1.普通对象初始化1)Spring Bean2)API 实现 2.JNDI 依赖查找 主流 DataSource 实现 1.Apache DBCP 1/2 间接依赖 - Apache Commons Pool 2.对象池的概念 1)"池"化 - "肉少狼多","肉"…
前言 上一篇文章已经学习了[依赖查找]相关的知识,这里详细的介绍一下[依赖注入]. 依赖注入 - 分类 因为自己是基于小马哥的脉络来学习,并且很认可小马哥梳理的分类方式,下面按照小马哥思想为[依赖注入]分类: Setter方法注入 构造器注入 字段注入 方法注入 接口回调注入 1. Setter方法注入 1.1 手动模式 1.1.1 XML配置 <bean class="org.geekbang.thinking.in.spring.ioc.dependency.injection.Use…
前言 IoC (Inversion of control) 并不是Spring特有的概念. IoC 维基百科的解释: In software engineering, inversion of control (IoC) is a programming principle. IoC inverts the flow of control as compared to traditional control flow. 在软件工程中,IOC(控制反转)是一种编程原则.和传统的控制流程相比,IoC…
要了解Spring Boot的发展背景,还得从2004年Spring Framework1.0版本发布开始说起,不过大家都是从开始学习Java就使用Spring Framework了,所以就不做过多展开. 随着使用Spring Framework进行开发的企业和个人越来越多,Spring 也慢慢从一个单一简洁的小框架编程了一个大而全的开源软件,Spring Framework的边界不断进行扩张,到了现在Spring 几乎可以做任何事情.目前市面上绝大部分的开源组件和中间件,都有Spring对应组…
一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...finally对异常进行处理,但是我们真的能在写程序的时候处理掉所有可能发生的异常吗? 以及发生异常的时候执行什么逻辑,返回什么提示信息,跳转到什么页面,这些都是要考虑到的. 二.基于@ControllerAdvice(加强的控制器)的异常处理 参考文档:http://jinnianshilongnian…
开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quickstart模板 完成Maven项目的创建 参照spring的官方例子:http://spring.io/guides/gs/testing-web/ 在pom.xml增加maven依赖 <project xmlns="http://maven.apache.org/POM/4.0.0&quo…
                              Spring基于AOP的事务管理 事务 事务是一系列动作,这一系列动作综合在一起组成一个完整的工作单元,如果有任何一个动作执行失败,那么事务就将回到最开始的状态,仿佛一切都没发生过.例如,老生常谈的转账问题,从转出用户的总存款中扣除转账金额和增加转出用户的账户金额是一个完整的工作单元,如果只完成扣除或者增加都会导致错误,造成损失,而事务管理技术可以避免类似情况的发生,保证数据的完整性和一致性.同样在企业级应用程序开发过程中,事务管理技术…
先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaBean 是不是一定完爆 xml方式? 未必.正所谓,仁者见仁智者见智.任何事物都有其优缺点,看你如何取舍.来看看注解的优缺点: 优点:大大减少了配置,并且可以使配置更加精细--类,方法,字段都可以用注解去标记. 缺点:使用注解,不可避免产生了侵入式编程,也产生了一些问题. 你需要将注解加入你的源码并…
花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍.那看书有什么用呢?主要还是扩展视野,毕竟书是别人总结出来的东西,看一遍可以发现自己的理解偏差,而且还可以看到一些平时不太关注的内容,当然看也可以是一种学习技术的方式. 最开始只是想了解一下AOP,没想到就陷的这么深,为了搞清楚spring是如何完成切面功能这两天还是把Ioc部分的内容也给读了读.还是看懂了大概,只不过这复杂的内部结构确实不易理解…
上一篇<学习AOP之认识一下SpringAOP>中大体的了解了代理.动态代理及SpringAop的知识.因为写的篇幅长了点所以还是再写一篇吧.接下来开始深入一点Spring aop的一些实现机制. 上篇中最后有那段代码使用了一个ProxyFactory类来完成代理的工作,从而实现了Aop的Around Advice,代码如下: package aop.demo; import org.springframework.aop.framework.ProxyFactory; public clas…
心碎之事 要说知道AOP这个词倒是很久很久以前了,但是直到今天我也不敢说非常的理解它,其中的各种概念即抽象又太拗口. 在几次面试中都被问及AOP,但是真的没有答上来,或者都在面上,这给面试官的感觉就是java基础不行.可见这还是挺重要的一个概念. 在看工作中也遇到了相关的问题,在RPC的一种实现机制里应用了AOP,结果各种类一直绕来绕去看着头都大了,这也就是没有对动态代理和aop有了解导致的. 所以要好好的去掌握它,否则吃亏的还是自己. 先从概念开始 面向侧面的程序设计(aspect-orien…
今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑问无法得到正确的解释,为什么我们现在做java的web开发,会选择struts2或者springMVC这样的框架,而不是使用servlet加jsp这样的技术呢?特别是现在我们web的前端页面都是使用velocity这样的模板语言进行开发,抛弃了jsp,这样的选择又会给我们java的web开发带来什么…
Spring简化Java的下一个理念:基于切面的声明式编程 3.应用切面 依赖注入的目的是让相互协作的组件保持松散耦合:而AOP编程允许你把遍布应用各处的功能分离出来形成可重用的组件. AOP面向切面编程被定义为促使应用程序分离关注点的一项技术.系统由许多不同的组件组成,每个组件除了负责某一特定的功能,还要承担额外的职责,诸如日志.事务管理和安全等等的服务经常融入到自身的核心业务逻辑中去,这些服务统称为横向关注点,因为它们总是跨越系统的各个组件. 将这些代码分散到多个组件,会导致双重复杂性: 如…
Java使得以模块化构建复杂应用系统成为可能,它为Applet而来,但为组件化而留. Spring是一个开源的框架,最早由Rod Johnson创建.Spring是为了解决企业级应用开发的复杂性而创建的,但Spring又不仅仅局限于服务器端开发,任何Java应用都能在简单性.可测试性和松耦合性等方面从Spring中获益. Spring可以做很多事情,但归根结底,支撑Spring的仅仅是少许的基本理念,所有的理念都可以追溯到Spring最根本的使命:简化Java开发. 为了降低Java开发的复杂性…