application properties에 해당 내용 추가해주어야,
http://localhost:8080/h2-console 로 입장시 뜬다. 역시 spring 사이트 자체를 잘 활용하자.
초간단 db h2 db에 접근 성공 .
@ENTITY를 붙인순간, 엔티티로 들어갈 것임을 공표한것과 마찬가지이기 때문에, CLASS에 규약이 생긴다.
@Enumerated(EnumType.STRING)
private Developerlevel developerlevel ;
DeveloperLevel이라는 열거형이 있다. 이를 enumtype으로 지정하여 내 entity의 변수로 쓸 것이다 !
enum이 클라스와 대응하는 관계의 객체임을 배웠다. (반대란 의미는 아니고 개념이 변수가 아니라고)
descriptrion을 변수로 사용하면, enum 내부의 변수에서 string을 사용할 수 있따.
방금 배운 자바... 바로 만났다. local date time-> 연월시간등을 가져올수있는 형태 .
@CreatedDate -> 자동으로 생성될때 값을 세팅 하는 Auditiong 가능
@LastModifiedDate - > 자동으로 수정시섬 도입.
이를 사용하기 위해서는 application(main)에서, @EnableJpaAuditing을 추가해 주어야 한다.
Entity를 고려해주는 REPOSITORY (INTERFACE)
주로 jparepository를 extends 해온다. (jpa강의에 자세한 설명)
** 마구잡이로 extend Jparepository만을 한것이, 결국 문제가 되었다.
@Repository
public interface Developerrepository extends JpaRepository<Developer,Long>
이와 같이, T(객체),ID(pk의 type을 적어줘야한다). 이를 하지 않아 long type이라는 제너릭 오류가 발생했다.
제네릭을 쓸일없는데 왜 얘가 이러지? 싶었는데, 그게 아니었다.
Run with --scan을 활용해 오류난 원인을 찾을 수 있었다.
SERVICE ->
꿀팁) REQUIREDARGSCONSTRUCTOR을 하면, 자동으로 인젝션 해준다.
예전에는 @AUTOWIRED (지현이형이 쓰지말라했던거 ) , @Inject
이전 프로젝트에서 지현이형이 쓰지말라 했던 이유가 . 어노테이션들이 다 연결되어버려서 단독 테스트도 불가능하고 객체 지향적 프로그래밍 의미가 다사라지는구나!! 드디어 알게 되었다 .. .
그 이후 내가 만들었떤것이 생성자의 주입을 받아서 입력받았던 방식!
허나 이런 방식도 그때 로그인 회원가입할때 생성자를 계속 고치고 이러기가 굉자히 힘들었음
이제는. private final로 injection 받을 repository를 작성한다! 속에 있는 애를 바꾸면 안되기 떄문에
final이 필수!!
@injection받아온다. 분명 더 큰 의미가 있겠지만, 아직까지는 외부 class를 받아와서 활용하겠다 로 쓰자
지금은 기술이 발전해서 그대로 private final만 해도 그 행위가 된다로 기억!
즉 , 이런 말이다 . entity -> repository로 자동 control하겠다
그때 repository를 쓰고 싶은 service -> 내부 의존성주입(그냥 repository class를 객체로 받아와서 쓰면됨)
-> 다시 그 service를 쓰고 싶은 controller(service객체를 받아와서 쓰면됨)
이렇게 스려면 RequiredArgsConstructor 가 필요할 뿐이다!
@Requestbody class.객체 객체명
-> request body 뒤의 객체명에다가 HTTP 스펙의 request body라인이 있다. 그것을 request에다 담아주겠다.
'백엔드 > 스프링+boot' 카테고리의 다른 글
Validation (0) | 2023.12.28 |
---|---|
Transaction, Transactional (0) | 2023.12.28 |
Controller , componet 어노테이션. CLASS, 컴포넌트, 모듈 . (0) | 2023.12.27 |
롬복 + Dto 상세 (0) | 2023.12.27 |
테스트 (0) | 2023.12.25 |