kha*_*hik 14 java configuration spring exception
我想在我的代码中捕获bean实例化异常.我有什么选择?一种方法是使用基于Java的容器配置:
@Configuration
public class AppConfig {
@Bean
public SomeBean someBean() {
try {
return new SomeBean(); // throws SomeException
} catch(SomeException se) {
return new SomeBeanStub();
}
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用基于XML或基于注释的配置使用Spring为bean实例化定义异常处理程序?
Der*_*har 11
方法someBean应该抓住SomeException然后扔BeanCreationException用SomeException的原因:
@Configuration
public class AppConfig {
@Bean
public SomeBean someBean() {
try {
return new SomeBean(); // throws SomeException
} catch (SomeException se) {
throw new BeanCreationException("someBean", "Failed to create a SomeBean", se);
}
}
}
Run Code Online (Sandbox Code Playgroud)
你不应该这样做。这就是让 Spring 为您创建 bean 的全部意义所在。如果您要使用new(如上)创建自己的 bean,为什么要使用 Spring 为您创建 bean?
您确实可以为自己分配对象并一起工作,而不是依赖注入等等。
尽管我了解问题背后的本质。我认为最好是在服务器加载期间失败。原因:应用程序不会处于不一致的状态。假设您捕获了异常并进行了一些清理,但其他类会期望该 bean 存在,但事实并非如此。
因此,最好它在初始化时失败,以便应用程序保持一致。尽管我不知道还有其他合法的做法。
| 归档时间: |
|
| 查看次数: |
12197 次 |
| 最近记录: |