阅读PDF版本 本文会以一些例子来展现Spring MVC的常见功能和一些扩展点,然后我们来讨论一下Spring MVC好用不好用. 使用SpringBoot快速开始 基于之前的parent模块,我们来创建一个新的模块: <?xml version="1.0" encoding="UTF-8"?> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml…
目录 Spring系列之IOC的原理及手动实现 Spring系列之DI的原理及手动实现 导语 Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架.也是几乎所有Java工作者必须要掌握的框架之一,其优秀的设计思想以及其代码实现上的艺术也是我们需要掌握的.要学习Spring,除了在我们的项目中使用之外,也需要对它的源码进行研读,但是Spring的实现涵盖的知识很多,在加上其中的类的数量也是非常的多,在我们阅读源码时可能会在几十个类之间穿插阅读,很有可能一不小心…
阅读PDF版本 标题有点标题党了,这里说的容易犯错不是Spring AOP的错,是指使用的时候容易犯错.本文会以一些例子来展开讨论AOP的使用以及使用过程中容易出错的点. 几句话说清楚AOP 有关必要术语: 切面:Aspect,有的地方也叫做方面.切面=切点+增强,表示我们在什么点切入蛋糕,切入蛋糕后我们以什么方式来增强这个点. 切点:Pointcut,类似于查询表达式,通过在连接点运行查询表达式来寻找匹配切入点,Spring AOP中默认使用AspjectJ查询表达式. 增强:Advice,有…
朱晔和你聊Spring系列S1E2:SpringBoot并不神秘 [编辑器丢失了所有代码的高亮,建议查看PDF格式文档] 文本我们会一步一步做一个例子来看看SpringBoot的自动配置是如何实现的,然后来看一些SpringBoot留给我们的扩展点. 自己制作一个SpringBoot Starter 我们知道SpringBoot提供了非常多的启动器,引入了启动器依赖即可直接享受到自动依赖配置和自动属性配置: https://github.com/spring-projects/spring-bo…
朱晔和你聊Spring系列S1E1:聊聊Spring家族的几大件 [下载本文PDF进行阅读] Spring家族很庞大,从最早先出现的服务于企业级程序开发的Core.安全方面的Security.到后来的作为各种数据源桥梁的Data.最近几年很火的Boot,以及最新推出的正在蓬勃发展的Cloud(在本文之后都简单称为Boot.Cloud省略Spring节省一点我的打字时间…
有关Spring Cloud Kubernates(以下简称SCK)详见https://github.com/spring-cloud/spring-cloud-kubernetes,在本文中我们主要测试三个功能: 使用Kubernates服务发现配合Spring Cloud Ribbon做服务调用 读取Kubernates的ConfigMap配置并且支持修改后动态刷新 Spring Boot Actuator对Kubernates Pod信息的感知 编写测试程序 首先,我们来创建pom文件,注…
本文会以一个简单而完整的业务来阐述Spring Cloud Finchley.RELEASE版本常用组件的使用.如下图所示,本文会覆盖的组件有: Spring Cloud Netflix Zuul网关服务器 Spring Cloud Netflix Eureka发现服务器 Spring Cloud Netflix Turbine断路器监控 Spring Cloud Sleuth + Zipkin服务调用监控 Sping Cloud Stream + RabbitMQ做异步消息 Spring Da…
本文我们来梳理一下Spring的那些注解,如下图所示,大概从几方面列出了Spring的一些注解: 如果此图看不清楚也没事,请运行下面的代码输出所有的结果. Spring目前的趋势是使用注解结合Java代码而不是配置来定义行为.属性.功能.规则和扩展点,因此梳理注解也是梳理Spring功能点的很好的方式,全面的梳理可以补足我们知识点的漏洞. 查找所有注解 首先,我们来创建一个项目,使用SPRING INITIALIZR生成一个引入Spring各种组件的项目模板,然后引入如下工具包: <depend…
目录 Spring系列之IOC的原理及手动实现 Spring系列之DI的原理及手动实现 Spring系列之AOP的原理及手动实现 Spring系列之手写注解与配置文件的解析 引言 在前面的几个章节中我们已经简单的完成了一个简易版的spring,已经包括容器,依赖注入,AOP和配置文件解析等功能.这一节我们来实现一个自己的springMvc. 关于MVC/SpringMVC springMvc是一个基于mvc模式的web框架,SpringMVC框架是一种提供了MVC(模型 - 视图 - 控制器)架…
Spring 框架文档(核心篇1和2) Version 5.1.3.RELEASE 最新的, 更新的笔记, 支持的版本和其他主题,独立的发布版本等, 是在Github Wiki 项目维护的. 总览 历史, 设计哲学, 反馈, 入门. 核心 IoC容器, 事件, 资源, 国际化(i18n), 验证, 数据绑定, 类型转化, Spring表达式语言(SpEL), 面向切面编程(AOP). 测试 Mock对象, 测试上下文框架(TestContext framework), Spring MVC 测试…
Spring 系列教程之 bean 的加载 经过前面的分析,我们终于结束了对 XML 配置文件的解析,接下来将会面临更大的挑战,就是对 bean 加载的探索.bean 加载的功能实现远比 bean 的解析要复杂得多,同样,我们还是以本书开篇的示例为基础,对于加载 bean 的功能,在 Spring 中的调用方式为 Mytestbean bean=(Mytestbean) bf getbean("mytest Bean") 这句代码实现了什么样的功能呢?我们可以先快速体验一下 Sprin…
Spring 系列: Spring 框架简介 Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级的.强壮的 J2EE 应用程序.developerWorks 的定期投稿人 Naveen Balani 通过介绍 Spring 框架开始了他由三部分组成的 Spring 系列,其中还将介绍 Spring 面向方面的编程(AOP)和控制反转(IOC)容器. Spring 是一个开源框架,是为了解决企业…
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IOC .DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解. 一.分享Iteye的开涛对Ioc的精彩讲解首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文 1.1.IoC是什么 Ioc—Inversi…
Spring AOP 和 IOC 容器入门(转载) 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级的.强壮的 J2EE 应用程序.developerWorks 的定期投稿人 Naveen Balani 通过介绍 Spring 框架开始了他由三部分组成的 Spring 系列,其中还将介绍 Spring 面向方面的编程(AOP)和控制反转(IOC)容器. http://www.ibm.com/developerworks/cn/java…
Spring 系列: Spring 框架简介 http://www.ibm.com/developerworks/cn/java/wa-spring1/ Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级的.强壮的 J2EE 应用程序.developerWorks 的定期投稿人 Naveen Balani 通过介绍 Spring 框架开始了他由三部分组成的 Spring 系列,其中还将介绍 S…
Spring系列之访问数据库   阅读目录 一.概述 二.JDBC API的最佳实践 三.Spring对ORM的集成 回到顶部 一.概述 Spring的数据访问层是以统一的数据访问异常层体系为核心,结合JDBC API的最佳实践和统一集成各种ORM方案,完成Java平台的数据访问. 回到顶部 二.JDBC API的最佳实践 Spring提供两种JDBC API的最佳实践,一种是以JDBCTemplate为核心的基于Template的JDBC使用方式,另一种则是在JdbcTemplate基础之上构…
♣什么是IoC? ♣通俗化理解IoC原理 ♣IoC好处 ♣工厂模式 ♣IoC的主要组件 ♣IoC的应用实例 ♣附:实例代码 1.什么是IoC(控制反转)? Spring3框架的核心是实现控制反转(IoC)模式,IoC又叫做依赖注入(DI). 什么是控制反转呢?答案就是"获得依赖对象的过程被反转了",获得依赖对象的过程由自身管理对象变为由IoC容器主动注入,于是控制反转又叫做依赖注入.那么"控制反转"完全就是"依赖注入"咯?其实,我们可以将&quo…
微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.前言 前面更新过几篇关于 Struts2 框架和 Hibernate 框架的文章,但鉴于这两种框架在今天的主流开发中已经很少用了,所以关于这两种框架的更新权当兴趣,有时间也还会更新的.现在主流开发中代替这两个框架的是 SpringMVC 和 MyBatis 等等,接下来主要精力集中于 Spring.SpringMVC.Spring Boot 等等,特别是 Spring Boot 框架,当然…
Spring的两大核心功能就是IOC和AOP,这篇文章主要介绍IOC. 简单来说,在面向对象思想下,A类中有一个B类的属性, 那么我们在创建A类时往往需要同时创建一个B类的对象,以便A类对其进行调用.但是,这样的后果便是,A类和B类的耦合度过高.所谓的IOC(控制反转),或者其实现的方式DI(依赖注入). 实质就是Spring容器负责来创建A类.B类的实例,并在用户使用的时候将引用提供给用户.这样的好处就是用户不需要考虑创建实例,同时在一定程度上进行了解耦. 1.bean的配置 1.配置形式:…
Servlet传统异常处理 Servlet规范规定了当web应用发生异常时必须能够指明, 并确定了该如何处理, 规定了错误信息应该包含的内容和展示页面的方式.(详细可以参考servlet规范文档) 处理方式 处理状态码<error-code> 处理异常信息<exception-type> 处理服务地址<location> Spring MVC 处理方式 所有的请求必然以某种方式转化为响应. Spring中特定的异常将自动映射为特定的HTTP状态码 使用@Response…
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建. 简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架. 狗鱼IT教程:推介最强最全的Spring系列教程 Spring [Spring]Spring 教程 [Spring]Spring 体系结构 [Spring]Spring 环境配置 [Spring]Spring Hello World 实例 [Spring]Spring I…
目录 Spring系列之IOC的原理及手动实现 Spring系列之DI的原理及手动实现 前言 在上一章中,我们介绍和简单实现了容器的部分功能,但是这里还留下了很多的问题.比如我们在构造bean实例的时候如果bean是带参数的我们需要怎么来进行,当然这个是可以在init方法中进行的,再比如我们平时在Spring中获取一个对象通过一个注解即可获取到类的实例,这个实例是怎么注入的呢? IOC和DI 依赖注入(DI)和控制反转(IOC)其实基本上表达的是同一个东西,两者谁也离不开谁. 假设类a需要依赖类…
目录 Spring系列之IOC的原理及手动实现 Spring系列之DI的原理及手动实现 引入 到目前为止,我们已经完成了简易的IOC和DI的功能,虽然相比如Spring来说肯定是非常简陋的,但是毕竟我们是为了理解原理的,也没必要一定要做一个和Spring一样的东西.到了现在并不能让我们松一口气,前面的IOC和DI都还算比较简单,这里要介绍的AOP难度就稍微要大一点了. tips 本篇内容难度较大,每一步都需要理清思路,可能需要多看几遍,多画类图和手动实现更容易掌握. AOP 什么是AOP Asp…
目录 Spring系列之IOC的原理及手动实现 Spring系列之DI的原理及手动实现 Spring系列之AOP的原理及手动实现 引入 在前面我们已经完成了IOC,DI,AOP的实现,基本的功能都已经完成了,我们的手写框架也能勉强使用起来.为了让我们的框架能够使用起来比较简单,这一节我们来实现注解和xml的配置. tips 本章的xml和注解的功能都是为实现bean的创建,其他如aop等功能可仿造实现. 为什么要加注解和xml配置 如果有同学测试过我们写好的框架,可能会感受到使用起来非常麻烦,在…
朱晔的互联网架构实践心得S1E4:简单好用的监控六兄弟 [下载本文PDF进行阅读] 这里所说的六兄弟只指ELK套件(ElasticSearch+Logstash+Kibana)以及TIG套件(Telegraf+InfluxDb+Grafana). 上图显示了两套独立的体系,ELK和TIG(TIG是我自己编出来的,网上没有类似于ELK这种约定俗成的说法): 这两套体系都由收集器+存储+展示网站构成,青绿色的收集器,蓝绿色的存储,红色的展示网站. 这两套体系都有免费的组件可以使用,安装配置也相对简单…
Spring系列之Spring常用注解总结   传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点:1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml文件,那么.xml文件又会非常多.总之这将导致配置文件的可读性与可维护性变得很低.2.在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发的效率.为了解决这两个问题,Spring引入了注解,通过"@XXX&…
Spring(https://spring.io/) 系列目录 第一篇:Spring 系列 第一章 Spring Core (1) Convert 1.1.1 Spring ConversionService 类型转换(一) Convert 1.1.2 Spring ConversionService 类型转换(二) ConversionService (2) 环境 env 1.2.1 Spring Environment(一)API 介绍 1.2.2 Spring Environment(二)…
原文地址:Spring系列之beanFactory与ApplicationContext 一.BeanFactoryBeanFactory 是 Spring 的“心脏”.它就是 Spring IoC 容器的真面目.Spring 使用 BeanFactory 来实例化.配置和管理 Bean. BeanFactory:是IOC容器的核心接口, 它定义了IOC的基本功能,我们看到它主要定义了getBean方法.getBean方法是IOC容器获取bean对象和引发依赖注入的起点.方法的功能是返回特定的名…
Spring 系列教程之容器的功能 经过前面几章的分析,相信大家已经对 Spring 中的容器功能有了简单的了解,在前面的章节中我们一直以 BeanFacotry 接口以及它的默认实现类 XmlBeanFacotry 为例进行分析,但是,Spring 中还提供了另一个接口 ApplicationContext,用于扩展 BeanFacotry 中现有的功能. ApplicationContext 和 BeanFacotry 两者都是用于加载 Bean 的,但是相比之下, ApplicationC…
Spring 系列教程之自定义标签的解析 在之前的章节中,我们提到了在 Spring 中存在默认标签与自定义标签两种,而在上一章节中我们分析了 Spring 中对默认标签的解析过程,相信大家一定已经有所感悟.那么,现在将开始新的里程,分析 Spring 中自定义标签的加载过程.同样,我们还是先再次回顾一下,当完成从配置文件到 Document 的转换并提取对应的 root 后,将开始了所有元素的解析,而在这一过程中便开始了默认标签与自定义标签两种格式的区分,函数如下: protected voi…