是否有一种方法(基类的任何注释)使用它来标记一个类,以便spring在上下文初始化时抛出错误?基本上我有一个类不是线程安全的设计,我不希望任何人使用它作为单独的bean春天。我知道它可以用作原型bean,但是我可以禁止它,它一起被用作弹簧豆吗?
答案 0 :(得分:6)
使其初始化后方法抛出。
public final void afterPropertiesSet() {
throw new UnsupportedOperationException();
}
@PostConstruct
public final void forbidDependencyInjection() {
throw new UnsupportedOperationException();
}
答案 1 :(得分:2)
您可以使用自定义BeanPostProcessor
public Object postProcessBeforeInitialization(final Object bean, final String beanName) throws BeansException {
Class<?> targetClass = AopUtils.getTargetClass(bean);
if (targetClass == MyProhibited.class)) {
....
return null;
}
return bean;
}
答案 2 :(得分:1)
您可以在该类的所有或某些方法周围或之前定义一个方面,以便在被调用时抛出异常。这不需要修改课程。