Spring中Bean及@Bean的理解
随时随地技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
from:https://www.cnblogs.com/bossen/p/5824067.html
Bean在Spring和SpringMVC中无所不在,将这个概念内化很重要,下面分享一下我的想法:
一、Bean是啥
1、Java面向对象,对象有方法和属性,那么就需要对象实例来调用方法和属性(即实例化);
2、凡是有方法或属性的类都需要实例化,这样才能具象化去使用这些方法和属性;
3、规律:凡是子类及带有方法或属性的类都要加上注册Bean到Spring IoC的注解;
4、把Bean理解为类的代理或代言人(实际上确实是通过反射、代理来实现的),这样它就能代表类拥有该拥有的东西了
5、我们都在微博上@过某某,对方会优先看到这条信息,并给你反馈,那么在Spring中,你标识一个@符号,那么Spring就会来看看,并且从这里拿到一个Bean或者给出一个Bean
二、注解分为两类:
1、一类是使用Bean,即是把已经在xml文件中配置好的Bean拿来用,完成属性、方法的组装;比如@Autowired , @Resource,可以通过byTYPE(@Autowired)、byNAME(@Resource)的方式获取Bean;
2、一类是注册Bean,@Component , @Repository , @ Controller , @Service , @Configration这些注解都是把你要实例化的对象转化成一个Bean,放在IoC容器中,等你要用的时候,它会和上面的@Autowired , @Resource配合到一起,把对象、属性、方法完美组装。
三、@Bean是啥?
1、原理是什么?先看下源码中的部分内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
意思是@Bean明确地指示了一种方法,什么方法呢——产生一个bean的方法,并且交给Spring容器管理;从这我们就明白了为啥@Bean是放在方法的注释上了,因为它很明确地告诉被注释的方法,你给我产生一个Bean,然后交给Spring容器,剩下的你就别管了
2、记住,@Bean就放在方法上,就是产生一个Bean,那你是不是又糊涂了,因为已经在你定义的类上加了@Configration等注册Bean的注解了,为啥还要用@Bean呢?这个我也不知道,下面我给个例子,一起探讨一下吧:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
|
从上面的例子也印证了我上面的总结的内容:
1、凡是子类及带属性、方法的类都注册Bean到Spring中,交给它管理;
2、@Bean 用在方法上,告诉Spring容器,你可以从下面这个方法中拿到一个Bean
Spring中Bean及@Bean的理解相关推荐
- java 获取spring对象数组_解析Java中如何获取Spring中配置的bean
解析Java中如何获取Spring中配置的bean Java中如何获取Spring中配置的bean?下面是由百分网小编为大家整理的解析Java中如何获取Spring中配置的bean,喜欢的可以收藏一下 ...
- spring中默认标签Bean标签解析一
在Spring种有两种标签,一种是默认标签,另一种是自定义标签.对两种标签的用法和解析方式存在着很大的不同. 首先分析的是默认标签的解析过程. 解析标签的入口代码 protected void par ...
- Spring 中的内部bean 和集合
在Spring中所谓的内部bean(inner bean)是指一个bean 的<property/>或<constructor-arg/>元素中使用<bean/>元 ...
- Spring中注解注入bean和配置文件注入bean
注解的方式确实比手动写xml文件注入要方便快捷很多,省去了很多不必要的时间去写xml文件 按以往要注入bean的时候,需要去配置一个xml,当然也可以直接扫描包体,用xml注入bean有以下方法: 1 ...
- Spring中的普通bean和工厂bean
普通bean和工厂bean 普通bean 工厂bean(FactoryBean) Spring中有两种类型bean,一种是普通bean,另外一种是工厂bean(FactoryBean). 区别: 不同 ...
- 谈谈自己对Spring中IOC和AOP的理解
Spring框架的核心思想主要是IOC和AOP的思想 IOC IOC概念 Spring中的IOC AOP AOP概念 百度百科的解释 个人理解 AOP思想 IOC IOC概念 所谓IOC即 Inver ...
- 对于Spring中事务的readonly属性理解
spring中readOnly的定义,并不是不能在事务中进行修改等DML操作,它只是一个"暗示",提示数据库驱动程序和数据库系统,这个事务并不包含更改数据的操作,那么JDBC驱动程 ...
- Spring中把一个bean对象交给Spring容器管理的三种方式
一.使用@Component,把bean对象依赖交给Spring容器 注意,该注解不能使用,则说明未添加依赖,需要去该项目pom.xml文件内引入依赖,若该项目只是作为一个存放工具类的子模块项目,没有 ...
- Spring中IoC和DI的理解
通常情况下,Spring是学习者学完se部分马上就要面对的一个轻量级框架.实际上,Spring框架功能很强大,而IoC和AOP是两个比较重要的知识点.经过我一段时间学习感到IoC要比AOP容易理解.今 ...
- 【Java基础】Spring 中 Bean 的理解与使用
大白话讲解: 从广义上 Spring 注解可以分为两类: 一类注解是用于注册 Bean 假如 IoC 容器是一间空屋子,首先这间空屋子啥都没有,我们要吃大餐,我们就要从外部搬运食材和餐具进来.这里把某 ...
最新文章
- 「每周CV论文推荐」 初学深度学习人脸属性分析必读的文章
- CVPR 2018 | 腾讯AI Lab入选21篇论文详解
- 【转载】C#扫盲之:==/Equals /ReferenceEquals 异同的总结,相等性你真的知道吗?
- 整数分解为若干项之和python_SVD奇异值分解及Python实例
- python写一个服务_Python写一个服务
- 我与CSDN的2020年
- r语言plotmds_多元统计分析R语言建模| 11 多维标度法MDS
- 用户故事与敏捷方法 - 第二章 编写故事
- 【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)
- 数据分析的意义与必备技能
- jsoup爬虫发送get、post请求、解析html、获取json
- 微信小程序 数组 Json 导出到excel
- Java--多线程之并发,并行,进程,线程(一)
- 尚鼎峰:抖音短视频是如何在几秒钟内吸引用户观看的?
- 基于树莓派4b的传感器数据可视化实现
- MATLAB弹出对话框的使用
- TEC1401.Report开发技术总结 - 第九章 使用BI Publisher开发报表-使用BI Publisher创建RTF模板的语法(4/5)
- windows 2008 下C#调用office组件访问拒绝的解决方法(failed du
- JavaScript从入门到放弃到精通
- JAVA unusual问题收集