从Spring 3起,JavaConfig功能已经包含在Spring核心模块,它允许开发者将bean定义和在Spring配置 文件到Java类中。
但是,仍然允许使用经典的 方式来定义bean和配置,JavaConfig是另一种替代解决方案。
看来看经典的 定义和JavaConfig的不同,如下定义在Spring容器中的bean。

Spring file - applicationContext.  :

<beans  ns=\"http://www.spring work.org/schema/beans\"
	 ns:xsi=\"http://www.w3.org/2001/ Schema-instance\"
	xsi:schemaLocation=\"http://www.spring work.org/schema/beans
	http://www.spring work.org/schema/beans/spring-beans-3.0.xsd\">
 
	<bean id=\"helloBean\" class=\"com.yiibai.hello.impl.HelloWorldImpl\">
		
</beans>
等效于以下JavaConfig的配置:
package com.yiibai.config;
import org.spring work.context.annotation.Bean;
import org.spring work.context.annotation.Configuration;
import com.yiibai.hello.HelloWorld;
import com.yiibai.hello.impl.HelloWorldImpl;
/* http://www.manongjc.com/article/1603.html */
@Configuration
public class AppConfig {
	
    @Bean(name=\"helloBean\")
    public HelloWorld helloWorld() {
        return new HelloWorldImpl();
    }
	
}

Spring JavaConfig Hello World

现在,看到一个完整的Spring JavaConfig例子。

1. 工程目录结构

这个例子的目录结构如下。

3. Spring Bean

一个简单的Bean

package com.yiibai.hello;
 
public interface HelloWorld {
	
	void printHelloWorld(String msg);
 
}
package com.yiibai.hello.impl;

import com.yiibai.hello.HelloWorld;

public class HelloWorldImpl implements HelloWorld {

	@Override
	public void printHelloWorld(String msg) {

		System.out.println(\"Hello : \" + msg);
	}

}

4. JavaConfig 注解

使用 @Configuration 注释告诉 Spring,这是核心的 Spring 配置文件,并通过 @Bean 定义 bean。
package com.yiibai.config;

import org.spring work.context.annotation.Bean;
import org.spring work.context.annotation.Configuration;
import com.yiibai.hello.HelloWorld;
import com.yiibai.hello.impl.HelloWorldImpl;

@Configuration
public class AppConfig {
	
    @Bean(name=\"helloBean\")
    public HelloWorld helloWorld() {
        return new HelloWorldImpl();
    }
	
}

5. 执行结果

使用 AnnotationConfigApplicationContext 加载您的JavaConfig类

package com.yiibai.core;
 
import org.spring work.context.ApplicationContext;
import org.spring work.context.annotation.AnnotationConfigApplicationContext;
import com.yiibai.config.AppConfig;
import com.yiibai.hello.HelloWorld;
 
public class App {
	public static void main(String[] args) {
	    
            ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
	    HelloWorld obj = (HelloWorld) context.getBean(\"helloBean\");
	    
	    obj.printHelloWorld(\"Spring Java Config\");

	}
}

输出结果

Hello : Spring Java Config
收藏 打印