Spring 에서의 웹개발은 MVC 패턴으로 개발이 된다. Model, View, Controller 로 구성되어있다. 그중에서도 각각의 어노테이션을 취해주어야 하는데 보통 패키지로 구분을 한다. 이런식의 구조를 가지고 있다. 그럼 각각 무슨 기능을 하는지 알아보자. controller - 클라이언트에서 전달되는 모든 데이터가 거쳐가는 곳이다. 이곳을 통해 맵핑이 되기도 하며 데이터를 주고 받는 기능을 처리하는 곳이다. @Controller 어노테이션으로 사용한다. domain - 하나의 객체 DTO 라고 할 수 있다. 클래스를 만들고 이 객체를 담기위한 그릇으로 사용된다. Member 라는 클래스가 있고 이 클래스는 회원객체이다. 예를들어 요구사항이 구분을 위한 식별자 id 값과 이름인 name이고, ..
이번에는 유효성 검사에 대해 알아보도록 하겠다. 일단 Validator 을 이용하도록 하겠다. 검증 결과를 받아오기 위한 BindingResult 객체를 받아온다. MemberVlidator 이라는 클래스를 만들기 위해서 Validator 을 상속한다. 그러면 MemberValidator 의 빨간줄이 생기는데 add method를 해주면 이렇게 두개의 메소드가 자동으로 만들어진다. 오버라이드를 하여 메소드를 내가 필요한 검증을 하기위하도록 바꿔준다. 위에 name이 null이거나 비어있으면 컨트롤러로 다시 가서 에러가 있으니 hello로 돌아오게 된다. 돌아왔다. ValidationUtils를 활용하는 방법도 있다. @Valid와 @InitBinder를 활용한 검증을 해보겠다. 이건 스프링에서 제공되는 ..
일단 hello 로 접속해보자 hello의 폼이다 액션은 hello2로 가지게 되고 get 과 post 방식이 있는데, get으로 보내면 받는것도 get으로 받아야하고 post로 보내면 post로 받아야한다. post로 보내 보도록 하겠다. 액션이 취해지면 이 컨트롤러로 와서 액션에 해당하는 매핑 값을 찾고 post인 것을 볼 수 있다. 데이터를 받아 올때는 member.name 식으로 받아오면 된다. hello 폼이다. 전송을 누르면 hello2 로 이렇게 데이터가 전송이 된다. @ModelAttribute 를 알아보겠다. 커맨드를 바꾸는 것인데 member.name 이라고 했던것을 원하는 것으로 바꿔주는 것이다. member을 abc로 바꾼것이다. 그러면 이렇게 데이터를 불러 올 때에도 abc로 불러..
HttpServletRequest 사용방법이다. view에서 데이터를 출력하는 방법이다. http에서 사용가능한 get방법이다. 결과이다. @RequestParam 어노테이션을 활용한 데이터 처리방법이다. HttpServletReuqeust 에선 데이터를 넣지 않아도 페이지가 동작되는 반면에 @RequestParam은 데이터가 없으면 동작하지않는다. 그렇기엔 애초에 필요한 데이터를 객체로 받는방법이다. Member 타입으로 받겠다. Member라는 클래스를 만든다. souce를 누르고 getter and setter를 누른다. 그러고 체크를 하고 제너레이터를 누르면 get set이 자동으로 생성된다. 그러고나서 view 에서 처리방법이다. @PathVariable 을 사용하여 @RequestMapping..
스프링 컨트롤러에서 Model 을 알아보자 데이터를 Model 타입으로 만들 수 있다. addAttribute() 메소드를 사용하여 생성한다. view 에서 데이터를 받아올 때는 위에 request.getAttribute() 메소드를 사용하거나 ${name} 로 받아 오면 된다. 로컬주소로 들어가보면 값이 나오는 것을 확인 할 수 있다. ModelAndView 는 모델과 뷰 를 동시에 가지고 있기 때문에 객체를 생성해주고 setViewName() 으로 뷰의 경로를 잡아주고 addObject() 로 생성해주고 그것을 리턴해 준다. 리퀘스트 맵핑은 클래스에서도 사용할 수 있다. 이런 식으로 클래스에도 맵핑을 붙이게 되면 클래스에 맵핑된 주소를 먼저 찾게 된다. 그 다음 맵핑을 이어서 찾게 된다.
iducs라는 컨텍스트 명이 root 디렉토리이다. 이클립스에서 스프링 mvc 프로젝트를 생성하면 톰캣서버에서 패키지 .을 기준으로 세번째를 자동으로 컨텍스트를 생성해준다. / 로 들어오는 모든 것을 appServlet인 DispatcherServlet로 보내고 servlet-context.xml로 보낸다. 여기에는 컨트롤러가 있다. 아래 context 에 패키지를 기준으로 찾게 되고, ViewResolver를 통해 prefix , suffix 정해지고 만약 컨트롤러에서 home을 리턴을 시켰으면 WEB-INF/views/home.jsp가 되는것이다. 그리고 위에 /resources/** 부분을 보면 모든 / 를 dispacher를 통해 컨트롤러로 보내지는데 /resources/ 로 오는 모든 경로는 컨..
빌드 전에는 서버를 꼭 종료한다. 명령 프롬프트 창을 킨다. 해당 패키지 경로로 이동하게되면 gradlew와 gradlew.bat이 있다. Mac은 gradlew를 사용하면되고 Window는 gradlew.bat을 사용하면 된다. gradlew.bat build 로 빌드한다. 빌드를 하게되면 build 라는 폴더가 생기는데 안에 들어가보면 libs 라는 폴더가 있다. libs 로 들어가보면 jar파일이 생성된 것을 볼 수 있다. jar파일을 실행하면 스프링이 실행되는 것을 볼 수 있다. 나중에 jar 이 파일만 서버에 올리면 끝난다. gradlew clean 하면 빌드 폴더가 사라집니다. gradlew clean build 완전히 다시 빌드가 됩니다.
Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다. 스프링부트를 사용하면 자동으로 라이브러리가 들어온다. 실무에선 로깅을 쓴다 logback 과 slf4 조합을 많이 쓴다. test 관련 라이브러리도 있다. 핵심 라이브러리는 -spring-boot-starter-web - spring-boot-starter-tomcat:톰캣(웹서버) - spring-webmvc:스프링 웹 mvc -spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(view) -spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅 -spring-boot -spring-core -spring-boot-starter-logging -logback, slf4j 테스트 라이브러리..