class TibcoPasswordRetriever { private TibcoPasswordUtil tibcoPasswordUtil; public TibcoPasswordRetriever(TibcoPasswordUtil tibcoPasswordUtil) { this.tibcoPasswordUtil = tibcoPasswordUtil; }}class TibcoPasswordRetriever { private TibcoPasswordUtil tibcoPasswordUtil; public TibcoPasswordRetriever() { this.tibcoPasswordUtil = new TibcoPasswordUtil(); }}这是 TibcoPasswordRetriever 的两个定义。问题:我仅在 TibcoPasswordRetriever 类中使用 TibcoPasswordUtil。依赖注入仍然是一个好主意吗?进一步的问题:我们是否应该创建将每个可能的对象公开为 spring bean(只是因为可以这样做)
2 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
问题:我仅在 TibcoPasswordRetriever 类中使用 TibcoPasswordUtil。依赖注入仍然是一个好主意吗?
如果TibcoPasswordUtil
是Singletone
. 您没有TibcoPasswordUtil
在问题中提供课程。添加Util
到名称在这里并不意味着很多。考虑写更多关于架构和背景的文章。
进一步的问题:我们是否应该创建将每个可能的对象公开为 spring bean(只是因为可以这样做)
不,不是,因为更好的解决方案是不要太依赖框架。问自己这样的问题:
如果你不需要,那么为什么它有好处呢?
为什么不这样做有好处呢?
就像我上面写的那样,更少耦合的代码更好。将来改变框架等会更容易。
繁花不似锦
TA贡献1851条经验 获得超4个赞
不,除非有需要,否则不应将每个对象都公开为 Spring bean。那些您认为必须由框架实例化和维护的类必须成为一个 bean。此类类的一个示例是数据库访问类。这些类型的类可能有多种实现,并且选择使用哪个实现可能取决于某些外部配置。在这种情况下,您可以将管理实例的责任委托给框架。
如果您确定您正在使用的 Util 类只有一种类型,并且管理其实例时不会增加任何复杂性(就像它必须是 Singleton),那么您不必将其设为 bean。
添加回答
举报
0/150
提交
取消