* 수시로 업데이트 할 예정

 

  • 실행
@SpringBootApplication 스프링부트가 실행될 기준이될 클래스, main메소드가 선언된 곳에 선언해준다.

 

  • 생성자
@NoArgsConstructor 파라미터가 없는 기본 생성자를 생성
@RequiredArgsConstructor final변수, Notnull 표시가 된 변수 등 필수적인 정보를 세팅하는 생성자를 생성
@AllArgsConstructor 전체 변수를 생성하는 생성자

 

  • 필드
@Getter Class 내의 모든 필드의 Getter method 생성
@Setter Class 내의 모든 필드의 Setter method 생성

 

  • Controller
@Controller 기본 컨트롤러 선언
@Component포함
@RestController @Controller + @ResponseBody
이 어노테이션을 사용하면 별도의 @ResponseBody를 선언해줄 필요 없다.
@Component포함

 

  • Service
@Service @Component포함

 

  • Repository
@Repasitory JpaRepository를 상속할 경우 JpaRepository를 통해 빈으로 등록 

 

  • Entity
@Entity 테이블과 매핑 
name =  엔티티 이름 설정. HQL에서 엔티티 식별할 이름
@Table 엔티티와 매핑할 테이블을 지정. 생략시 매핑한 엔티티 이름을 테이블 이름으로 사용
name =  매핑할 테이블 이름 (default. 엔티티 이름)
ctalog =  catalog 기능이 있는 DB에서 catalog를 매핑
(default. DB이름)
schema =  schema기능이 있는 DB에서 schema를 매핑
uniqueConstraints = *DDL 생성시 유니크 제약 조건 생성
스키마 자동 생성 기능을 사용해 DDL만들 때만 사용
@UniqueConstraint    
@Data    
@Id entity의 id임을 선언
@GeneratedValue 값 자동 생성 
strategy = GenerationType.
(생성 전략) 
AUTO (자동) (✅ default)
IDENTITY 
(id값을 먼저 insert 해버려 트랜젝션이 끝나기 전에 , 즉 롤백 된다하더라도 이미 insert 되어 있어서 마치 이빨빠진것 처럼 중간에 비는 현상이 발생한다.)
SEQUENCE
(오라클, postqre에서 쓰는데 insert를 할 때 sequence로부터 증가된 id 값을 받아서 실제 id값에 넣는 방식)
TABLE
(DB종류 상관없이 테이블에 id값을 저장해 추출하여 사용)
@Column 객체 필드를 테이블 컬럼에 매핑 (생략 가능)
nullable (null값 허용) = true / false
name =  매핑할 컬럼 이름 (default. 변수 이름)
@Enumerated Java Enum을 테이블에서 사용하는 방식
EnumType. ORDINAL 
(enum 순서를 DB에 저장) (✅ default)
STRING
(enum 이름을 DB에 저장, 후에 enum이 변경되어도 문자열 그대로 저장되어있어 변경되어도 위험이 없어 일반적으로 string을 사용)
@EntityListeners 삽입, 삭제, 수정, 조회 등의 작업을 할 때 전, 후에 어떠한 작업을 하기 위해 이벤트 처리를 위한 어노테이션
AuditingEntityListener.class Audit(감시하다) 옵션은 시간에 대해서 자동으로 값을 넣어 주는 기능
@ManyToOne 다대일(N:1) 관계 매핑, 연관관계의 주인임을 나타낸다.
optional false 설정 시 연관된 엔티티가 항상 있어야 한다.
(default. true)
fetch = FetchType.
(global fetch 전략 설정)
EAGER (즉시로딩)
LAZY (지연로딩)
cascade = CascadeType.
(영속성 전이 기능 사용)
ALL
(모든 부분에서 영속성 전이)
PERSIST 
(부모 영속화시 연관된 자식들도 영속화)
MERGE
REMOVE
REFRESH
DETACH
orphanRemoval  
@JoinColumn 외래 키 매핑 (생략가능)
name =  외래 키로 연결할 컬럼 이름
@OneToMany 일대다(1:N) 관계 매핑
mappedBy = 연관관계 주인 설정

 

  • 상속
@MappedSuperclass 공통 매핑 정보가 필요할 때, 부모클래스에 선언하는 어노테이션. 필드만 상속 받아서 사용 하고 싶을때 사용.

 

  • Bean
@Component    
  @Autowired 스프링에 의해 생성된 Bean객체를 DI (의존성 주입)

 

 

 

 

 


참고 링크들 :

생성자 관련 ) https://goyunji.tistory.com/98

Entity 관련) https://data-make.tistory.com/610

 

+ Recent posts