[TIL] 2021.03.09
9335 ワード
Spring Bootタスク2コメント
Cooper塔斯克2评论进展
Logger Logger入力、推奨
logger.debug("question : ", {});
Optionalでgetを直接使用しないでください. Optional<Question> question = questionRepository.findById(id).get() (X)
Optional<Question> question = questionRepository.findById(id).get() (X)
model.addAttribute("question", question.get());
JPAは、変更の検出を自動的にチェックするので、変更を個別にチェックする必要はありません.汚い検査(dirty checking)(李東旭のブログ) user.update(updateUser);
userRepository.save(user);
依存性注入推奨ジェネレータによる注入1. コンストラクション関数注入の使用によるメリット
1. null을 주입하지 않는 경우, NullPointerException을 발생시키지 않는다.
2.의존관계를 주입하지 않은 경우에 컴파일 시 오류를 잡아낼 수 있다.
3. 순환 참조 방지
public class Contorller {
private final Service service; //final을 쓸 수 있는 장점
public Controller(Service service) {
this.service = service;
}
public void callService() {
service.doSomething();
}
}
public class Main {
public static void main(String[] args) {
Controller controller1 = new Controller(new ServiceImpl());
Controller controller2 = new Controller(
() -> System.out.println("Lambda implementation is doing something")
);
controller1.callService(); //의존 관계 등록 안될 경우, compile 에러
controller2.callService(); //의존 관계 등록 안될 경우, compile 에러
}
}
public class Controller {
private Service service;
public void setService(Service service) { //해당 서비스가 주입이 필요한 객체가 아니라면? 그래도 구동은 된다.
this.service = service;
}
public void callService() {
service.doSomething();
}
}
Reference
この問題について([TIL] 2021.03.09), 我々は、より多くの情報をここで見つけました https://velog.io/@pbg0205/TIL-2021.03.09テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol