第一次发博,来分享下最近对Spring注解的理解

本文详细解析了Spring框架中@Bean注解的用途及其与其他注解的配合使用方式,包括@Bean的作用、不同类型的注解分类、如何注册和使用Bean,以及Bean的不同作用域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、@Bean解释

             @Bean是一个方法级别上的注解,主要用在@Configuration注解的类里也可以用在@Component注解的类里
     意思就是加上这个注解的方法或属性会发送给ioc容器管理,而之后就可以使用@AutoWired或者@Resource装配Bean(即为指定对象装填值)。凡是子类及带有方法或属性的类都要加上注册Bean到Spring IoC的注解;@Bean 用在方法上,告诉Spring容器,你可以从下面这个方法中拿到一个Bean。
 

二、注解分为两类:

1、一类是使用Bean,即是把已经在xml文件中配置好的Bean拿来用,完成属性、方法的组装;比如@Autowired , @Resource,可以通过byTYPE(@Autowired)、byNAME(@Resource)的方式获取Bean;
2、一类是注册Bean,@Component , @Repository , @ Controller , @Service , @Configration这些注解都是把你要实例化的对象转化成一个Bean,放在IoC容器中,等你要用的时候,它会和上面的@Autowired , @Resource配合到一起,把对象、属性、方法完美组装。
 
总结:Spring帮助我们管理Bean分为两个部分,一个是注册Bean,一个装配Bean。完成这两个动作有三种方式,一种是使用自动配置的方式、一种是使用JavaConfig的方式,一种就是使用XML配置的方式。在自动配置的方式中,使用@Component去告诉Spring,我是一个bean,你要来管理我,然后使用@AutoWired注解去装配Bean(所谓装配,就是管理对象直接的协作关系)。然后在JavaConfig中,@Configuration其实就是告诉spring,spring容器要怎么配置(怎么去注册bean,怎么去处理bean之间的关系(装配))。那么久很好理解了,@Bean的意思就是,我首先将这个bean发送给你ioc容器(注明注册Bean的注解-@Component/@configuration/...),而当我要获取这个bean的时候(注明使用Bean的注解-@AutoWired/@Resource),你spring要按照这种方式去帮我获取到这个bean。到了使用xml的方式,也是如此。君不见<bean>标签就是告诉spring怎么获取这个bean,各种<ref>就是手动的配置bean之间的关系。
 

 

三、Bean的作用域

1)Singleton是单例类型,就是在创建起容器时就同时自动创建了一个bean的对象,不管你是否使用,他都存在了,每次获取到的对象都是同一个对象。注意,Singleton作用域是Spring中的缺省作用域
2) Prototype是原型类型,它在我们创建容器的时候并没有实例化,而是当我们获取bean的时候才会去创建一个对象,而且我们每次获取到的对象都不是同一个对象。
3) 当一个bean的作用域为Request, 每个HTTP请求都会有各自的bean实例, 该作用域仅在基于web的Spring ApplicationContext情形下有效。 仅在当前HTTP request内有效,因此可以根据需要放心的更改所建实例的内部状态,而其他请求中根据loginAction bean定义创建的实例,将不会看到这些特定于某个请求的状态变化。当处理请求结束,request作用域的bean实例将被销毁。
4)当一个bean的作用域为Session,表示在一个HTTP Session中,一个bean定义对应一个实例。
5) 当一个bean的作用域为Global Session,表示在一个全局的HTTP Session中,一个bean定义对应一个实例。global session作用域类似于标准的HTTP Session作用域,不过仅仅在基于portlet的web应用中才有意义
 
 
原博文:https://www.cnblogs.com/bossen/p/5824067.html
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/sxhjoker/p/9340400.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值