어디까지 갈 수 있을까?
[작성중] 스프링 어노테이션 정리 본문
@Component
해당 어노테이션이 있는 클래스를 객체로 생성해 bean으로 관리
@Controller, @Service, Repository
@Component 클래스를 구체화 한 것
시각적으로 역할을 명시하기 위해 사용
@Autowired
스프링 컨테이너에 있는 bean 중 타입에 맞는 객체를 주입해달라
@RequestMapping
해당 url로 들어오는 요청에 대한 처리를 해당 클래스에서 한다
@RestController
@Controller+@ResponseBody
@ResponseBody를 모든 메소드에 적용한다
#POST방식의 요청
@RequestBody
http body를 자바 객체에 담을 수 있다
Json을 Java Object로 변환
@ResponseBody
자바 객체를 http body에 전송할 수 있따
Java를 JSON Object로 변환
--클라이언트 입장 body를 달라고 Request, body의 내용을 Response
#GET방식의 요청
@RequestParam
url 뒤에 붙는 parameter 값을 가져올 때 사용
@ModelAttribute
@PathVariable
{} 안에 있는 값을 가져올 때 사용
@Transactional
모든 처리가 정상적으로 되면 커밋, 그렇지 않으면 커밋하지 않는다
@Entity
DB의 테이블과 매칭될 클래스임을 명시
@Table
엔티티 클래스에 매핑할 테이블 정보 알려줌
@Id
PK 필드 명시
@GeneratedValue
PK 생성 규칙
@Column
컬럼 명시
@NoArgsConstructor
파라미터가 없는 생성자 생성
@AllArgsConstructor
모든 필드 값을 파라미터로 받는 생성자 생성
@RequiredArgsConstructor
final이나 @NonNull인 필드 값만 파라미터로 받는 생성자 생성
@Getter
클래스 내 모든 필드의 Getter 메소드 생성
@Setter
클래스 내 모든 필드의 Setter 메소드 생성
@Builder
어느 필드에 어떤 값을 채워야할 지 명시
@ComponentScan
@Component, @Service, @Repository, @Controller, @Configuration이 붙은 클래스를 찾아 컨테이너에 bean등록 해 줌
@SpringBootApplication
프로젝트 최상위 Application 클래스에 선언
스프링부트의 자동설정, 스프링 Bean읽기와 생성 모두 자동 설정
어노테이션이 붙은 클래스의 main 메소드에서 실행하는 SpringApplication.run으로 내장 WAS 실행
@MappedSuperclass
부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공
@EntityListeners(AuditingEntityListener.class)
해당 클래스에 Auditing 기능을 포함
@CreatedDate
Entity가 생성되어 저장될 때 시간이 자동 저장
@LastModifiedDate
Entity의 값을 변경할 때 시간이 자동 저장
Test 관련
@SpringBootTest
스프링 부트 전체 테스트
설정된 빈을 모두 로드한다
@RunWith(SpringRunner.class)
JUnit 내장 러너 대신 어노테이션에 정의된 러너를 사용
@WebMvcTest
컨트롤러 테스트에 적합
웹 상의 요청과 응답에 대한 테스트, web에 집중한 테스트
@TestRestTemplate
HTTP 요청 후 Json, xml, String 과 같은 응답을 받을 수 있는 템플릿
@Test
해당 메소드가 단위 테스트의 대상임을 명시
각 테스트가 독립적으로 실행
@Transactional
테스트를 마친 뒤 데이터 롤백
??
@PutMapping
참고 gmlwjd9405.github.io/2018/12/02/spring-annotation-types.html
'프로그래밍 > 정리' 카테고리의 다른 글
[작성중] 파이썬 코딩테스트 때 쓰는 모듈 및 메소드 (0) | 2021.04.28 |
---|---|
CS 잡지식 정리 (0) | 2021.04.04 |
[작성중] 웹 개념 정리 (0) | 2021.03.11 |
[작성중] 스프링 개념 정리 (0) | 2021.03.11 |
[작성중] 자바 개념 정리 (0) | 2021.03.09 |