IOC Bean

一.Bean

概念:

被Spring IOC所管理的对象

创建方式:

1.通过xml配置<bean>标签

2.通过@Component注解

二.@Component注解

表示要被IOC所管理(放在类上,类名开头变成小写是bean的name)

衍生注解(本质上也是@Component注解)

@Configuration:配置类代替xml配置文件

@Service:Spring MVC中使用,表示该类是服务层

@Repository:Spring MVC中使用,表示该类是持久层

三.@Bean注解

功能和@Component一样,表示要被IOC所管理,但使用方式不同

使用方式:

1.在@Configuration配置类中使用

2.@Bean要放在方法上(方法名就是bean的name)

@Component必须写在类上,如果是第三方包我们无法在类上添加该注解,无法自定义初始化过程

在@Configuration下的@Bean方法,返回对象就是ioc所管理的对象,默认情况下多次调用方法都返回同一对象

注意事项:

1.只有被ioc所管理的对象才能参数自动装配

2.参数装配与bean的声明顺序无关,spring会解析依赖关系,自己控制顺序

拓展:

在同一配置类顺序无所谓

在不同配置类顺序也无所谓

四.构造Bean调用哪个构造方法?

@Component/@Import:

1.有默认构造就调用默认构造

2.只有一个有参构造,调用该有参构造,并且参数装配

3.多个有参构造并且没有无参构造,会报错

@Bean:

可以在方法里自由选择构造

//    使用@Component就是构造的参数注入
//    使用@Bean就是@Bean方法的参数注入

五.@Order/实现Ordered接口

当有多个同类型的bean,用List接收时,通过@Order注解改变bean在List中的位置,值越小优先级越高

六.@Lazy

普通bean在ioc加载时已经创建,加上@Lazy的bean只有在使用时(自动注入/getBean)才创建

懒加载可以提高Spring应用启动速度,项目中bean会非常多,如果都在启动时创建很耗时,使用时再创建更合理

七.@Scope

设置bean的作用域,有两种类型singleton(单例)/prototype(多例)

通常单例更加节省内存,但是有些业务就是符合多例情况,如每辆汽车都要一个发动机,这时发动机就不能单例

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值