#틀릴 수 있음
build.gradle
dependencies {
implementation 'org.projectlombok:lombok'
}
Dependencies에 lombok을 추가했다.
Lombok을 사용하면 Getter, Setter을 구현하기 편리하다는 장점이 있지만 내부 수정이 필요한 경우 불편할 수 있다.
Lombok
@NoArgsConstructor
Class의 기본 생성자 자동 추가
@AllArgsConstructor
Class의 모든 필드 값을 받는 생성자 추가, Bean을 주입받는 방식으로도 쓰인다.
@Data
@Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode 추가
@Builder
모델 객체 생성시 get, set 메서드를 만들어준다.
JPA (Java Persistence API)
- ORM (Object-Relational Mapping) 클래스와 관계형 DB를 매핑한다. (자동 영속화)
SQL 문이 아닌 Method로 DB조작 가능하다는 장점이 존재한다.
public interface MemberRepository extends JpaRepository<Member, Integer> {
}
import lombok.*;
import javax.persistence.*;
@NoArgsConstructor
@AllArgsConstructor
@Data // getter setter
@Builder
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(nullable = false,length = 30)
private String apartname;
@Column(nullable = false, length = 30)
private String building; // 동
@Column(nullable = false, length = 30)
private String unit; // 호
@Column(nullable = false, length = 15)
private String phonenumber;
@Column(nullable = false, length = 30)
private String nearestStation;
@Enumerated(EnumType.STRING)
private RoleType roleType;
}
JPA Annotation
@Entity
DB 테이블과 1:1 매칭되는 객체 단위. 인스턴스 하나가 하나의 레코드
@Id
객체의 인스턴스를 구분하기 위한 유일한 키값, primary Key (PK)
@Column
Entity 클래스안의 내부변수로 정의.
@Enumerated
java의 enum 타입을 사용하고자 할 때 사용.
Annotation
@ Component
클래스를 Bean 으로 등록
@ Service
서비스를 담당하는 class 명시
@Service
public class MemberService {
/** 내용 */
}
@ Repository
DAO (Data Access Object) class에 쓰임, DB 접근 메서드를 가진 class에서 사용
@ Configuration, @Bean
클래스에 @Confiugration 을 달고 메서드에 @Bean 어노테이션을 사용한다. 그렇다면 Autowired로 Bean 호출 가능
@Autowired
Type에 따라 Bean 주입
@ Controller
SPRING MVC에서 Controller 클래스에 사용, view return 이 주목적
@Controller
public class MemberController {
/** 내용 */
}
@ RestController (@Controller + @ResponseBody)
view return 이 아닌 data return을 주로 한다.
@RestController
public class MemberApiController {
/** 내용 */
}
@RequestBody
POST, PUT 등의 JSON 형식의 data를 객체 안에 담고 매핑한다.
@PostMapping("/auth/joinProc")
public ResponseDto<Integer> userJoin(@RequestBody Member member) {
memberService.memberJoin(member);
return new ResponseDto<Integer>(HttpStatus.OK.value(), 1);
}
'🌱 프로젝트 > 소방알리미' 카테고리의 다른 글
Vue Framework에서 Build 하기 - 소방서 알림 #6 (0) | 2022.09.18 |
---|---|
Firestation Spring - 소방서 알림 #5 (0) | 2022.09.17 |
로그인 오류 2 - 소방서 알림 #4 (0) | 2022.09.14 |
로그인 오류 1 - 소방서 알림 #3 (0) | 2022.09.12 |
시큐리티 설정 - 소방서 알림 #2 (0) | 2022.09.08 |