프레임워크 Spring
- 대부분 회사에서 프레임워크 툴을 가지고 개발을 하는데 기존 eclipse를 가져다가 한국에 맞춰 개발한 것 ---- 미국의 Spring 구조를 가져옴
스프링을 배워야됨
- 같은 툴을 이용해 개발하면 개발의 효율 높아짐
- 툴을 다운받으면, 교육에 사용되는 프로젝트파일이 있는데, server폴더 제외 삭제하기
- 실제에서는 eGovFrame를 선택해서 개발하지만 Spring기초부터 알아야 eGovFrame을 할 수 있기 땜에 JavaEE를 선택함. 퍼스펙티브에서 eGovFrame를 선택하면 Spring 안나옴
- 스프링은 각종 라이브러리를 사용하기에 인터넷이 연결되어야됨
- jdbc사용하지 않고, MyBatis DB프레임워크 사용 -->MySQL
- frontcontroller의 구조를 가지고 있음
- 클라이언트 - 요청 하면 frontcontroller의 서블릿 : Dispatcher Servlet
프론트컨트롤러에서 실행 클래스를 찾아야됨 핸들러맵핑-> requestmapping "/" 실행시키기 위해서 어댑터 통해 실행 ... 컨트롤러가 디비 DB프레임워크 MyBatis
뷰이름만 어댑터통해 실행
뷰리졸버가 뷰이름 완성해줌
- POJO( Plaion Old Java Object) - 위치 찾기 servlet-context.xml 에서
<context:component-scan base-package="kr.smhrd.web" />\
- @Controller 라는 어노테이션 이 있어서 패키지 안에서 찾아옴!!
그냥 jsp안에서 실행시 404오류 : http://localhost:8082/web/WEB-INF/views/home.jsp 보안폴더인 web-inf에 만들어졌기땜에, fc를 무조건 거쳐야함
특정메모리에 데이터를 담아서 이동하는 방식:객체바인딩=동적바인딩
url이름 그대로, 서버 내부에서 이동하기 땜에 모델(리퀘스트) 데이터 꺼내올 수 있음 - 포워드방식
- pom.xml dependencies태그 안에 api 를 등록해 필요한 라이브러리를 손쉽게 사용할 수 있음!
프로젝트 생성
- 프로젝트를 만들 때 기본 패키지가 있어야하고, 3단계에 걸쳐 이름을 생성해준다.
- new - 스프링레거시 프로젝트 - 템플릿에서 스프링 MVC프로젝트
- __.___.___ 마지막__이 컨텍스트패스
- 프로젝트 안에 서버 연동시키려면 톰캣서버에 프로젝트를 등록시켜야됨 severs탭에서 add and remove 에서 SpringMVC add
- 톰캣에 등록하면 server.xml의 컨텍스트패스가 마지막에설정한 이름으로 확인됨
- context path 로 접근해야 SpringMVC 프로젝트로 접근가능
- 서버 restart
- Libraries에 각종 api를 관리하는 Maven 의 jar파일들이 있다. pom.xml에서 필요 라이브러리 추가 하면 자동으로 올라감
<dependency>
태그 가져와 붙여넣어주면 됨
- 전자정부 프레임워크 표준 JDK는 1.8 버전인데 Spring 프로젝트는 1.6버전이 적용되어있고 JDK 버전을 바꿔줄때 :
<plugin>
태그 안의 컴파일러 버전을 1.8로 변경
-> 프로젝트명 오른쪽마우스 메이븐-업데이트프로젝트 표스업데이트 ~~ 부분 체크하고 OK
BoardVO 생성하기 - 게시판 만들기
lombok(게터세터, 생성자 등 쉽게 쓸수 있는api)
cmd창에서
C:\Users\smhrd>cd C:\eGovFrame-3.10.0\bin\jdk8u242-b08\bin
C:\eGovFrame-3.10.0\bin\jdk8u242-b08\bin>java -jar lombok.jar
cd
프로젝트에 api 추가해야됨 --메이븐
@치고 키워드 자동완성으로 import 하기!
- @Data 어노테이션으로하면 게터세터,생성자 자동생성
- @AllArgsConstructor 전체 담는 생성자
- @NoArgsConstructor 기본생성자
- @ToString
- @NonNull 원하는 필드 위에 있어야하는 생성자 필드 적용
package kr.smhrd.mapper;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.ToString;
//롬복 api import 어노테이션으로하면 게터세터,생성자 자동생성
@Data
@AllArgsConstructor //전체 담는 생성자
@NoArgsConstructor //기본생성자
@ToString
public class BoardVO {
private int idx; //번호
@NonNull //원하는 필드 위에 있어야하는 생성자 필드 적용
private String title; //제목
@NonNull
private String contents; //내용
private int count; //조회수
@NonNull
private String writer; //작성자
private String indate; //작성일
}