【问题标题】:Refering bean from one jar to another将 bean 从一个罐子转到另一个罐子
【发布时间】:2025-12-12 13:05:02
【问题描述】:

我有 2 个罐子,common.jar 和 business.jar。 common.jar 包含所有模块共享的通用功能,最重要的是它具有休眠会话工厂配置,例如 - .

现在,我想将 mySessionFactory 从 common.jar 引用到我的 business.jar,因为我在我的 business.jar 中定义事务信息,并且事务配置需要 HibernateSession 信息。

请建议我如何将 bean 从一个罐子引用到另一个罐子。

【问题讨论】:

  • 如果可以的话,我建议使用 Spring JPA。如果不尝试使用@Component 注释您的数据库助手类并将其自动装配到您的业务模块中,或者尝试*.com/questions/4128716/…
  • 这不是 hibernate/JPA 的问题。我有一个 spring 内置类被用作我的子 jar 中的一个 bean。当我尝试在我的父 jar 中自动装配该类时出现异常。

标签: spring jar dependencies autowired


【解决方案1】:

关于代码依赖本身(使业务模块依赖于commons模块以实现源代码重用),我建议您使用构建工具(mavengradle会很好候选人)。

关于 DI,你应该在 commons 模块 中定义一个配置(如果 Hibernate 在 commons 模块中工作正常,我想你已经有了这个)。

@Configuration
// other configurations for Hibernate, component scans, etc
public class CommonsConfig {

}

然后,在业务模块中,你应该导入commons配置。

@Configuration
@Import(CommonsConfig.class)
public class BusinessConfig{

}

现在应该通过来自业务模块的组件扫描来检测来自公共模块的 bean(并且您应该能够对来自业务模块中的公共模块的 bean 使用 @Autowire)。

【讨论】:

  • 感谢您的回复。但是是否有可能通过 XML 实现它。说 在我的父 jar 中,如何通过 xml 自动装配 sessionFactory?
最近更新 更多