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配置的更多相关文章

  1. SpringBoot学习(三)-->Spring的Java配置方式之读取外部的资源配置文件并配置数据库连接池

    三.读取外部的资源配置文件并配置数据库连接池 1.读取外部的资源配置文件 通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法: @Configuration ...

  2. SpringBoot学习(二)-->Spring的Java配置方式

    二.Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @Bean Spring的Java配置方式是通过 @ ...

  3. SpringBoot学习(二)——Spring的Java配置方式

    Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 一.@Configuration 和 @Bean Spring的Java配置方式是通过@Configuration和@Bean ...

  4. 1-3. SpringBoot基础,Java配置(全注解配置)取代xml配置

    最近突发奇想,整合一下以前一些学习笔记,分享自己这几年爬过的坑,逐步更新文章,谢谢大家的关注和支持. 这节讲一下SpringBoot的学习必须的一些基础,Java配置.其实在Spring2.0时代就已 ...

  5. 1.0-springboot的java配置方式

    1.创建User实体类. @Data public class User { private String username; private String password; private Int ...

  6. SpringBoot使用Nacos配置中心

    本文介绍SpringBoot如何使用阿里巴巴Nacos做配置中心. 1.Nacos简介 Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计.它可以帮助您轻松构建云 ...

  7. SpringBoot零XML配置的Spring Boot Application

    Spring Boot 提供了一种统一的方式来管理应用的配置,允许开发人员使用属性properties文件.YAML 文件.环境变量和命令行参数来定义优先级不同的配置值.零XML配置的Spring B ...

  8. Spring 的java 配置方式

    Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.1@Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration 和 @ ...

  9. springboot系列三、springboot 单元测试、配置访问路径、多个配置文件和多环境配置,项目打包发布

    一.单元测试 生成的demo里面包含spring-boot-starter-test :测试模块,包括JUnit.Hamcrest.Mockito,没有的手动加上. <dependency> ...

随机推荐

  1. C# 使用Newtonsoft.Json读写Json文件

    { "CAN": false, "AccCode": 4294901856, "Id": 768, "BPointMove&quo ...

  2. 华为AR-111S路由器GRE协议设置

    一.GRE的定义: gre(generic routing encapsulation,通用路由封装)协议是对某些网络层协议(如ip 和ipx)的数据报进行封装,使这些被封装的数据报能够在另一个网络层 ...

  3. 论文速读(Chuhui Xue——【arxiv2019】MSR_Multi-Scale Shape Regression for Scene Text Detection)

    Chuhui Xue--[arxiv2019]MSR_Multi-Scale Shape Regression for Scene Text Detection 论文 Chuhui Xue--[arx ...

  4. Dataguard配置总结

    Dataguard配置总结 本例情形 在主库存在运行的情况下,增加配置dataguard备库,实现双机热备,高可用性. 主库要求,归档模式,强制归档. 主库idty 备库idty_st 1.密码文件 ...

  5. sitecore8.2 基于item路径查询item

    查询: query:/sitecore/content/home/foo/bar 结果 bar

  6. leetcode 66.加一 python3

    class Solution: def plusOne(self, digits): """ :type digits: List[int] :rtype: List[i ...

  7. 01: 腾讯云API-云服务器

    1.1 云服务器 1.腾讯云SDK使用举例 网址:https://cloud.tencent.com/document/sdk/Python #! /usr/bin/env python # -*- ...

  8. shell之for和if实现批量替换多目录下的文件

    问题背景: 生产环境的项目图片文件夹众多,每个项目都会有一个图片文件夹,现在要批量替换每个文件夹下的一张模板图片 如图,我们要替换每一个文件夹下的01.jpg shell 脚本 #/bin/bash ...

  9. 搭建Flutter-iOS开发环境

    https://www.jianshu.com/p/b50a92afbef1 1.获取Flutter工程 git clone -b beta https://github.com/flutter/fl ...

  10. shell编程(六)之数组

    数组: 存储多个元素的连续的内存空间 索引: 编号从0开始,属于数值索引 注意:索引也可支持使用自定义的格式,而不仅仅是数值格式 声明数组: declare -a ARRAY_NAME declare ...