微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring @Service泛型:是否需要为每种类型创建一个bean?

如何解决Spring @Service泛型:是否需要为每种类型创建一个bean?

我正在尝试创建可用于任何类型实体的通用Crud服务。但是当我尝试它时,我注意到即使我已经自动连线了几种不同的服务,例如

value 1 value 2 value 3
8485    2515    0
121     0       0
36      0       415
0       0       0
0       0       0
0       1551    0

当我尝试.findAll()方法时,我发现它在两个服务上都返回了项目。因此,在进行了一些调试之后,我注意到itemService和studentsService的实例相同,这将解释我刚才提到的内容

为确保这一点,我进行了一些小测试,如下所示:

@Autowired
MyService<Item> itemService;

@Autowired
MyService<Students> studentsService;

基本上,我设置了一个通用的foo服务,并在我认为应该是两个不同的实例(Foo和Foo)下自动对其进行装配,并在构造函数上使用一个计数器来检查该类实例化了多少次。但是,我认为实际上不是1而不是counter = 2(一个来自fooStr,另一个来自fooLong),证实了我以前的假设。

所以这是我的问题:如果使用@Service,我是否真的需要为每种泛型类型声明一个bean?有没有更简单的方法?我必须为一个项目做很多相同的事情,所以我很想避免必须为每种实体类型声明所有bean

解决方法

默认情况下,Service是单例。为了每次获取一个新实例,请使用 @Scope("prototype")类上的Service注释

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。