[spring boot] eclipse 에서 프로젝트 생성 및 mybatis 연결
Spring 프로젝트를 진행하기위해 프로젝트 생성하는 방법입니다. 프로젝트를 만드는 여러가지 방법이 존재하는데 Eclipse, STS , Intelij 등 여러 IDE중 저희는 Eclispe를 사용함으로 Eclipse에서 진행하겠습니다. Eclipse에서도 여러가지 방법이 존재하는걸로 알고있는데 그중 한가지 방법 입니다.
저는 Eclipse 19.06 버전을 사용하고 있습니다.
1. 일단 workspace를 만든후 오른쪽 위 버튼을 누르면 여러가지 모드중 JAVA EE를 선택해주세요
2. 다음 Help -> Elcipse Marketpalce 로 들어가서 spring을 검색해주세요
저는 설치를 미리 했지만 설치가 안되신분들은 spring을 검색한 후 go 를 누르면 Spring Tools 이 나올 것입니다 . install 버튼을 눌러주세요
4. next와 agree를 계속 누르면 설치가 되는것을 오른쪽 하단 에서 볼수 있습니다. 이제 설치는 다됫고 실제로 spring 프로젝트를 만들 순서 입니다. create a project를 누르고 검색 부분에 spring 이라고 검색한 후 spring starter project를 선택해주세요
5. spring starter proejct를 누르고 다음넘어간 후 Name , Group , Artifact, Description , Package를 자신에게 맞게 입력한후 Type,Packaging, JavaVersion,Language를 선택해주세요.
저희는 Maven을 사용하고 War로 패키징하기때문에 아래와 같이 셋팅했습니다.
그리고 JavaVersion은 8을 선택해주시는게 좋습니다.
6. 설치를 하면서 기본적으로 사용할 패키지를 추가하는곳입니다.
Spring Web은 필수로 추가해주고 사용하는 DB driver ( 저흰 MS-SQL 을 사용합니다 , Mysql을 사용하면 검색창에 Mysql 을 검색하시면 됩니다 ) , mybatis , Lombok ( Getter,Setter 자동 추가 라이브러리 ) 를 추가하면 됩니다.
7.그리고 저희는 JSP 를 사용하는데 JSP를 사용하기 위해서는 이부분을 pom.xml 에 추가해줘야합니다.
추가로 query 에대한 로그 기능인 log4j2 , jstl 을 추가해줍니다.
8. 다음은 개발에 부수적으로 영향을 미치는 부분인 Encoding 과 Validation ,Compiler를 셋팅할 차례입니다.
인코딩을 UTF-8 , Validation 해제 , 컴파일러 버전 1.8 , 내가만들 JSP default 언어를 UTF-8 로 셋팅 할 것입니다.
먼저 프로젝트 우클릭 - properties 선택
Resource - Text file encoding - UTF-8
Validation - Enable Proejct - Disable All ( 빌드나 동기화할경우 validation 검사안함 )
java compiler - enable proejct - use - 1.8
이건 window-preferences에서 Web- JSP Files -> UTF-8 ( 생성하는 JSP 파일 기본 설정 UTF-8 )
9.이번에는 빌드를 위한 JRE에 추가 설정을할 차례입니다
window - preferences 로 이동한 후
Java - installed JREs 로 이동한후 기본으로 설정된 jre를 누른 후 Edit
Add External JARs 를 눌러 tools.jar 를 추가해줄 예정입니다.
기존에 설치한 jdk파일을 찾아서 lib -> tools.jar 를 add해주세요
그러면 Jre 에 tools.jar 추가된것을 볼수 있습니다.
10. 이제 프로젝트를 실행하기전 마지막 단계로 DB와 연결 , resolving , 설정만 해주면됩니다.
설치할때 DB Driver를 설치해서그런지 DB와 연결을 하지않으면 실행이안되더라고요. 만약 DB가 없다면 DB드라이버 설치시 H2를 추가해주세요 . H2는 inmemory DB로 프로젝트가 살아있는 동안만 유지되는 임시 DB같은것이에요 .
처음에 프로젝트를 보시면 Src 를 찾고 -> main 을 열면 java,resource,webapp 이렇게 있을겁니다
일단 Resouce 의 Application.properties 를 열어주세요 . 그리고 아래와같이 입력해주시면됩니다
2,3번줄은 resolving 설정으로 JSP 파일 경로를 디폴트로 설정해주는 역활을 하고 , 5~8번은 DB와 연결을 설정해주는 부분입니다.
위에서 추가해준 log4j2 를 사용하려면 driver-class-name 을 net.sf.log4jdbc.sql.jdbcapi.DriverSpy 로 변경하고
url 도 jdbc:sqlserver:// -->jdbc:log4jdbc:sqlserver로 변경해주어야 합니다.
mybatis,mapper-locations=static/**/*.xml 은 repository에 생성할 mapper가 testMapper.xml 을 찾을수 있도록 지정해주는 명령입니다.
11. 이제 실제 동작할수있도록 JSP와 만들어줄 예정입니다 .
webapp 밑에 WEB-INF 라는 디렉토리를 생성하고 그 밑에 index.jsp 라는 파일을 만들어주세요
그러면 구조가 아래처럼 될 것입니다.
그리고 index.jsp 파일에다가 아래처럼 입력해주시면되여 ,우리가 아까 JSP 언어를 UTF-8 로셋팅했기에 charset 이 UTF-8 인것도 볼수있습니다.
12. 마지막으로 만든 JSP를 열어볼수있도록 사용자가 요청을하면 받아줄 Controller를 만들어줄 것입니다.
저희는 localhost:8080/test 로 요청을하면 페이지가 열리도록 할 예정입니다
자바 파일에서 클레스위에 @Controller를 선언을 하고 test라는 요청을 받을 수 있게 @GetMapping("/test")를 추가해주세요
여기서 return 해주는 index는 저희가 위에서 만든 index.jsp 파일입니다.원래는 /WEB-INF/views/index.jsp 라고 적어줘야하는데 아까 application.properties에서 suffix,prefix를 설정했기 때문에 index라고만 입력해도 됩니다.
이제 프로젝트를 실행해볼게요 자바 파일에서 우클릭 -> run Configuration ->Spring Boot App
project와 MainType을 본인이 만든 프로젝트로 선택하시고 실행해주면됩니다
브라우저에 localhost:8080/test라고 입력하며 아래와같이 index.jsp 파일이 열릴 것입니다.
추가 ++
위에서는 get 방식으로 접근하는 부분만 작성하였는데 추가로 db와 연결하여 select 해오는 부분을 추가할 예정입니다.
일단 src.main.java 의 구조를 아래 그림과같이 만들어주세요
여기서 제가 생성한건 controller , repository , service 디렉토리와 거기에 포함되는 indexController.java , testMapper.java , testService.java 입니다
(testMapper는 type을 interface로 지정해야 합니다.
먼저 IndexController입니다.
/ 로 접근하면 testService에 있는 selectAll을 실행시키고 그 결과를 List<HashMap<String,Object>> 로 받는 모습입니다.
다음 testService입니다 IndexController의 요청을 받아 testMapper에 요청을 하게됩니다.
마지막 testMapper입니다 이부분에서는 반드시 interface로 생성해야하며 실제 query가 담겨있는 resource에있는 파일을 호출합니다.
실제 쿼리를 호출하기 위해서는 아래와같은 구조를 만들어주고 testMapper.xml에 작성해야합니다.
또한 testMapper.java에서 testMapper.xml을 찾을수 있도록 application.properties에
mybatis.mapper-locations=static/**/*.xml
를 추가해야합니다
이제 debug모드로 실행 해보면 breakpoint를 걸어 실행해보면
list라는 변수에 응답 값이 있는것을 확인할 수 있습니다.