토스3 13장 스프링 @MVC
P1227
*서비스계층 오브젝트에서의 검증
음 테스트를 해보았는데요.
책에는 간단하게 기술하셨는데, 컨트롤러와 같은방법으로는 DI가 되지 않는군요.
xxxxService, xxxxServiceImpl, xxxxDao, xxxxDaoImpl
Service와 Dao는 인터페이스고
~Impl은 구현체인데요. 구현체에 DI하고 로직작성하는것이 맞지요?
예제코드가 조금이라도 있었음 좋았을텐데 ㅠㅠ
제상황은...
org.springframework.validation.Validator 스프링 Validator를 사용하고요.
물론 <mvc:annotation-driven />을 기입해서
디폴트 발리데이터가 빈검증기 이긴합니다 (JSR-303)
하지만
<bean id="productValidator"
class="com.test.validation.validator.ProductValidator" />
와 같이 빈등록을 하고 org.springframework.validation.Validator구현체를 작성해서
@Autowired로 DI받아서
컨트롤러에서는 무리없이 잘쓰고있습니다.
JSR-303을 여러가지 이유로 포기했는데, (메시지 컨트롤이 힘들고 등등.....그룹등등)
이부분에서 막히네요...
도움 부탁드립니다^^
참 그리고 여기 계신분들중에서도 JSR-303대신 Spring Validator를 사용하고 계신 분이 계시다면
왜그러신지 질문 드려봐도 될까요?
~Impl은 구현체인데요. 구현체에 DI하고 로직작성하는것이 맞지요?
왜그러신지 질문 드려봐도 될까요?
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
책내용 대로라면 서비스 구현체에서 컨트롤러처럼 구현한 validator를 DI받고
this.validator.validate(product, BeanPropertyBindingReult bpResult);
이런식으로 해야할것 같은 분위기인데요.ㅎㅎ
흑...
근데 서비스 계층에서 쓸때는 체크예외를 던지라고 나와있던데,
이건 어떻게 해야한다는 거죠?^^
On 1월13일, 오후7시19분, 백기선 <whiteship2...@gmail.com> wrote:
> > ~Impl은 구현체인데요. 구현체에 DI하고 로직작성하는것이 맞지요?
>
> 넵 맞습니다. 예제코드는 CD에 들어있을지도 모릅니다.
>
> 왜그러신지 질문 드려봐도 될까요?
>
> JSR 303 만으로는 해결이 안되는 검증 로직도 있습니다. 그런 경우에는 스프링 Validator를 구현해서 복잡한 검증 로직을 그
> 안에 넣기도 합니다.
>
> 그나저나 1227p까지 보셨다니... 멋지십니다!!!
>
> 2011년 1월 13일 오후 7:13, 용이 <clov4l...@naver.com>님의 말:
> > 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com<ksug%2Bunsu...@googlegroups.com>로
> > 이메일을 보내주세요.
> > 더 많은 옵션을 보려면http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
>
> --
> 좋은 하루 되세요~
this.validator.validate(product, BeanPropertyBindingReult bpResult);이런식으로 해야할것 같은 분위기인데요.ㅎㅎ
근데 서비스 계층에서 쓸때는 체크예외를 던지라고 나와있던데,이건 어떻게 해야한다는 거죠?^^
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
참고로 서비스객체에서 사용할때는
@Autowired
ProductValidator productValidator;
.
.
BeanPropertyBindingResult result = new
BeanPropertyBindingResult(product, "Errors");
this.categoryValidator.validate(product, result);
이런식으로 해서 result를 사용하면 되는군요.
근데 아직도 P1227 맨밑에 단락에 나온말들은 어떻게 해야할지 모르겠네요^^
On 1월13일, 오후9시31분, 백기선 <whiteship2...@gmail.com> wrote:
> 넹 예제 코드에는 안나와있나보네요.
>
> 책을 열어봤더니 그렇게 적혀 있군요. Validator를 서비스 계층에서도 활용할 수 있다는.. 그래서 서비스 계층에 validator
> 주입해놓고 검증 로직을 수행하느라..
>
> this.validator.validate(product, BeanPropertyBindingReult bpResult);이런식으로
>
> > 해야할것 같은 분위기인데요.ㅎㅎ
>
> 이렇게 될 수도 있겠네요. 근데.. 이렇게 하면 안되나요? 왜 '흑' 이라고 하셨는지 궁금하기도.. 안궁금하기도.. @_@
>
> 근데 서비스 계층에서 쓸때는 체크예외를 던지라고 나와있던데,이건 어떻게 해야한다는 거죠?^^
>
> 이건 또 몇 페이지에 나와있는 이야기인지.. 궁금하기도 하고 안궁금하기도.. @_@
>
> 친절한 박성철님과 정상혁님께서 해결해 주실겁니다.
>
> 2011년 1월 13일 오후 8:35, 용이 <clov4l...@naver.com>님의 말:
> > <ksug%2Bunsu...@googlegroups.com<ksug%252Buns...@googlegroups.com>
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.