SpringBoot之Java配置

Java配置也是Spring4.0推荐的配置方式,完全可以取代XML的配置方式,也是SpringBoot推荐的方式。

Java配置是通过@Configuation和@Bean来实现的:

  1、@Configuation注解,说明此类是配置类,相当于Spring的XML方式

  2、@Bean注解,注解在方法上,当前方法返回的是一个Bean

eg:

此类没有使用@Service等注解方式

1 package com.wisely.heighlight_spring4.ch1.javaconfig;
2 
3 public class FunctionService {
4     public String sayHello(String world) {
5         return "Hello " + world + "!";
6     }
7 }

此类没有使用@Service注解lei,也没有使用@Autowire注入Bean

 1 package com.wisely.heighlight_spring4.ch1.javaconfig;
 2 
 3 public class UseFunctionService {
 4     
 5     FunctionService functionService;
 6 
 7     public void setFunctionService(FunctionService functionService) {
 8         this.functionService = functionService;
 9     }
10     
11     public String SayHello(String world) {
12         return functionService.sayHello(world);
13     }
14 }

1、使用@Configuation注解说明此类是一个配置类

2、使用@Bean注解的方式注解在方法上,返回一个实体Bean,Bean的名称是方法名。

3、注入FunctionService的Bean的时候,可以直接使用functionService方法。

4、注解将functionService作为参数直接传入UseFunctionService。在spring容器中,只要在容器中存在一个Bean,就可已在另一个Bean的声明方法的参数中直接使用。

 1 package com.wisely.heighlight_spring4.ch1.javaconfig;
 2 
 3 import org.springframework.context.annotation.Bean;
 4 import org.springframework.context.annotation.Configuration;
 5 
 6 @Configuration
 7 public class JavaConfig {
 8     @Bean
 9     public FunctionService functionService() {
10         return new FunctionService();
11     }
12     
13     @Bean
14     public UseFunctionService useFunctionService() {
15         UseFunctionService useFunctionService = new UseFunctionService();
16         useFunctionService.setFunctionService(functionService());
17         return useFunctionService;
18     }
19     
20     @Bean
21     public UseFunctionService useFunctionService(FunctionService functionService) {
22         UseFunctionService useFunctionService = new UseFunctionService();
23         useFunctionService.setFunctionService(functionService);
24         return useFunctionService;
25     }
26 }

测试类:

 1 package com.wisely.heighlight_spring4.ch1.javaconfig;
 2 
 3 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 4 
 5 public class Main {
 6     public static void main(String[] args) {
 7         AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
 8         UseFunctionService useFunctionService = context.getBean(UseFunctionService.class);
 9         System.out.println(useFunctionService.SayHello("java config"));
10         context.close();
11     }
12 }

 

posted @ 2018-03-22 10:29  JohnEricCheng  阅读(2929)  评论(0编辑  收藏  举报