일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 배열
- WebClient
- query
- 코드
- @NoArgsConstructor
- 연결 리스트
- 마크다운
- @ComponentScan
- 쿠키
- mysql
- 클래스
- 클린코드
- CleanCode
- 빅 오 표기법
- 스택 큐 차이
- 선형 리스트
- 쿼리메소드
- 계산 검색 방식
- 리스트
- JsonNode
- 내부 정렬
- 트리
- 정렬
- 인터페이스
- code
- 자료구조
- 마크다운 테이블
- java
- @RequiredArgsConstructor
- 클린
- Today
- Total
목록Spring/어노테이션 (16)
Developer Cafe
@JsonFilter는 JSON 변환시 사용할 필터를 명시하고 싶을때 사용한다. jackson-core jackson-databind 를 gradle 이나 pom.xml에 추가한다. @Data @AllArgsConstructor @NoArgsConstructor @JsonFilter("userInfo") public class User { private Integer id; @Size(min=2, message = "Name은 2글자 이상 입력하세요.") private String name; @Past private Date joinDate; private String password; private String ssn; } @GetMapping("/users") public MappingJacksonV..
@Deprecated는 annotation으로 타입, 필드, 메소드 등에 붙일 수 있고, @Deprecated 표시 되어 있는 메소드나 필드를 사용하면 빌드할 때 워닝 메시지를 보여준다. 컴파일러에게 이 메소드는 없어질거라는걸 알려주고 쓰지 말도록 경고하는 것이다. @deprecated는 Javadoc으로 이 메소드는 어떤 이유로 사라지며 대신 어떻게 사용하라는 내용을 담아줄 수 있다. Javadoc을 보는 사용자에게 알려주는 것이다. /** * @deprecated * this method is disappeard as Yun * * * **/ @Deprecated public ApiException(ResponseCode responseCode) { super(responseCode.getMessag..
본래 @ResponseBody를 써서 JSON XML 데이터를 주고받는데 Spring 4.0에서는 @Controller + @ResponseBody 버전인 @RestController를 추가하여 따로 ResponseBody를 쓰는 수고를 덜어주었다. 즉, @RestController 어노테이션을 작성 하면 @ResponseBody를 통한 매핑 메소드가 필요없습니다. @RestController public class SampleRestController { @GetMapping public String hello() { return "Hello World"; } }
취업전 공부할땐 @Autowired를 통해 의존성을 주입했는데, public class AB { @Autowired private A a; } 회사에선 @RequiredArgsConstructor을 이용해 의존성을 주입하더라고요... @RequiredArgsConstructor public class AB { private final A a; } 오늘 그 차이점에 대해 기술하고자 합니다. 우선 스프링 프레임 워크에서 의존성을 주입하는 방법엔 3가지가 있습니다. 생성자 주입 필드 주입 수정자 주입 스프링팀에선 생성자 주입이 아니라면 아래의 문구를 보여줍니다. "스프링 팀에서는 생성자 주입(constructor injection) 방식을 추천하고 있습니다." Spring Team recommends: "Al..
@NOARGSCONSTRUCTOR 파라미터가 없는 기본 생성자를 생성 @ALLARGSCONSTRUCTOR 모든 필드 값을 파라미터로 받는 생성자를 만듦 @REQUIREDARGSCONSTRUCTOR final이나 @NonNull인 필드 값만 파라미터로 받는 생성자 만듦 @NoArgsConstructor @RequiredArgsConstructor @AllArgsConstructor public class User { private Long id; @NonNull private String name; @NonNull private String pw; private int age; } User user1 = new User(); // @NoArgsConstructor User user2 = new User("..
@After Junit에서 단위 테스트가 끝날 때마다 수행되는 메소드를 지정 보통은 배포 전 전체 테스트를 수행할 때 테스트간 데이터 침범을 막기 위해 사용합니다. 여러 테스트가 동시에 수행되면 테스트용 데이터베이스인 H2에 데이터가 그대로 남아 있어 다음 테스트 실행 시 테스트가 실패할 수 있습니다. @postsRepository.save 테이블 posts에 insert/update 쿼리를 실행합니다. id값이 있다면 update가, 없다면 insert가 실행됩니다. @RunWith(SpringRunner.class) @SpringBootTest public class PostsRepositoryTest { @Autowired PostsRepository postsRepository; @After pu..
@Column 테이블의 칼럼을 나타내며 굳이 선언하지 않더라도 해당 클래스의 필드는 모두 칼럼이 된다. 그럼에도 선언하는 이유는 기본값 외에 추가로 변경이 필요한 옵션이 있으면 사용합니다. 문자열의 경우 기본값 VARCHAR(255)인데 사이즈를 늘리거나 @Column(length = 500, nullable = false) private String title; 타입을 TEXT로 변경학고 싶거나 등에 사용한다. @Column(columnDefinition = "TEXT", nullable = false) private String content; @NoArgsConstructor 기본 생성자 자동 추가
@Entity 테이블과 링크될 클래스임을 나타냅니다. 기본값으로 클래스의 카멜케이스 이름을 언더스코어 네이밍(_)으로 테이블 이름을 매칭합니다. ex) SalesManager.java -> sales_manager table 절대 Setter 메소드를 만들지 않습니다. 해당 클래스의 인스턴스 값들이 언제 어디서 변해야 하는지 코드상으로 명확하게 구분할 수가 없기에 차후 유지보수가 너무 복잡하다 잘못된 예 public class Order { public void setStatus(boolean status) { this.status = status; } } public void OrderCencel() { order.setStatus(false); } 올바른 예 public class Order { pu..
@RequiredArgsConstructor public class HelloResponseDto { private final String name; private final int amount; } ● 선언된 모든 final 필드가 포함된 생성자를 생성해 줍니다. ● final이 없는 필드는 생성자에 포함되지 않습니다.