读书人

【第十二章】零配置 之 12.4 基于Java

发布时间: 2012-07-03 13:37:42 作者: rapoo

【第十二章】零配置 之 12.4 基于Java类定义Bean配置元数据 ——跟我学spring3

12.4? 基于Java类定义Bean配置元数据12.4.1? 概述

基于Java类定义Bean配置元数据,其实就是通过Java类定义Spring配置元数据,且直接消除XML配置文件。

?

基于Java类定义Bean配置元数据中的@Configuration注解的类等价于XML配置文件,@Bean注解的方法等价于XML配置文件中的Bean定义。

?

基于Java类定义Bean配置元数据需要通过AnnotationConfigApplicationContext加载配置类及初始化容器,类似于XML配置文件需要使用ClassPathXmlApplicationContext加载配置文件及初始化容器。

?

基于Java类定义Bean配置元数据需要CGLIB的支持,因此要保证类路径中包括CGLIB的jar包。

??12.4.2? Hello World

首先让我们看一下基于Java类如何定义Bean配置元数据,具体步骤如下:

1、? 通过@Configuration注解需要作为配置的类,表示该类将定义Bean配置元数据;

2、? 通过@Bean注解相应的方法,该方法名默认就是Bean名,该方法返回值就是Bean对象;

3、? 通过AnnotationConfigApplicationContext或子类加载基于Java类的配置。

?

?

?

接下来让我们先来学习一下如何通过Java类定义Bean配置元数据吧:

?

1、定义配置元数据的Java类如下所示:

?

java代码:
package cn.javass.spring.chapter12.configuration;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configuration public class ApplicationContextConfig {    @Bean    public String message() {        return "hello";    }}

?

2、定义测试类,测试一下Java配置类是否工作:

?

java代码:
package cn.javass.spring.chapter12.configuration;//省略importpublic class ConfigurationTest {    @Test    public void testHelloworld () {        AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationContextConfig.class);        Assert.assertEquals("hello", ctx.getBean("message"));    }}

? ? 测试没有报错说明测试通过了,那AnnotationConfigApplicationContext是如何工作的呢,接下来让我们分析一下:

读书人网 >软件架构设计

热点推荐