我是Spring Boot的新手,仍然在尝试掌握最佳实践。吸引我的是Spring Cloud Configuration。最初,我想做一个Spring Boot的混合实现(由于现有代码库的大小),但这不可避免地使我产生了一堆代码异味和反模式。
在Spring之前,我曾管理自己的对象,但是我很快意识到,Spring希望在存在依赖项注入的情况下完全控制对象实例化和所有权(据我了解)。但是在某些情况下,我不能让Spring完全驱动但仍然对配置有依赖性(例如,另一个负责对象管理的框架)。
我不想做一个一次性的方案,在这种情况下我最终要通过一连串的构造函数传递配置,并且我想避免使用AutowireCapableBeanFactory::autoWireBean(...)
来手动连接我的bean。同时,依靠Spring手动初始化我所有的对象是一件麻烦事。要明确的是,这就是我在说的:
@SomeOtherFrameworkThatOwnsThisObject
@Configuration
public class SomeClassDeepInMyProject implements SomeKindOfInterface {
@Autowired
private ConfigurationController config;
...
}
我考虑过创建一个可在应用程序范围内访问的单例配置提供程序,并将配置bean手动连接到该类。如果有更好的选择,我会全力以赴。