【发布时间】:2020-01-09 02:32:26
【问题描述】:
我正在编写一个包含一些实用程序类的库,是否有一种惯用的 spring 方式让库/jar 文件自动定义 bean?
该库将包含在几个 Spring 应用程序中,但我不想在所有使用我的帮助程序库的 Spring 应用程序中注册实用程序 bean。 所以有可能一个库/jar文件为自己定义bean并且所有使用spring应用程序的人都会自动将这些bean添加到它们的上下文中?
【问题讨论】:
标签: spring
我正在编写一个包含一些实用程序类的库,是否有一种惯用的 spring 方式让库/jar 文件自动定义 bean?
该库将包含在几个 Spring 应用程序中,但我不想在所有使用我的帮助程序库的 Spring 应用程序中注册实用程序 bean。 所以有可能一个库/jar文件为自己定义bean并且所有使用spring应用程序的人都会自动将这些bean添加到它们的上下文中?
【问题讨论】:
标签: spring
您可以根据实用程序/包对 bean 进行分组,然后在
中定义它们@配置
类。
例如
A 类和 B 类在 com.example.helper 包中,类似地 X 类和 Y 类在包 com.example.utilities 中
您可以在每个包中创建 2 个配置类并定义 bean
@Configuration
public class HelperConfiguration{
@Bean
public A a(){
return new A();
}
}
同样在包 com.example.utilities 创建
@Configuration
public class UtilitiesConfiguration{
@Bean
public X x(){
return new X();
}
}
现在,如果您的客户端 spring 应用程序只需要实用程序包中的 beans,他们可以简单地导入 UtilitiesConfiguration 类。
@Import({ UtilitiesConfiguration.class})
public class ClientApp{
...
}
这样你可以模块化你的代码。
【讨论】: