随笔分类 - Spring
Spring framework code and note.
摘要:教程 《Spring实战》(第四版),【美】Craig Walls著,张卫滨译 人民邮电出版社,2016.4 本系列博文包括: "第01章 Spring之旅" "第02章 装配Bean" "第03章 高级装配" "第04章 面向切面的Spring" "第05章 构建Spring Web应用程序 "
阅读全文
摘要:Spring对DI的支持是通过在应用中配置bean属性,这是一种非常不错的方法。不过,一旦应用已经部署并且正在运行,单独使用DI并不能帮助我们改变应用的配置。假设我们希望深入了解正在运行的应用并要在运行时改变应用的配置,此时,就可以使用Java管理扩展(Java Management Extensions,JMX)了。 JMX这项技术能够让我们管理、监视和配置应用。这项技术最初作为Java的独立...
阅读全文
摘要:1 配置Spring发送邮件 Spring Email抽象的核心是MailSender接口。顾名思义,MailSender的实现能够通过连接Email服务器实现邮件发送的功能,如图19.1所示。 图19.1 Spring的MailSender接口是Spring Email抽象API的核心组件。它把Email发送给邮件服务器,由服务器进行邮件投递 Spring自带了一个MailSender...
阅读全文
摘要:Spring 4.0为WebSocket通信提供了支持,包括: 发送和接收消息的低层级API; 发送和接收消息的高级API; 用来发送消息的模板; 支持SockJS,用来解决浏览器端、服务器以及代理不支持WebSocket的问题。 1 使用Spring的低层级WebSocket API 按照其最简单的形式,WebSocket只是两个应用之间通信的通道。位于WebSocket一端的应用发送...
阅读全文
摘要:1 异步消息简介 像RMI和Hessian/Burlap这样的远程调用机制是同步的。如图17.1所示,当客户端调用远程方法时,客户端必须等到远程方法完成后,才能继续执行。即使远程方法不向客户端返回任何信息,客户端也要被阻塞直到服务完成。 消息则是异步发送的,如图17.2所示,客户端不需要等待服务处理消息,甚至不需要等待消息投递完成。客户端发送消息,然后继续执行,这是因为客户端假定服务最终可...
阅读全文
摘要:1 了解REST 1.1 REST的基础知识 REST与RPC几乎没有任何关系。RPC是面向服务的,并关注于行为和动作;而REST是面向资源的,强调描述应用程序的事物和名词。 为了理解REST是什么,我们将它的首字母缩写拆分为不同的构成部分: 表述性(Representational):REST资源实际上可以用各种形式来进行表述,包括XML、JSON(JavaScript Object ...
阅读全文
摘要:1 Spring远程调用概览 图15.1 第三方客户端能够远程调用Spittr的服务,从而实现与Spittr应用交互 其他应用与Spittr之间的会话开始于客户端应用的一个远程过程调用(remote procedure call,RPC)。从表面上看,RPC类似于调用一个本地对象的一个方法。这两者都是同步操作,会阻塞调用代码的执行,直到被调用的过程执行完毕。 Spring支持多种不同的R...
阅读全文
摘要:使用Spring Web Flow Spring Web Flow是Spring MVC的扩展,它支持开发基于流程的应用程序。它将流程的定义与实现流程行为的类和视图分离开来。 1 在Spring中配置Web Flow Spring Web Flow是构建于Spring MVC基础之上的。这意味着所有的流程请求都需要首先经过Spring MVC的DispatcherServlet。我们需要在S...
阅读全文
摘要:Spring MVC 的高级技术 1. Spring MVC配置的替代方案 1.1 自定义DispatcherServlet配置 AbstractAnnotationConfigDispatcherServletInitializer实际上还有更多的方法可以进行重载,从而实现额外的配置。此类的方法之一就是customizeRegistration()。在AbstractAnnotat...
阅读全文
摘要:1. 理解视图解析 将控制器中请求处理的逻辑和视图中的渲染实现解耦是Spring MVC的一个重要特性。如果控制器中的方法直接负责产生HTML的话,就很难在不影响请求处理逻辑的前提下,维护和更新视图。控制器方法和视图的实现会在模型内容上达成一致,这是两者的最大关联,除此之外,两者应该保持足够的距离。 但是,如果控制器只通过逻辑视图名来了解视图的话,那Spring该如何确定使用哪一个视图实现来渲...
阅读全文
摘要:1. Spring MVC起步 1.1 跟踪Spring MVC的请求 前端控制器DispatcherServlet 请求旅程的第一站是Spring的DispatcherServlet。与大多数基于Java的Web框架一样,Spring MVC所有的请求都会通过一个前端控制器(front controller)Servlet。在Spring MVC中,DispatcherServlet...
阅读全文
摘要:1. 什么是面向切面编程 AOP是什么 切面帮助我们模块化横切关注点。 横切关注点可被描述为影响应用【多处的】功能。如安全,应用许多方法会涉及安全规则。 继承与委托是最常见的实现重用 通用功能 的面向对象技术。但是继承往往会导致一个脆弱的对象体系;委托可能需要对委托对象进行复杂的调用。 切面提供了另一种选择,在很多场景下更清晰简洁。 在使用面向切面编程时,任然在一个地方定义通用功能,但...
阅读全文
摘要:1. 环境与profile 在开发软件的时候,有一个很大的挑战就是将应用程序从一个环境迁移到另外一个环境。开发阶段中,某些环境相关做法可能并不适合迁移到生产环境中,甚至即便迁移过去也无法正常工作。 其中一种方式就是在单独的配置类(或XML文件)中配置每个bean,然后在构建阶段(可能会使用Maven的profiles)确定要将哪一个配置编译到可部署的应用中。 3.1 配置profile be...
阅读全文
摘要:1. Spring配置的可选方案 在XML中进行显式配置; 在Java中进行显式配置; 隐式的bean发现机制和自动装配。 2. 自动化装配bean Spring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean。 自动装配(autowiring):Spring自动满足bean之间的依赖。 2.1 创建...
阅读全文
摘要:一、简化Java开发 1. Spring的主要特性 依赖注入DI和面向切面编程AOP。 2. 关键策略 轻量级和最小侵入性编程:POJO 松耦合:DI和AOP 声明式编程:切面和惯例 减少样板式代码:切面和模板 3. 优点 Spring不会强迫你实现Spring规范的接口或继承Spring规范的类。往往没有任何迹象表明你使用了Spring! 4. 依赖注入DI 装配(wiri...
阅读全文
摘要:背景 类似于datasource.properties之类的配置文件,最初通过Java的Properties类进行处理。这种方式有许多弊端,如每次都需要读取配置文件;若将Properties作为成员变量,则当配置文件缺失时,可能直接会导致程序运行失败。 使用Spring读取并装配配置文件,则可以避免
阅读全文
摘要:spring vs spring-mvc spring是应用级框架 spring mvc只是一个mvc框架 spring现在包含很多子模块,我们用的最多的是依赖注入。 spring模块可分为以下: Core Container: Data Access/Integration: Web: 其他,如A
阅读全文
摘要:装配Bean 1、装配wiring,即创建应用对象之间的协作关系的行为,者也是依赖注入的本质。 2、创建Spring配置 从Sring3.0开始,Spring容器提供了两种配置Bean的方式: XML文件配置方式 基于Java注解的配置方式 3、典型的xml配置文件: beans命名空间不是唯一的S
阅读全文
摘要:1、Spring的主要特性:依赖注入DI和面向切面编程AOP。 2、关键策略: 轻量级和最小侵入性编程:POJO 松耦合:DI和AOP 声明式编程:切面和惯例 减少样板式代码:切面和模板 3、Spring不会强迫你实现Spring规范的接口或继承Spring规范的类。往往没有任何迹象表明你使用了Sp
阅读全文