dangdangdotcom/dubbox — pull request #5 by markerking (2014-11-14 03:50:39+00:00)
Title: spring javaconfig container

### 1. 模块描述

实现Spring的JavaConfig配置方式，使用 `Main.main(args)` (需传参`javaconfig`设置使用JavaConfigContainer) 启动时可直接扫描 `bubbo.spring.javaconfig` 包下的所有的Spring配置类

### 2. 使用示例

使用示例在dubbo-demo/dubbo-demo-consumer模块中，相关配置方式参考[注解配置](http://alibaba.github.io/dubbo-doc-static/Annotation+Config-zh.htm)

#### 2.1 代码解释

* `dubbo-demo-consumer/../DubboDemoConsumerConfig` 等同于 `dubbo-demo-consumer/../dubbo-demo-consumer.xml`
* `dubbo-demo-consumer/../DubboDemoActionConfig` 等同于 `dubbo-demo-consumer/../dubbo-demo-action.xml`
* `dubbo-demo-consumer/../DemoJavaConfigAction` 等同于 `dubbo-demo-consumer/../DemoAction`
* `dubbo-demo-consumer/../DemoJavaConfigConsumer` 以JavaConfig方式启动示例程序

#### 2.2 示例演示

1. 运行dubbo-demo-provider/../DemoProvider
2. 运行dubbo-demo-consumer/../DemoJavaConfigConsumer
3. 查看console输出

### 3. 去xml化配置

将xml配置方式转换为Java类配置，未涉及到的配置，请参照[API配置](http://alibaba.github.io/dubbo-doc-static/User+Guide-zh.htm#UserGuide-zh-API%E9%85%8D%E7%BD%AE)实现

```
@Configuration
public class DubboDemoConsumerConfig {

public static final String APPLICATION_NAME = "consumer-of-helloworld-app";

public static final String REGISTRY_ADDRESS = "zookeeper://127.0.0.1:2181";

public static final String ANNOTATION_PACKAGE = "com.alibaba.dubbo.demo.consumer";

@Bean
public ApplicationConfig applicationConfig() {
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName(APPLICATION_NAME);
return applicationConfig;
}

@Bean
public RegistryConfig registryConfig() {
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress(REGISTRY_ADDRESS);
return registryConfig;
}

@Bean
public AnnotationBean annotationBean() {
AnnotationBean annotationBean = new AnnotationBean();
annotationBean.setPackage(ANNOTATION_PACKAGE);
return annotationBean;
}
}
```