Web(110)
-
메이븐 멀티프로젝트(maven multi module) & SVN
maven multi module project 만드는 방법과 해당 프로젝트를 SVN에 올리고 다른 개발환경에서 checkout하는 방법모든 환경은 Mac OS 환경입니다. 오늘 설명 할것은 maven multi module project를 만드는 방법과 해당 프로젝트를 svn에 업로드하고 다른 개발환경에서 checkout하는 방법입니다. 1) 우선은 부모 maven 프로젝트를 만들어줍니다. 지금까지 잘 따라오셨다면 부모 maven 프로젝트가 만들어져 있을 것입니다. 주의해야할 점은 반드시 packaging을 pom으로 지정해주셔야하는 것입니다. 2)자식 메이븐 모듈 만들기 이렇게 하면 자식 메이븐 모듈 프로젝트까지 생성이 됩니다. 3)프로젝트 구조 제가 만든 별도의 프로젝트는 신경쓰시지 마시고 , 생성..
2018.09.30 -
Springframework @RequestBody 주의사항(?)
저와 같은 바보같은 분은 없을 것이라고 생각이 들지만 제가 겪었던 하나의 문제였기 때문에 작성해봅니다.... 만약 @Controller 클래스에서 요청바디에 넘어온 데이터를 받기위하여 @RequestBody라는 어노테이션을 다들 많이 쓰실 겁니다. 다른 분들은 절대 저와 같은 바보같은 짓을 하시지는 않으셨겠지만, 저는 요청 바디로 넘어온 데이터를 적절히 2개의 객체로 나누기 위해서 메소드 파라미터에 2개의 @RequestBody를 사용하였습니다. 근데 이게 뭐람 에러 뚜뚱... 에러가 발생하였습니다. 무슨 에러인가 막 찾아보고 고민하던 중에 중요한 사실을 알게되었습니다. 요청 바디로 넘어온 데이터를 받기위해 @RequestBody를 사용하는데 이 어노테이션은 스트림을 이용하여 요청바디의 데이터를 불러 온..
2018.09.30 -
springframework(스프링) Controller 작성전략(제네릭스,매핑정보상속)
모든 컨트롤러의 중복된 로직 코드량 확줄여버리는 코딩전략, 제네릭스와 매핑정보 상속을 이용한 컨트롤러 작성전략 웹개발을 하면서 지겹도록 작성하는 코드가 CRUD 관련 코드이다. 매번 똑같은 패턴이며 도메인 오브젝트만 바뀔뿐 딱히 로직이 크게 차이가 없다. 그렇지만 우리는 서비스 클래스는 물론 컨트롤러의 코드에 CRUD코드가 많이 중복되며 대부분 서비스클래스에게 작업을 위임해주는 작업뿐이다. 그렇다면 어떻게 중복된 것을 최대한 배제시킬 수 있을까?그것이 바로 제네릭스를 이용한 상속 전략이다. 바로 예제 코드로 넘어가면, 123456789101112131415161718192021222324252627282930313233343536373839package com.toby.spring.controller; ..
2018.09.20 -
xml을 대체하는 어노테이션
출처:https://www.slideshare.net/arawnkr/spring-camp-2013-java-configuration
2018.09.04 -
다양한 ApplicationContext 예제 및 소개
1.StaticApplicationContext-코드를 통해 빈 메티정보를 등록하기 위해 사용한다. 거의 사용되지 않는 구현체이다. 1234567891011121314151617181920212223242526272829303132 //단순 빈을 등록하고 불러오는 작업 StaticApplicationContext context=new StaticApplicationContext(); context.registerSingleton("hello", Hello.class); Hello hello=(Hello) context.getBean("hello"); hello.setName("yeoseong_yoon"); System.out.println(hello.getName()); //빈등록전에 해당 오브젝트에 대..
2018.09.02 -
JSR 303 어노테이션을 이용한 Validation 수행
JSR 303 어노테이션을 이용한 유효성검사 보통 웹 개발을 하다보면 컨트롤러에서 값을 받아와서 해당 객체의 변수의 유효성 검사를 위한 로직을 넣어봤을 것이다. 하지만 일일이 유효성 검사 로직을 넣는다는 것은 굉장히 불편한 일이다. 여기서 사용할 수 있는 어노테이션이 있다. @Controller@RequestMapping("/rest")public class AController{@Autowiredprivate AService aService; @RequestMapping("/.....")public ADto getADto(@Valid ADto aDto){ =>Dto 클래스에 정의한 어노테이션으로 유효성검사 진행......return aDto;}} public class ADto{@NotNullpriva..
2018.08.12