使用Mock 测试 controller层
摘要:package action;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autow
阅读全文
Spring高级话题
摘要:Spring Aware 在实际项目中,你不可避免的要用到spring容器本身的功能资源,这时你的bean要意识到spring容器的存在,才能调用spring提供的资源。spring aware本来就是spring设计用来框架内部使用的。若使用spring aware,你的Bean将会与srping
阅读全文
JAVA配置
摘要:java配置是spring'4.x推荐的配置方式,可以完全替代xml,java配置也是springboot推荐的配置方式。 java配置通过@configuration和@Bean来实现的。 @configuration声明当前类是一个配置类,相当于spring配置的xml文件件。 @Bean注解在
阅读全文
使用Spring MVC创建 REST API--2
摘要:1.提供资源之外的其他内容 @ResponseBody提供了一种很有用的方式,能够将控制器返回的Java对象转换为发送到客户端的资源表述。实际上,将资源表述发送给客户端只是整个过程的一部分。一个好的REST API不仅能够在客户端和服务器之间传递资源,它还能够给客户端提供额外的元数据,帮助客户端理解
阅读全文
使用Spring MVC创建 REST API
摘要:1.REST的基础知识 当谈论REST时,有一种常见的错误就是将其视为“基于URL的Web服务”——将REST作为另一种类型的远程过程调用(remote procedurecall,RPC)机制,就像SOAP一样,只不过是通过简单的HTTP URL来触发,而不是使用SOAP大量的XML命名空间。恰好
阅读全文
使用Spring的HttpInvoker
摘要:Spring开发团队意识到RMI服务和基于HTTP的服务(例如Hessian和Burlap)之间的空白。一方面,RMI使用Java标准的对象序列化机制,但是很难穿透防火墙。另一方面,Hessian和Burlap能很好地穿透防火墙,但是使用私有的对象序列化机制。就这样,Spring的HTTP invo
阅读全文
使用远程服务
摘要:**访问和发布RMI服务**使用Hessian和Burlap服务**使用Spring的HTTP invoker**使用Spring开发Web服务 想象一下,我们被困在一个荒凉的小岛上,这听上去就像是一场梦境变成了现实。毕竟,谁不想在海滩上静静地独处,可以幸福地不顾外面世界的纷纷扰扰呢?但是在一个荒岛
阅读全文
Spring MVC起步
摘要:1.1跟踪Spring MVC的请求 每当用户在Web浏览器中点击链接或提交表单的时候,请求就开始工作了。对请求的工作描述就像是快递投送员。与邮局投递员或FedEx投送员一样,请求会将信息从一个地方带到另一个地方。请求是一个十分繁忙的家伙。从离开浏览器开始到获取响应返回,它会经历好多站,在每站都会留
阅读全文
使用注解创建切面
摘要:使用注解来创建切面是AspectJ 5所引入的关键特性。AspectJ 5之前,编写AspectJ切面需要学习一种Java语言的扩展,但是AspectJ面向注解 的模型可以非常简便地通过少量注解把任意类转变为切面。 1.1AspectJ提供了五个注解来定义通知, @Pointcut注解能够在一个@A
阅读全文
通过切点来选择连接点
摘要:关于Spring AOP的AspectJ切点,最重要的一点就是Spring仅支持AspectJ切点指示器(pointcut designator)的一个子集。让我们回顾下,Spring是基于代理的,而某些切点表达式是与基于代理的AOP无 关的。表4.1列出了Spring AOP所支持的AspectJ
阅读全文
Spring实战之切面编程
摘要:如果要重用通用功能的话,最常见的面向对象技术是继承(inheritance)或委托(delegation)。但是,如果在整个应用中都使用相同的基类,继承往往会导致一个脆弱的对象体系;而使用委托可能需要对委托对象进行复杂的调用。切面提供了取代继承和委托的另一种可选方案,而且在很多场景下更清晰简洁。在使
阅读全文
使用Spring表达式语言进行装配
摘要:1.1注入外部的值 Spring中,处理外部值的最简单方式就是声明属性源并通过Spring的Environment来检索属性。例如,程序清单3.7展现了一个基本的Spring配置类,它使用外部的属性来装配BlankDisc bean。 程序清单3.7 使用@PropertySource注解和Envi
阅读全文
bean的作用域
摘要:在默认情况下,Spring应用上下文中所有bean都是作为以单例(singleton)的形式创建的。也就是说,不管给定的一个bean被注入到其他bean多少次,每次所注入的都是同一个实例。在大多数情况下,单例bean是很理想的方案。初始化和垃圾回收对象实例所带来的成本只留给一些小规模任务,在这些任务
阅读全文
Spring实战之处理自动装配的歧义性
摘要:仅有一个bean匹配所需的结果时,自动装配才是有效的。如果不仅有一个bean能够匹配结果的话,这种歧义性会阻碍Spring自动装配属性、构造器参数或方法参数。为了阐述自动装配的歧义性,假设我们使用@Autowired注解标注了setDessert()方法: 在本例中,Dessert是一个接口,并且有
阅读全文
Spring实战之环境与profile
摘要:1.配置profile bean Spring为环境相关的bean所提供的解决方案其实与构建时的方案没有太大的差别。当然,在这个过程中需要根据环境决定该创建哪个bean和不创建哪个bean。不过Spring并不是在构建的时候做出这样的决策,而是等到运行时再来确定。这样的结果就是同一个部署单元(可能会
阅读全文
小结
摘要:Spring的容器对bean的管理分为两个过程 一.实例化bean 二.通过bean的各种依赖关系完成注入 对Bean的实例化 对bean的实例化,spring可以通过注解自动扫描需要实例化的bean,通过@omponent注解,在类上添加该注解后,spring会将该类进行实例化,放入容器中统一管理
阅读全文
自动化装配Bean
摘要:一、Spring装配-自动化装配 通过spring注解(@Component)来表明该类会作为组件类,并告知Spring要为这类创建bean,不过组件扫描默认是不启动的,需要显式的配置Spring,从而命令Spring去寻找带有(@Component)注解的类,并为其创建bean。 1、定义接口 2
阅读全文
通过Java代码装配Bean
摘要:上面梳理了通过注解来隐式的完成了组件的扫描和自动装配,下面来学习下如何通过显式的配置的装配bean 二、通过Java类装配bean 在前面定义了HelloWorldConfig类,并使用@ComponentScan和@Configuration注解,@Configuration注解表明了这个类是一个
阅读全文
Spring之导入和混合配置
摘要:在典型的Spring应用中,我们可能会同时使用自动化和显式配置。即便你更喜欢通过JavaConfig实现显式配置,但有的时候XML却是最佳的方案。幸好在Spring中,这些配置方案都不是互斥的。你尽可以将JavaConfig的组件扫描和自动装配和/或XML配置混合在一起。实际上,就像在2.2.1小节
阅读全文
Spring实战之通过XML装配bean
摘要:尽管Spring长期以来确实与XML有着关联,但现在需要明确的是,XML不再是配置Spring的唯一可选方案。Spring现在有了强大的自动化配置和基于Java的配置,XML不应该再是你的第一选择了。不过,鉴于已经存在那么多基于XML的Spring配置,所以理解如何在Spring中使用XML还是很重
阅读全文