我有一个PropertiesUtil类,它用作我]
文件的某些配置属性的容器。
application.properties
我必须在我的应用程序中的不同位置使用此类。
我的问题是我是否应该在我需要的每个地方注入此类,或者我应该在调用者类上注入此类并将其作为参数提供给方法。
例如使用class注入:
@Component
@ConfigurationProperties(prefix = "application.property")
public abstract class PropertiesUtil {
private String networkLocation;
private String topLevelPrefix;
或者例如在调用者类中注入:
@Component
public class FileExport {
private final PropertiesUtil propertiesUtil;
@Autowired
public FileExport(PropertiesUtil propertiesUtil) {
this.propertiesUtil = propertiesUtil;
}
public List<File> getListOfFileAndRules(String topLevelName){
// logic and use of propertiesUtil
}
答案 0 :(得分:1)
我会将它注入using类,因为你的调用者类不需要这些信息。如果你有不同的'使用'类,我会考虑为extends和amp;创建一个抽象类。将注射剂放在这个中。
如果您将属性放入调用者类,则将其放入API中,这样做并不好。您的课程在使用中应尽可能简单,也适用于测试。
答案 1 :(得分:1)
这取决于应用程序的体系结构和配置参数的类型。我经常区分运行时和启动配置 - 第一个用于更改或仅可能在运行时更改,后者旨在启动时设置(或一次)并且在应用程序运行时没有更改。
在你的情况下,我假设params是启动配置,因此我建议将它注入所有需要它的类。