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();
}
}
SpringBoot之Java配置的更多相关文章
- SpringBoot学习(三)-->Spring的Java配置方式之读取外部的资源配置文件并配置数据库连接池
三.读取外部的资源配置文件并配置数据库连接池 1.读取外部的资源配置文件 通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法: @Configuration ...
- SpringBoot学习(二)-->Spring的Java配置方式
二.Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @Bean Spring的Java配置方式是通过 @ ...
- SpringBoot学习(二)——Spring的Java配置方式
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 一.@Configuration 和 @Bean Spring的Java配置方式是通过@Configuration和@Bean ...
- 1-3. SpringBoot基础,Java配置(全注解配置)取代xml配置
最近突发奇想,整合一下以前一些学习笔记,分享自己这几年爬过的坑,逐步更新文章,谢谢大家的关注和支持. 这节讲一下SpringBoot的学习必须的一些基础,Java配置.其实在Spring2.0时代就已 ...
- 1.0-springboot的java配置方式
1.创建User实体类. @Data public class User { private String username; private String password; private Int ...
- SpringBoot使用Nacos配置中心
本文介绍SpringBoot如何使用阿里巴巴Nacos做配置中心. 1.Nacos简介 Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计.它可以帮助您轻松构建云 ...
- SpringBoot零XML配置的Spring Boot Application
Spring Boot 提供了一种统一的方式来管理应用的配置,允许开发人员使用属性properties文件.YAML 文件.环境变量和命令行参数来定义优先级不同的配置值.零XML配置的Spring B ...
- Spring 的java 配置方式
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.1@Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration 和 @ ...
- springboot系列三、springboot 单元测试、配置访问路径、多个配置文件和多环境配置,项目打包发布
一.单元测试 生成的demo里面包含spring-boot-starter-test :测试模块,包括JUnit.Hamcrest.Mockito,没有的手动加上. <dependency> ...
随机推荐
- C#中方法、类等的默认访问修饰符~
C# 方法默认访问级别 : private C# 类默认访问级别 : internal 1.命名空间下的元素的默认访问修饰符 public : 同一程序集的其他任何代码或引用该程序集的其他程序集都可以 ...
- echarts起始角度
series : [ { type: 'pie', startAngle: 180,// minAngle:5,// radius : ['0','60%'], center: ['50%', '50 ...
- Nginx Install 记录
一.安装编译工具及库文件 yum -y install gcc yum -y install gcc-c++ yum -y install zlib; yum -y install pcre-deve ...
- 支付宝 ILLEGAL_SIGN
支付宝 ILLEGAL_SIGN: 解决办法:地址加上 <![CDATA[ ...... ]]> <PAY_COMPLETE_PAGE_URL><![CDATA[http ...
- Load data local infile 实验报告
1.实验内容: 利用SQL语句“load data local infile”将“pet.txt”文本文件中的数据导入到mysql中 (pet表在数据库menagerie中) 2.实验过程及结果: ( ...
- hdu1172(枚举)
中文题,题意就不解释了. 思路:因为答案一定是四位数,所以只要枚举1000-9999,如果符合所有条件,那么保存一下答案,记录一下答案的个数,如果答案是唯一的,那么输出它,否则,就不确定. 代码如下: ...
- MySQL-ISNULL()、IFNULL()和NULLIF()函数
以下三个函数都可以用于where子条件,作为数据删除.更新的记录定位依据. 如: SELECT * FROM usergrade WHERE ISNULL(USERNAME); 一.ISNULL(ex ...
- Leetcode 树(102, 637)
637: 二叉树的层平均值 给定一个非空二叉树,返回一个由每层节点平均值组成的数组: https://leetcode-cn.com/problems/average-of-levels-in-bin ...
- 【mac微信小助手】WeChatPlugin使用教程!
微信小助手 mac版集微信防撤回和微信多开等诸多功能于一身,可以有效的阻止朋友微信撤回消息,还能开启无手机验证登录,再也不用每次登录扫码验证啦,非常方便! wechatplugin mac版安装教 ...
- java截取2个指定字符之间的字符串
/** * 截取字符串str中指定字符 strStart.strEnd之间的字符串 * * @param string * @param str1 * @param str2 * @return */ ...