일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 클래스
- query
- 리스트
- JsonNode
- java
- 선형 리스트
- @NoArgsConstructor
- 정렬
- 스택 큐 차이
- 자료구조
- mysql
- 쿠키
- 배열
- CleanCode
- 쿼리메소드
- @ComponentScan
- 연결 리스트
- 내부 정렬
- WebClient
- 빅 오 표기법
- 클린코드
- 마크다운
- code
- @RequiredArgsConstructor
- 계산 검색 방식
- 코드
- 클린
- 마크다운 테이블
- 트리
- 인터페이스
- Today
- Total
목록Spring (32)
Developer Cafe
클라이언트가 서버로부터 어떠한 요청을 할 때, 요청에 필요한 URI를 응답에 포함시켜 반환하는 것입니다 한명의 정보를 response해주는 api를 만듬과 동시에 유저 모두의 정보를 가진 api주소를 담아 주는 api를 만든다고 가정합니다. @Data @AllArgsConstructor @NoArgsConstructor 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; } // spring 2.1.8 이하 버전 @GetMapping..
@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..
1. 제목에 대한 검색 처리 title에 특정 문자열이 들어간 게시물을 검색하고싶다면... public interface BoardRepository extends CrudRepository { @Query("SELECT b FROM Board b WHERE b.title LIKE %?1% AND b.bno > 0 ORDER BY b.bno DESC") public List findByTitle(String title); } * %?1% 에서 '?1'은 첫 번째로 전달되는 파라미터라고 생각하면 됩니다. @Autowired private BoardRepository repo; @Test public void testByTitle2() { repo.findByTitle("17").forEach(board -..
1. 일반버전 예를 들어, 'bno > 0 order by bno desc'라는 조건을 구현한 findByBnoGreaterThanOrderByBnoDesc() 메소드에 Pageable을 적용하면... public interface BoardRepository extends CrudRepository { // bno > ? ORDER BY bno DESC limit ?, ? public List findByBnoGreaterThanOrderByBnoDesc(Long bno, Pageable paging); } 파라미터에 Pageable이 적용되었고, 리턴 타입으로 List가 적용되었습니다. 테스트하면... @Autowired private BoardRepository repo; @Test public v..
게시물의 bno가 특정 번호보다 큰 게시물을 bno 값의 역순으로 처리하고 싶다면... 'OrderBy' + 속성 + 'Asc or Desc' public interface BoardRepository extends CrudRepository { // bno > ? ORDER BY bno DESC public Collection findByBnoGreaterThanOrderByBnoDesc(Long bno); } Test에서 @Autowired private BoardRepository repo; @Test public void testBnoOrderBy() { // bno가 90보다 큰 데이터를 조회 Collection results = repo.findByBnoGreaterThanOrderByBnoD..
게시물의 title에 특정한 문자가 포함되어 있고, bno가 특정 숫자 초과인 데이터를 조회한다면... public interface BoardRepository extends CrudRepository { // title LIKE % ? % AND BNO > ? public Collection findByTitleContainingAndBnoGreaterThan(String keyword, Long num); } Test에서 @Autowired private BoardRepository repo; @Test public void testByTitleAndBno() { Collection results = repo.findByTitleContainingAndBnoGreaterThan("5", 50L); ..
게시글의 title과 content 속성에 특정한 문자열이 들어있는 게시물을 검색하려면... public interface BoardRepository extends CrudRepositroy { public Collection findByTitleContainingOrContentContaining(String title, String content); } findBy + TitleContaining + Or + ContentContaining과 같은 형태가 됩니다.
@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"; } }
빈(Bean) Spring IoC 컨테이너가 관리하는 자바 객체를 빈(Bean) 이라고 부른다. ApplicationContext.getBean()으로 얻어질 수 있는 객체는 빈이다. IoC(Inversion of Control) 제어의 역전 즉, 자바 초기 객체간 의존관계를 연결하는 등의 제어권은 개발자가 직접 가지고 있었다. 그러나 Servlet, EJB가 등장하면서 개발자가 독점적으로 가지고 있던 제어권이 외부 컨테이너로 넘어갔다. 이것이 IoC이다. IoC Container BeanFactory ApplicationContext 1) BeanFactory BeanFactory 인터페이스는 IoC컨테이너의 기능을 정의하고 있는 인터페이스이며, Bean의 생성 및 의존성 주입, 생명주기 관리 등의 기..