Study22 회원 서비스 개발 1. 패키지 생성 service 패키지를 새로 생성 후 MemberService클래스를 만든다. 2. 서비스 코드 개발 상단에 @Service, @Transactional 을 선언하여 준다. Transactional의 속성으로 readOnly 라는 속성을 true로 해주게 되면 읽기의 역할을 진행하여 리소스 상의 부하를 줄일 수 있지만, 쓰기 역할의 메서드가 실행이 안될수 있어 쓰기 역할의 메서드에는 따로 @Transactional을 선언하여 준다. 기본적인 메서드들을 작성해주고, 쓰기 역할을 하는 join 에만 @Transactional을 다시 선언해준다. 인젝션 가장 기본적인 쓰임새는 @Autowired로 인젝션을 생성시켜주는것이다. 1. 세터 인젝션 - 장점 : 테스트 코드에서 Mock으로 직접 주.. 2022. 7. 12. 회원 Repository 요구사항을 확인 후 이제 개발에 들어가게 된다 먼저 새로운 패키지 Repository를 하나 만들고 MemberRepository 클래스를 만들었다. MemberRepository 클래스에 Repository를 구성하기 위해 @Repository 라는 어노테이션을 설정했다. @Repository 를 설정하게 되면 Component 자동으로 등록 되어 Repository로 등록이 되게 된다. 그리고 JPA를 사용하기 위해 @PersistenceContext 로 EntityManager를 선언한 뒤 저장 , 하나의 데이터 조회, 전체 데이터 조회, 이름으로 조회 의 4개의 메서드를 생성했다. 전체 데이터 조회와 이름으로 조회에 대한 메서드는 createQuery를 통해 query문으로 조회 할 수 있게 설정.. 2022. 7. 11. 엔티티 설계 값 타입은 변경 불가능하게 생성 (@Setter 는 제거 , 생성자에서 값을 모두 초기화해서 변경 불가능한 클래스로 생성) JPA 스펙상 엔티티나 임베디드 타입(@Embeddable)은 자바 기본 생성자를 public 또는 protected 로 설정해야된다 (JPA가 구현 라이브러리가 객체를 생성할 때 리플랙션 같은 기술을 사용할 수 있도록 지원해야 하기 때문) 1. 도메인 모델 2. 테이블 설계 *기본 @Id 는 Long 타입의 id 지만 , Column 은 “테이블_id” 로 만든다. 1. Member Order Class와 일대다 매핑을 하고, Member Class가 주인으로 mappedBy 로 연결 해준다. 2. Order Class 명은 Order로 지정하지만, DB 에선 Order을 사용하지.. 2022. 7. 7. 7. AppConfig 리팩토링 현재는 구조에서 각 부분의 역할이 뭔지 파악이 어렵다. 그래서 리팩토링을 통해 교체와 파악이 쉬운 구조로 변환했다. 2022. 5. 8. 이전 1 2 3 4 5 6 다음