스택오버플로우에서 유명한(?) 글을 번역합니다. 원문 의역, 오역 있음. 번역 못하면 그냥 english 로 적습니다.. Question @Component, @Repository와 @Service가 상호 교환이 가능하게 쓰여질 수 있나요? 아니면 notation device 외에 부분적으로 기능들이 주어지는 건가요?? 그니까, 서비스 클래스에서 @Service 어노테이션을 @Component로 바꿔도 클래스의 역할이 달라지지 않나요? 아니면 클래스에 기능, 행동적으로 영향을 미치게 될까요?? Answer1 @Repository 어노테이션은 repository, DAO의 역할을 하는 모든 클래스에 marker로 쓰이게 됩니다. 이 marker는 예외를 자동으로 번역할 수 있습니다. Exception Tr..
가지고 있던 프로젝트에서 로거 생성을 실습하려고 private Logger logger = LoggerFactory.getLogger(XX.getClass()); 같은 형태로 인스턴스를 만들어 써먹으려고 했는데 No qualifying bean of 'org.slf4j.logger' 라는 둥.... Bean creating 에 오류가 있다는 둥... 하면서 오류를 뱉길래.. Error creating bean with name 'XX' defined in file '/.../....' : Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.No..
맨날 헷갈려.... @Consumes: 서버에서 수신하고자 하는 데이터 포맷 브라우저에서는 여기 적혀있는 포맷의 데이터만 서버로 보낼 수 있다. RequestMapping(..., consumes=MediaType.APPLICATION\_JSON\_UTF8\_VALUE) 일 때 서버는 body에 담긴 데이터의 타입이 APPLICATION\_JSON\_UTF8 일 때의 요청만 처리한다. @Produces: 서버에서 송신하고자 하는 데이터 포맷 서버는 여기 적혀있는 포맷의 데이터만 브라우저로 내보낼 수 있다. RequestMapping(... , produces = MediaType.APPLICATION\_JSON\_UTF8\_VALUE) 일 때 Http 응답 헤더로 Content-type: applicat..
코배스 코드로 배우는 스프링 웹프로젝트 하던 중에 댓글 페이징을 하는데 댓글 등록하고 화면처리 하는 부분에 페이징이 안되서 해결과정을 글로 남김 ㅋㅋ댓글 넘겨오는 것도 문제였지만 그건 내 문제였다고 한다^.ㅠ 아무튼 책에서 알려준 코드는 이렇다. 먼저 댓글을 등록하는 부분 //get.jsp 내 modalRegisterBtn.on("click", function(e){ replyService.add(reply, function(result){ //....생략 showList(-1); }); }); 위에서 showList(-1)을 넘겨주는데, 그러면 showList()에서 받는다. //get.jsp 내 function showList(page){ replyService.getList( {bno: bnoVal..
@ModelAttribute 1. 메서드에 ModelAttribute 애너테이션을 사용하거나 → 스프링의 Model 객체에 속성을 저장하고 싶을 때 이면 반환받은 a 인스턴스가 Model 객체에 추가된다. 반환되는 a 객체가 aString이라는 이름으로 Model 객체에 저장됨, RequestMapping이 붙은 메서드보다 먼저 실행됨 2. 파라미터에 ModelAttribute 애너테이션을 사용하는 방법 → Model 객체에서 속성을 읽고 싶을 때 이런 예제가 있다고 치면, Model로부터 page라는 객체를 얻어서 numb에 대입된다→ 오토 박싱 ModelAttribute 로 지정한 모델 속성을 Model 객체에서 찾을 수 없으면, 스프링이 자동으로 메서드 인수 타입에 맞는 새로운 인스턴스를 만들어서 ..
각 계층부터 얘기해보자면 presentation 계층, business 계층, persistence 계층으로 나뉘고 각각 프레젠테이션, 비즈니스, 영속 계층이라고 한국어로 표기하더라(왜 persistence만 영속..?) 1. 먼저 실제로 작업이 이루어지는 영속persistence계층에서의 테스트...(아닐 수도 있고) 그냥 mapper를 직접 두고 테스트해본다는 의미이다. 차례대로 CRUD 2. 비즈니스 계층에서의 CRUD 테스트 영속 계층과 프레젠테이션 계층사이에서 로직을 처리한다. 의존성 주입된 service interface와 implement 3. controller를 통해 CRUD test JUnit으로 테스트 중이기 떄문에 MockMvc를 사용했다. URL을 통해 controller에 접근하..