我正在将第三方库连接到Spring应用程序中,我希望既控制它的生命周期,又从@Repository
的异常转换/转换功能中获益。
我可以继承第三方库中的类型,并在继承的类型上使用@Repository
,但是对于最终的类,这是行不通的,我想要@bean
的生命周期灵活性。
有什么方法可以声明一个bean也是一个原型吗?
发布于 2019-11-25 12:43:29
据我所知,您无法将原型信息添加到现有类中。正如在这个SO answer中所看到的,有一个解决办法,但是它似乎有点复杂。
我建议一种更直截了当的方法:喜欢组合而不是继承。通过这种方式,您可以创建自己的类,包装第三方库类的功能,将其注释为@Repository
,并将其定义为@Bean:
@Repository
public class LibWrapper {
private TrirdPartyClass wrapped;
public void insert() {
wrappped.insert();
}
}
@Configuration
public class LibWrapperConfiguration {
@Bean
public LibWrapper libWrapper(){
return new LibWrapper();
}
}
https://stackoverflow.com/questions/59030247
复制相似问题