spring的bean依赖查找中的经典异常

•BeansException 子类型

spring设计的技巧就是spring中比较讨厌排斥check类型异常,也就是try...catch强制检查的异常,全部基本上用的是runtime异常类型,因此在接口上不需要声明一下,必须要用哪个接口,在调用的时候不需要到处去try...catch;传统javaee基本上都是一些check型异常居多。

异常类型触发条件(举例)场景举例
NoSuchBeanDefinitionException当查找Bean 不存在于IoC 容器时

BeanFactory#getBean

ObjectFactory#getObject

NoUniqueBeanDefinitionException类型依赖查找时,IoC 容器存在多个Bean 实例BeanFactory#getBean(Class)(getBean(String.class),在这个bean上面标注primary解决这个异常)
BeanInstantiationException当Bean 所对应的类型非具体类时(接口)BeanFactory#getBean
BeanCreationException当Bean 初始化过程中Bean 初始化方法执行异常时(bean和creation都是名称表示创建时异常)
BeanDefinitionStoreException当BeanDefinition 配置元信息非法时XML 配置资源无法打开

BeanCreation时顺序很重要,在初始化bean时,注意它的执行顺序,注意适当的try...catch,如果初始化的时候需要显示的去抛异常,如果它就是错了,不能让它通过,这是一种设计,fast-fail;

spring应用中遇到异常多看提示,cause by最终trace的原因,往上找spring异常的提示;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值