Spring——注解开发定义bean+纯注解开发+bean管理

 

环境准备:

maven项目

Dao层一个接口一个实现类

service层一个接口一个实现类,将dao层中的实现类注册到IOC容器里面,在service层的实现类里面定义一个Dao层的bean类

注解开发定义bean

将配置文件里面的bean改成注解开发

将配置文件里的bean信息删除,去到bookDao的实现类处

 加上一个@Component :组件注解

这里就相当于是上面那个bean标签的作用

注意:上面这里名称不写的话,就不能在getbean里面使用名称获取,要使用按类型获取 

现在还需要在配置文件做一件事,让它去扫描组件

加上这句话就是扫描位于org.example.dao.impl下的文件     组件-扫描

 

以上就是使用注解定义bean

另外衍生的三个注解功能和 @Component一样,只用于理解

纯注解开发

使用Java类代替配置文件,在config目录下新建一个SpringConfig类代替配置文件

在SpringConfig上加上一个@Configuration注解就可以让SpringConfig变成一个配置类,

再加上一个@ComponentScan("org"),扫描org下的所有文件并注册到IOC容器中

现在就可以把原本的配置文件无效化了

新建一个测试类,在里面运行SpringConfig获取IOC,这次试用一个新的对象类

AnnotationConfigApplicationContext    :注解开发应用上下文

再把刚刚的配置类放进去,剩下的操作就和之前一样了

 

 bean管理

        bean作用范围

 按照类型获取两个bean输出,发现是同一个,因为是单例

 

 现在要改成非单例,在BookDao实现类上加上一个@Scope标签

取值两个:

@Scope("singleton")   表示单例,默认是单例 
@Scope("prototype")   表示非单例 

再次输出就变成非单例了

        Bean生命周期控制

使用下图的两个注解就可以在初始化和销毁前分别运行init和destroy

同样,这里一般不会执行到销毁阶段,会直接关闭虚拟机,所以要使用关闭钩子手动在关虚拟机前销毁IOC容器,关闭钩子是只在AnnotationConfigApplicationContext才有的

 

成功执行销毁方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值