본문 바로가기
반응형

Optional4

의존관계 주입시 Bean이 없을때 예전 포스팅에서 의존관계 생성자 주입에 대해서 다룬 포스팅이 있다. 자세한 내용은 참고 포스팅을 참고 바란다. 코드에서 Bean을 불러오는 코드가 아래와 같이 있다. @Autowired public void method(Test test) { System.out.println("TestBean = " + test); } 겉으로만 봤을땐 문제가 없어보이지만 문제가 생기는 경우는 Test라는 클래스가 Bean에 들어가있지 않을 경우에 에러가 난다. 그럴 경우엔 3가지 방식으로 회피를 할수 있다. autowired(required=false) 필수값 설정을 false로 설정 @Autowired(required=false) public void method(Test test) { System.out.printl.. 2023. 7. 22.
Optional<List<Entity>> 잘못된 표기법 제목에 있는 그대로 내용을 다뤄볼것이다. 시작하기 앞서 Optional 에 대해서는 아래 참고 포스팅을 참고 바란다. Optional은 안에 값이 null인지 아닌지를 판별해주는 자바 8부터 지원되는 기능이다. JPA를 사용하면서 findBy 와 같은 쿼리메서드를 사용하면서 인자값을 optional로 받곤 하는데 list를 받을때 optional 을 사용하는 잘못된 코드를 발견하여 이렇게 포스팅으로 남겨둔다. 올바른 표기법은 둘중 하나이다. - Optional test - List test Optional test 위에껀 먼저 Entity 라는 항목이 null이거나 있거나이다. 이 기능은 findby 쿼리 메서드를 사용할 경우엔 Primary 한 값에 설정을 주로 해주며 1개만 있는 값을 받을때 사용한다.. 2023. 6. 30.
Optional – orElse() 와 orElseGet() 이전 포스팅에서 Optional 에 대한 내용을 다룬적이 있다. 자세한 내용은 아래 참고 포스팅 참고 바란다. Optional 은 결국엔 NPE 를 해결하기 위해서 생겨났고, 만약 Null일 경우엔 default 값을 넣어줄수 있는 개념으로 만들어진 함수가 바로 이 orElse / orElseGet 이다. 결국 둘다 null일때 default 를 받을건데 둘의 차이는 어떤것인지 확인해보면 orElse() : T 클래스를 인수로 받음 orElseGet() : T 클래스를 상속받은 하위 클래스를 return해주는 Supplier 함수 인터페이스를 받음 좀더 이해하기 쉽게 예시를 들어서 설명하면 다음과 같다. orElse Optional text = "a"; Sting bb = text.orElse(testM.. 2023. 6. 16.
Optional 이란? 지난 포스팅에서 dto 변수의 null 에 대한 포스팅을 다뤄본적이 있다. 관련 내용은 아래 참고 포스팅에 존재한다. 하지만 변수가 null이 아니라 dto 자체가 예를들어 쿼리의 결과가 없어서 dto 자체가 null이 될 경우가 있다. 물론 이럴경우는 전처리에서 if (dto ==null){ 으로 하면서 return 을 시켜주거나 혹은 초기값 설정등으로 처리할수 있지만 null을 미리 체크를 해볼수가 있다. 그때 사용하는것이 Optional이다. Rest를 사용할 경우에를 예로 들어보면 repository 에서 받을때 ExampleDto findById(String id); 이렇게 findById 에 대한 변수 결과를 받는것이 아니라. Optional findById(String id); 이런 식으로 .. 2022. 8. 23.
반응형