![](/img/trans.png)
[英]How do I carry out custom validation of non-String value with javax's ConstraintValidator?
[英]Springboot How can I inject a non-String value to a property?
我正在嘗試將 Path object 注入屬性。 但是,似乎我只能將 String 注入屬性。 所以我嘗試使用下面的代碼來啟動路徑屬性,但失敗了。 誰能建議我怎么做?
@Service
public class FilesStorageServiceImpl implements FilesStorageService {
@Value("${upload.path}")
private String rootPath;
private Path root = Path.get(this.rootPath)
public void doSomething() {
Files.copy(....)
}
}
當我調試它時,它告訴我根是 null。 似乎沒有啟動根路徑。
這取決於服務變量初始化的方式和時間。 輕松修復,通過設置器注入:
@Service
public class FilesStorageServiceImpl implements FilesStorageService {
private String rootPath;
private Path root;
@Value("${upload.path}")
public setRootPath(String rootPath) {
this.rootPath = rootPath;
root = Path.get(this.rootPath)
}
public void doSomething() {
Files.copy(....)
}
}
使用 setter 進行值注入,可以更好地控制root
變量的初始化。
注入整個object? 可能不是您想要的東西,因為不值得花精力弄清楚您將如何序列化、反序列化,然后注入 object。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.