spring的@Bean用法
@Bean
该注释的属性的名称和语义类似于Spring XML模式中bean的元素的名称和语义。@Bean指示方法产生一个由Spring容器管理的bean。
源码如下:
@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Bean {@AliasFor("name")String[] value() default {};@AliasFor("value")String[] name() default {};/** @deprecated */@DeprecatedAutowire autowire() default Autowire.NO;boolean autowireCandidate() default true;String initMethod() default "";String destroyMethod() default "(inferred)";
}
由源码可知,@Bean可以用在方法和注释上。
使用例子
- 用在方法上:
public class DataSource {private String url;private String userId;private String password;public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "DataSource{" +"url='" + url + '\'' +", userId='" + userId + '\'' +", password='" + password + '\'' +'}';}
}
@Configuration
public class DataBaseConfig {@Bean("dataSource")public DataSource getDataSource(){DataSource dataSource = new DataSource();dataSource.setUserId("jingsi");dataSource.setPassword("123456");dataSource.setUrl("www");return dataSource;}}
@RestController
public class IndexController {@Autowired
// @Resource(name = "user")private User user;@Autowiredprivate DataSource dataSource;@GetMapping(value = "index")public String index(){return "hello world!"+"dataSource:"+dataSource;}
}
- @Bean可以为Bean同时定义多个别名,但是别名不能为空字符串。
@Configuration
public class DataBaseConfig {@Bean({"dataSource","data2"})public DataSource getDataSource(){DataSource dataSource = new DataSource();dataSource.setUserId("jingsi");dataSource.setPassword("123456");dataSource.setUrl("www");return dataSource;}}
- 一般情况下,官网介绍,@Bean与@Configuration联动使用,但是我试了一下,@Bean与@Component一起使用一样生效,官网有介绍区别,这边还没有过多的理解。不过可以知道的是,与@Component一起使用,initMethod属性不生效,与@Configuration一起使用,initMethod属性有效。
@Component
public class DataBaseConfig {@Bean({"dataSource","data2"},initMethod = "toString")public DataSource getDataSource(){DataSource dataSource = new DataSource();dataSource.setUserId("jingsi");dataSource.setPassword("123456");dataSource.setUrl("www");return dataSource;}}
spring的@Bean用法相关推荐
- Spring 注解 @bean 和 @component 的区别, 你知道吗?
本文打算介绍几个不太容易说出其区别,或者用途的 Spring 注解,比如 @Component 与 @Bean 的比较,@ControllerAdvice 是如何处理自定义异常的等等. Spring ...
- 天天用 Spring,bean 实例化原理你懂吗?
来源:小小木的博客 www.cnblogs.com/wyc1994666/p/10650480.html 本次主要想写spring bean的实例化相关的内容.创建spring bean 实例是spr ...
- 品Spring:bean定义上梁山
技术不枯燥,先来点闲聊 先说点好事高兴一下.前段时间看新闻说,我国正式的空间站建设已在进行当中.下半年,长征五号B运载火箭将在海南文昌航天发射场择机将空间站核心舱发射升空.预计用2到3年将空间站建好. ...
- 【Spring】Bean
BeanDefinition:表示Bean定义 Spring根据BeanDefinition来创建Bean对象,BeanDefinition有很多属性用来描述Bean,是spring中非常核心的概念 ...
- Spring 异步@Async注解用法 Spring @Async注解用法总结 Spring @Async基本用法示例
Spring 异步@Async注解用法 Spring @Async注解用法总结 Spring @Async基本用法示例 一.概述 在日常开发的工作中,经常会使用异步进行开发.Spring 提供一个简单 ...
- 总结 Spring 注入 bean 的四种方式
一提到 Spring,大家最先想到的是啥?是 AOP 和 IOC 的两大特性?是 Spring 中 Bean 的初始化流程?还是基于 Spring 的 Spring Cloud 全家桶呢? 今天我们就 ...
- 详解Spring中Bean的自动装配~
目录 1. 环境搭建 2. byName.byType 3. 使用注解实现自动装配 @Autowired @Resource 小结 自动装配是Spring满足bean依赖的一种方式 Spring会在上 ...
- 【Spring】bean的作用域(@Scope) - singleton、prototype
已知spring 3+已拥有多种不同的作用域: singleton(默认).prototype.request.session.global session.(参考: spring中scope作用域( ...
- spring注解--@Bean
@Configuration public class KnightConfig {@Beanpublic Knight knight(){return new BraveKnight(quest ( ...
最新文章
- Microsoft Security Essential: 微软安全软件
- pycharm的项目文件中包括什么_工程建设施工招标项目的招标文件包括哪些内容?...
- 信号模型噪声服从零均值高斯分布_非高斯噪声下基于分数低阶循环谱的调制识别方法...
- Fedora最小化安装后没有ifconfig命令
- 开课吧:C++基础之字符串匹配之BM算法(Boyer-Moore)
- c#SqlServer总结
- 怎样让计算机加快速度,六大招教你把旧电脑恢复如新,速度提升N倍!-怎么让电脑速度变快...
- css3 标点符号在首位,CSS 让标点符号不出现在行首
- JavaScript——实现九九乘法表
- c语言入门编辑什么,萌新必看——C语言入门编辑器推荐
- 如何删除.git目录
- 控温/恒温烙铁操作方法及使用说明
- SRRC认证全面解析
- mysql易百_MySQL DATE类型(来自易百)
- 华中师范大学计算机入学考试题目及分值,2018秋华师计算机的作业满分.docx
- Git安装及基本操作
- 国际最顶尖的AI技术发展,愈像一场比拼资金与人才的竞赛
- 孟凯想玩转大数据,得先看懂《小时代》
- 零基础如何备考PMP项目管理?
- 【2016年第6期】众包模式在大规模遥感影像信息提取领域的探索
热门文章
- 理想边界尺寸怎么算_预算10万,沃兰多与哈弗F7应该怎么选?网友:论油耗它的优势明显...
- 个人博客搭建笔记----hexo根目录下的_config.yml配置解释
- VJ第一周个人训练赛
- 验证电路之TPS23753A设计
- 关于面试自我介绍的介绍和模板推荐
- osc mysql_MySQL在线修改表结构pt-osc
- 守卫剑阁1.8 修改版 ,完整了!
- 原IBM现联想的thinkpad笔记本编号规律
- 使用Elaticsearch7.x的suggester联想提示、简单实现类似google的联想搜索
- python网页爬虫漫画案例_Python爬虫-用Scrapy框架实现漫画的爬取