正如標題所說,我有這樣一些庫:當找不到User時,應該從Spring @Service返回什麼?
public UserRepository{
public Optional<User> findByUsername(String username){..logic..}
}
和服務:
public UserService {
@Autowired
private UserRepository userRepository;
public Optional<User> findByUsername(String username){ ..calling repository.. }
}
在我@Controller類我想從UserService獲得用戶實例
但我不知道應該從@Service返回什麼 - 可選,並檢查它是否isPresent()內部控制器,或者只是簡單的空?我很困惑。
我試圖將如此多的邏輯移動到@Service層,因爲我可以,所以檢查可選似乎不是一個好主意。
謝謝!
您粘貼2個相同的鏈接;)我想過拋異常,我在我的RESTful應用程序是如何做到的,但我聽說過將例外情況降至最低是很好的做法。所以如果有可能避免一個,那麼它應該是。 從哪一層你會拋出異常?我認爲它應該在服務層上執行,以避免將「buissnes邏輯」推入控制器中,您認爲如何? – azalut
井例外是一項沉重的任務,因爲它包含完整的堆棧跟蹤,理想情況下所有異常都應該在服務中捕獲,但最終取決於您,您的項目體系結構是什麼套件。我選擇返回空值的異常,因爲你總是知道周圍發生了什麼,假設你創建一個更新方法,根據是否更新行來返回true或false。如果用戶沒有找到,你可以拋出異常,這些可以在很多地方重用。 –