Java 配置是通过 @Configuration 和 @Bean 来实现的
- @Configuration 声明当前类是一个配置类,相当于一个 Spring 配置的 xml 文件.
- @Bean 注解在方法上,声明当前方法的返回值为一个 Bean.
示例:
public class FunctionService {
public String say(String word) {
return "你好 "+ word;
}
}
public class UseFunctionService {
FunctionService functionService;
public void setFunctionService(FunctionService functionService) {
this.functionService = functionService;
}
public String SayHello(String word){
return functionService.say(word);
}
}
此处未使用@Service @AutoWired
配置:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JavaConfig {
@Bean
public FunctionService functionService(){
return new FunctionService();
}
@Bean
public UseFunctionService useFunctionService(){
UseFunctionService functionService = new UseFunctionService();
functionService.setFunctionService(functionService());
return functionService;
}
}
测试:
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
/**
* @ClassName: Test
* @Description: TODO java 配置示例
* @author etfox
* @date 2018年8月19日 下午5:47:27
*
* @Copyright: 2018 www.etfox.com Inc. All rights reserved.
*/
public class TestMain {
@Test
public void test(){
AnnotationConfigApplicationContext context =
new AnnotationConfigApplicationContext(JavaConfig.class);
UseFunctionService functionService = context.getBean(UseFunctionService.class);
System.out.println(functionService.SayHello("Spring 4.X Java 配置!"));
context.close();
}
}
结果:
你好 Spring 4.X Java 配置!