일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 싱글톤
- springboot
- 스프링 빈
- sqld
- assertThrows
- assertThat
- java
- 스프링
- DI
- 스프링부트
- thymeleaf
- 필드 주입
- SQL
- 스프링 부트 기본
- 스프링 프레임워크
- 스프링 부트 입문
- db
- 생성자 주입
- jdbc
- 스프링 부트
- Javascript
- JPA
- mybatis
- Effective Java
- resultMap
- spring
- kafka
- DIP
- @Configuration
- 스프링 컨테이너
- Today
- Total
목록Framework/Spring Boot (32)
선 조치 후 분석

자바 코드로 직접 스프링 빈 등록하기 @Component 스캔을 사용해서 자동으로 빈을 등록하는 방법이 아닌, 직접 설정 파일에 등록하는 방법을 배워보자. 스프링 빈 등록하는 방법은 2가지 다 알아야 한다!! 1) Component 자동 스캔 방법 2) Java코드로 직접 스프링 빈 등록 먼저, Controller를 제외하고, Service와 Repository에서 어노테이션을 다 지워주고 돌려보자. 결과는 당연히 에러가 발생한다. Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2021-12-07 22:17:21.494 ERROR 4580 --- [..

스프링 빈과 의존관계 + DI(Dependency Injection) + Component Scan + 싱글톤 + 스프링 빈 화면을 붙이고 싶다 = 뷰 템플릿 + 컨트롤러 필요하는 의미 멤버 컨트롤러 -> 멤버 서비스를 통해서 조회를 하고 회원가입을 시켜야 한다 == 의존관계가 있다는 의미이다. @Controller public class MemberController { private final MemberService memberService = new MemberService(); } 스프링 컨테이너라는 통이 생기는데, 컨트롤러라는 어노테이션이 있으면, MemberController로 객체를 생성해서 스프링에 넣어둔다. 그리고 스프링이 관리한다. MemberService를 가져다 써야할 때, 이렇게..

Service에 대한 테스트 + assertThrows + beforeEach + DI Junit Test 쉽게 만들기 프로젝트를 오른쪽 마우스 클릭 이후에 New > JUnit Test Case를 선택 Name 항목에 테스트하고자 하는 클래스명을 입력한 후에... 추가된 클래스를 확인하여 해당 클래스를 통해 테스트를 진행 1. 회원가입 Test Service에 만들었던 findOne메서드를 호출해서 ID를 받아온다. 그리고 assertThat을 사용해서 입력값이 같은지 확인한다. 결과는 당연히 True(초록색) 하지만 중요한 건, 테스트는 예외 플로우가 굉장히 중요하다고 한다. 예외도 잘 발생하는지 체크해보자. 2-1. 예외 체크 (중복검사) - try~catch 사용 try~catch 구문 안에 있는..

회원 서비스 클래스를 만들어보자 회원 도메인과 리포지터리를 활용해서 실제 비즈니스 로직을 작성하는 패키지 생성 1. 회원가입 기능을 담당하는 메서드 생성 - Join 기존에 MemoryMemberRepository에서 IllegalStateException : Controller에서 @RequestMapping의 값이 중복되어 나타나는 에러! 즉, 중복된 이름을 받지 못하게 Service에서 처리! ※ Optional 사용할 때의 Tip : Optional을 바로 반환하는 것은 좋지 않다고 한다. 그래서 아래처럼 축약해서 사용하는 것을 권장한다고 한다. (기존에 이미 Optional로 반환 타입을 지정해두었기 때문에, memberRepository.findByName(member.getName())은 이..

회원 리포지토리 테스트 케이스 작성 만들었던 Repository가 정상 작동할까?라는 의문이 들기 마련이다. 이거를 검증하기 위해서 테스트 코드를 작성해서 검증해야 한다. 보통 main메서드 또는 Controller로 해당 기능을 검증하지만 이렇게 하면 반복적으로 하기에는 시간과 노력이 많이 들고 어렵다고 한다. 그래서 Junit이라는 프레임워크로 테스트 코드를 작성해서 테스트 코드를 실행하는 방법이 있다. 1. Boolean으로 True, False 확인 - Save메서드 검증 하지만, 글자로 보는 게 불편하다면, Assertions(org.junit.jupiter.api)을 사용해서도 테스트 결과가 파악 가능하다. 2. Assertions(org.junit.jupiter.api) - Save메서드 검..
회원 도메인과 리포지터리 만들기 + 람다식이란? + NPE를 방지해주는 Optional 클래스 1. 회원 객체(Member) package hello.hellospring.domain; public class Member { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 2. MemberRepository package hello.hellospring.repository..