Spring-Context之三:使用XML和Groovy DSL配置Bean
在第一讲中显示了如何使用注解配置bean,其实这是Spring3引进的特性,Spring2使用的是XML的方式来配置Bean,那时候漫天的XML文件使得Spring有着配置地狱的称号。Spring也一直在力求改变这一缺陷。Spring3引入的注解方式确实使配置精简不少,而Spring4则引入了Groovy DSL来配置,其语法比XML要简单很多,而且Groovy本身是门语言,其配置文件就相当于代码,可以用来实现复杂的配置。
废话少说,让我们来对Groovy DSL配置来个第一次亲密接触。
首先我们先实现一个XML的bean配置,沿用第一讲中的例子。
1 |
|
这个XML文件就不用我多做解释了,很清晰明了。Ok,照例写个测试来测一下。
1 |
|
这个测试与第二讲中的测试基本上一样,不过Spring配置的读取是从configuration.xml来的,在@ContextConfiguration中指定了该xml文件为Spring配置文件。
如果想使用Groovy DSL的话第一步需要引入groovy依赖。
1 |
|
然后就可以新建一个groovy文件来实现配置编写。
1 |
|
这其实体现不出来Groovy DSL的强大灵活,因为我们的例子太简单了。
beans相当于xml中的beans标签,第一行中是 bean id + class的形式。
第二行是bean id + class + properties map的形式。第二个参数是一个map数组,分别对应property和值。
实现同样的Bean配置有很多种写法。
1 |
|
上面这种其实是Groovy语法的一个特性,在调用方法时括号是可选的,既可以加,也可以不加。
1 |
|
上面这中使用了另一个设置属性的方法,通过一个闭包将属性设置进去。
1 |
|
这种更好理解了,ref方法也是可选的。
来照旧写个测试来测一下。
1 |
|
在集成测试中如果加载xml配置文件,Spring提供了GenericXmlContextLoader类,如果加载注解方式的配置类,Spring提供了AnnotationConfigContextLoader类。但是对于Groovy配置文件Spring testContext框架还未提供相应的Loader,所以在本测试方法中需要自己实现一个Loader,其实也简单,只要实现两个方法即可。
本例中的源码请在我的GitHub上自行下载。
Spring-Context之三:使用XML和Groovy DSL配置Bean的更多相关文章
- Spring(十五):通过注解配置 Bean
在ClassPath中扫描组件 1)组件扫描(component scanning):Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件: 2)特定组件包含: --- @C ...
- spring学习笔记 星球日two - 注解方式配置bean
注解要放在要注解的对象的上方 @Autowired private Category category; <?xml version="1.0" encoding=" ...
- Spring(十四):使用FactoryBean配置Bean
FactoryBean简介: 1)Spring中Bean包含两种一种是普通Bean,另外一种是FactoryBean.它们都受IOC容器管理,但是也有不同之处. 2)普通Bean与FactoryBea ...
- Spring(八):Spring配置Bean(一)BeanFactory&ApplicationContext概述、依赖注入的方式、注入属性值细节
在Spring的IOC容器里配置Bean 配置Bean形式:基于xml文件方式.基于注解的方式 在xml文件中通过bean节点配置bean: <?xml version="1.0&qu ...
- 使用web.xml方式加载Spring时,获取Spring context的两种方式
使用web.xml方式加载Spring时,获取Spring context的两种方式: 1.servlet方式加载时: [web.xml] <servlet> <servlet-na ...
- 【报错】spring整合activeMQ,pom.xml文件缺架包,启动报错:Caused by: java.lang.ClassNotFoundException: org.apache.xbean.spring.context.v2.XBeanNamespaceHandler
spring版本:4.3.13 ActiveMq版本:5.15 ======================================================== spring整合act ...
- Spring实战——无需一行xml配置实现自动化注入
已经想不起来上一次买技术相关的书是什么时候了,一直以来都习惯性的下载一份电子档看看.显然,如果不是基于强烈的需求或强大的动力鞭策下,大部分的书籍也都只是蜻蜓点水,浮光掠影. 就像有位同事说的一样,有些 ...
- Spring装配Bean---使用xml配置
声明Bean Spring配置文件的根元素是<beans>. 在<beans>元素内,你可以放所有的Spring配置信息,包括<bean>元素的声明. 除了Bean ...
- spring4.0之八:Groovy DSL
4.0的一个重要特征就是完全支持Groovy,Groovy是Spring主导的一门基于JVM的脚本语言(动态语言).在spring 2.x,脚本语言通过 Java scripting engine在S ...
随机推荐
- SQL联合更新(只要有关联字段就能执行更新!)
update t1 set KCLX=t2.KCLX,KSFS=t2.KSFS from JX_PlannedCourse t1 inner join JX_Course t2 on t1.KCDM= ...
- C# JS 单例
单例模式的三个特点: 1,该类只有一个实例 2,该类自行创建该实例(在该类内部创建自身的实例对象) 3,向整个系统公开这个实例接口 模式1: class Singleton { //私有,静态的类自身 ...
- xml文件格式说明
转载自:http://www.cr173.com/html/10715_1.html 关于xml的有关操作,在读的过程中,由于是初学者有不明白的地方就查资料,发现自己多innerXml,outerXm ...
- Java的基本概念
JAVA的方法签名是 参数类型,参数个数,参数顺序,不包括返回值和访问修饰符. 对象序列化:将一个对象编码成一个字节流.
- 使用<c:if>标签处理页面数据
使用${feeList.feeType}来取值的时候,因为定义的是数值,刚好看到<c:if>标签的使用,套用代码如下 <td> <c:if test="${fe ...
- velocity模板入门
$!{velocityCount} 随机
- iOS开发-二维码的基本使用
二维码在生活中出现的频率越来越多了,大街小巷各个角落,它的出现更大的作用是代替功能单一的传统条形码,但是通常很多人第一次见到这个都不清楚这是干嘛用的.最初第一次见到可能就是买到的商品上有一个数字的条形 ...
- cocos2d-x项目实现android视频播放参考链接
http://blog.csdn.net/xiaominghimi/article/details/6870259 http://blog.csdn.net/kaitiren/article/deta ...
- [原] XAF How can I change XafDisplayNameAttribute dynamically
void ViewControlsCreated(object sender, EventArgs e) { foreach (StringPropertyEditor item in view.Ge ...
- windows下安装iReport 并确保启动正确
突然从润乾转到iReport ,我也很蒙.突然离开了万能的客服,我心不甘.现在所有资料都要自己查找,只好做个记录.现在从安装开始说. 此时安装的最新版是5.6.0,要知道,网上大部分资料都是4.X,更 ...