美文网首页JavaJava 杂谈
SpringBoot之Java配置的实现

SpringBoot之Java配置的实现

作者: cd4bd3aa39ec | 来源:发表于2019-05-08 15:32 被阅读1次

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

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

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

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

    eg:

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

    package com.wisely.heighlight_spring4.ch1.javaconfig;
    public class FunctionService {
    public String sayHello(String world) {
    return "Hello " + world + "!";
    }
    }
    

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

    package com.wisely.heighlight_spring4.ch1.javaconfig;
    public class UseFunctionService {
    FunctionService functionService;
    public void setFunctionService(FunctionService functionService) {
    this.functionService = functionService;
    }
    public String SayHello(String world) {
    return functionService.sayHello(world);
    }
    }
    

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

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

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

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

    package com.wisely.heighlight_spring4.ch1.javaconfig;
     
    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 useFunctionService = new UseFunctionService();
        useFunctionService.setFunctionService(functionService());
        return useFunctionService;
      }
       
      @Bean
      public UseFunctionService useFunctionService(FunctionService functionService) {
        UseFunctionService useFunctionService = new UseFunctionService();
        useFunctionService.setFunctionService(functionService);
        return useFunctionService;
      }
    }
    

    测试类:

    package com.wisely.heighlight_spring4.ch1.javaconfig;
     
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
     
    public class Main {
      public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
        UseFunctionService useFunctionService = context.getBean(UseFunctionService.class);
        System.out.println(useFunctionService.SayHello("java config"));
        context.close();
      }
    }
    

    以上就是本文的全部内容,希望对大家的学习有所帮助

    相关文章

      网友评论

        本文标题:SpringBoot之Java配置的实现

        本文链接:https://www.haomeiwen.com/subject/dmpmoqtx.html