20241105(화) - 어노테이션 정리

Dodo Lee·2024년 11월 5일

1. 컨트롤러단

어노테이션 설명
클래스
@Controller 요청/응답 제어 역할 명시 + Bean 등록
@Slf4j 로그 객체 자동 생성
@Autowired 등록된 Bean 중 같은 타입이거나 상속관계 DI(의존성 주입)
매핑
@RequestMapping 모든 방식 요청 매핑 (클래스 상단에 작성하여, 주소로 시작하는 요청을 현재 컨트롤러에 매핑할 수 있음)
@GetMapping Get(조회) 방식 요청 매핑
@PostMapping Post(삽입) 방식 요청 매핑
@PutMapping("주소") Put(수정) 방식 요청 매핑 (form, a 태그 요청 불가)
@DeleteMapping("주소") Delete(삭제) 방식 요청 매핑 (form, a 태그 요청 불가)
파라미터
@RequestParam 낱개 파라미터 얻어올 수 있음
: 속성 추가 - @RequestParam(value="name", required="false", defaultValye="1")
-> value : 전달 받은 input 태그의 name 속성값 (파라미터 key)
-> required : 입력된 name 속성값 파라미터 필수 여부 지정(기본값 true)
-> defaultVlaue : 파라미터 중 일치하는 name 속성값이 없을 경우에 대입할 값 지정
(required = false 인 경우)


2. 서비스단

어노테이션 설명
@Transactional 트랜잭션 처리를 수행하라고 지시하는 어노테이션
- 정상 코드 수행 시 COMMIT
- 기본값 : Service 내부 코드 수행 중 RuntimeException 발생 시 rollback
- rollbackFor 속성 : 어떤 예외가 발생했을 때 rollback 할지 지정
ex) @Transactional(rollbackFor=Exception.class)
@Service 비즈니스 로직(데이터 가공, 트랜잭션 처리) 역할 명시 + Bean 등록


3. Mapper(dao)단

어노테이션 설명
@Mapper MyBatis 제공 어노테이션으로, 해당 인터페이스를 DAO로 인식하여 SQL 매핑을 처리
- 해당 어노테이션이 작성된 인터페이스는
namespace에 해당 인터페이스가 작성된 mapper.xml 파일과 연결되어
SQL 호출/수행/결과 반환 가능
ex) mapper namespace="OO.OO.OOO.model.mapper.OOOMapper"
>> *-mapper.xml에 작성
- Mybatis에서 제공하는 Mapper 상속 객체가 Bean으로 등록됨
- Mapper의 메서드명 == mapper.xml 파일 내 태그의 id
profile
연습생

0개의 댓글