为了账号安全,请及时绑定邮箱和手机立即绑定

@Autowire Spring Bean 带有注入的构造函数参数?

@Autowire Spring Bean 带有注入的构造函数参数?

莫回无 2021-10-28 14:20:46
我有一个类似于此处链接的项目结构:https : //stackoverflow.com/a/29583882/1243462。我在一个 JAR 中有一个包含 Service 类的util 库,旨在从另一个 Java 库/Maven 项目中使用。但是,我的 Service 类本身使用构造函数注入。所以,原来的问题有:@Servicepublic class PermissionsService { ... }我有@Servicepublic class PermissionsService {  public PermissionsService(@Autowired PermissionsDao dao) {    //assign private dao field to autowired dao  }}而且,就像原来的帖子一样,我想创建一个实例PermissionsService并将其注入到我的客户端/消费者应用程序中。我不确定如何创建 Configuration 类。 @Configuration public class PersistenceConfig {   public PermissionsService getPermissionsServiceBean() {     //What goes here?   }}现在,我有一个解决方法,我用@Autowired PermissionsDao字段注入替换构造函数参数,并使用无参数构造函数。这使我能够: @Configuration public class PersistenceConfig {   public PermissionsService getPermissionsServiceBean() {     return new PermissionsService();   }}但是,由于不鼓励字段注入,那么构建此代码的正确方法是什么?
查看完整描述

1 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

在你的主模块中


@Configuration

@Import(PersistenceConfig.class)

public class ServiceConfig() {


}

在您的 utils 模块中


@Configuration

@ComponentScan(basePackages = {"path-to-persistence-service-and-any-dependencies"})

public class PersistenceConfig {


}

PermissionsDao如果配置正确,使用构造函数注入的事实应该无关紧要。


查看完整回答
反对 回复 2021-10-28
  • 1 回答
  • 0 关注
  • 506 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信