SpringBoot之Java配置的实现

 更新时间:2019年01月30日 10:49:35   作者:JohnEricCheng  
这篇文章主要介绍了SpringBoot之Java配置的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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();
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • ThreadLocal常用方法、使用场景及注意事项说明

    ThreadLocal常用方法、使用场景及注意事项说明

    这篇文章主要介绍了ThreadLocal常用方法、使用场景及注意事项说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Scala中Array和List的区别说明

    Scala中Array和List的区别说明

    这篇文章主要介绍了Scala中Array和List的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • SpringCloud组件OpenFeign之默认HTTP请求方式详解

    SpringCloud组件OpenFeign之默认HTTP请求方式详解

    这篇文章主要介绍了SpringCloud组件OpenFeign之默认HTTP请求方式详解,在SpringMvcContract类中有个这样的方法processAnnotationOnMethod,见名思意,这个方法就是处理Feign接口下方法上的注解的,需要的朋友可以参考下
    2024-01-01
  • Java读取DBF文件(GBK编码)的方法

    Java读取DBF文件(GBK编码)的方法

    在Java开发中,有时需要读取DBF(dBase文件)格式的数据文件,而这些文件通常采用GBK(简体中文)编码,本文将介绍如何使用Java读取采用GBK编码的DBF文件,需要的朋友可以参考下
    2024-11-11
  • Java回调函数原理实例与代理模式的区别讲解

    Java回调函数原理实例与代理模式的区别讲解

    今天小编就为大家分享一篇关于Java回调函数原理实例与代理模式的区别讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • 详解SpringBoot多跨域请求的支持(JSONP)

    详解SpringBoot多跨域请求的支持(JSONP)

    跨域是很多项目需要遇到的文章,本篇文章主要介绍了详解SpringBoot多跨域请求的支持(JSONP),具有一定的参考价值,有兴趣的可以了解一下
    2017-04-04
  • SpringBoot+Redis BitMap实现签到与统计的项目实践

    SpringBoot+Redis BitMap实现签到与统计的项目实践

    最近项目里需要集成签到和统计功能,连续签到后会给用户发放一些优惠券和奖品,以此来吸引用户持续在该品台进行活跃,本文就详细的介绍一下如何实现,感兴趣的可以了解一下
    2023-09-09
  • 解决JSONObject.toJSONString()输出null的问题

    解决JSONObject.toJSONString()输出null的问题

    这篇文章主要介绍了解决JSONObject.toJSONString()输出null的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • mybatis新手快速入门以及一些错误汇总

    mybatis新手快速入门以及一些错误汇总

    这篇文章主要给大家介绍了关于mybatis新手快速入门以及一些错误的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 一文带你了解Java中的ForkJoin

    一文带你了解Java中的ForkJoin

    这篇文章主要介绍了一文带你了解Java中的ForkJoin,ForkJoinTask本身的依赖关系并不复杂,它与异步任务计算FutureTask一样均实现了Future接口,下文更多相关资料,需要的小伙伴可以参考一下
    2022-04-04

最新评论