Spring 개발환경 설정 정리[spring,Mybatis(mysql),tomcat]

2016. 4. 8. 17:41·공부/Spring

0. 프로젝트 생성

new>project>spring project> spring mvc project

* spring starter project를 사용하지 않는다.

** STS는 기본적으로 maven을 내장하고 있기 때문에 프로젝트 생성 시 바로 maven을 이용해서 스프링 관련 라이브러리를 다운한다. 

 

- 책에 나온 Spring Starter Project와 Spring Proejct 비교.

 

Spring Starter Project(Spring Boot) 

Spring Project 

 장점

 

. 별도의 설정이 필요 없다.

. WAS없이 실행이 가능하다.

. 로딩 시간이 짧아서 테스트 하기에 편하다. 

 

 

. 현재까지 실무에서 많이 사용되고 있다.

. 다양한 자료가 존재한다.

. 기존 프로젝트를 이해하는데 도움이 된다.

. 모든 버전의 스프링에서 사용할 수 있다. 

 단점

. 기존의 설정과 다른 방식으로 사용한다.

 . JSP 설정 등은 별도로 해야 한다.

. 초반  테스트 환경 구성 등이 어렵다.

. WAS와 연동하는 경우 결과 확인에 많은 리소스를 소모한다. 

 

스프링 MVC 프로젝트 템플릿의 구조

src/main/java : 개발되는 java 코드의 경로

src/main/resources : 서버가 실행될 때 필요한 파일들의 경로

src/main/webapp/WEB-INF/spring : spring 설정 파일의 경로

src/main/webapp/WEB-INF/web.xml :

root-context.xml 을 Root Spring Container로 지정해 모든 필터와 서블렛들이 공유하도록 한다. 또한 servlet-context 를 이용해 DispatcherServlet 클래스가 Front-end Controller 로 동작할 수 있도록 해 준다. 다시 말해 요청을 처리할 수 있도록 해 준다는 뜻이다.

src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml :

CSS나 Image 등 각종 리소스가 있는 statis 폴더를 지정하고. View 의 파일 타입과 폴더를 지정한다.

View 지원 bean 설정

ex) Controller

src/main/webapp/WEB-INF/spring/root-context.xml :

View 지원을 제외한 bean 설정
ex) Service / Repository(DAO) / DB / log 등등

src/main/webapp/WEB-INF/view : jsp 파일의 경로

pom.xml :Maven의 설정파일

 

 

1. 프로젝트 생성 이후 기본설정

1. 프로젝트 우클릭 > properties >Project Facets에서 JAVA 버전을 1.8로 설정

2. properties > Java Compiler 에서 JAVA 버전을 1.8로 변경

3. Spring framework 버전 변경 - pom.xml [ 수정 후 메이븐 라이브러리에서 변경사항 확인]

        <properties>

                 <java-version>1.8</java-version>

                 <org.springframework-version>4.1.7.RELEASE</org.springframework-version>

                 <org.aspectj-version>1.6.10</org.aspectj-version>

                 <org.slf4j-version>1.6.6</org.slf4j-version>
        </properties> 

 

4. Server 추가 및 path 설정. (tomcat 8) path설정은 선택.

 

2. MySQL 설정

1. pom.xml에 dependency 추가로 관련 라이브러리 다운

                <dependency>
                         <groupId>mysql</groupId>
                         <artifactId>mysql-connector-java</artifactId>
                         <version>5.1.36</version>
                 </dependency>

 

3. Mybatis 설정   

1. pom.xml에 dependency 추가 [spring-jdbc 역시MySQL과의 연동을 위해 필요하다]

                  <!--  MyBatis -->       

                 <dependency>

                         <groupId>org.mybatis</groupId>

                         <artifactId>mybatis</artifactId>

                         <version>3.2.8</version>

                 </dependency>

                

                 <!-- MyBatis-Spring -->

                 <dependency>

                         <groupId>org.mybatis</groupId>

                         <artifactId>mybatis-spring</artifactId>

                         <version>1.2.2</version>

                 </dependency>

                

                 <!-- spring-jdbc -->

                 <dependency>

                         <groupId>org.springframework</groupId>

                         <artifactId>spring-jdbc</artifactId>

                         <version>${org.springframework-version}</version>

                 </dependency>

                

                 <!-- spring-test -->

                 <dependency>

                         <groupId>org.springframework</groupId>

                         <artifactId>spring-test</artifactId>

                         <version>${org.springframework-version}</version>

                 </dependency>

 

 

2. root-context.xml의 Namespace에 aop,beans,context,jdbc,mybatis-spring 추가
   [pom.xml에서 추가한 라이브러리가 모두 설치된 후 root-context.xml의 하위탭 Namespace에서 추가 가능

3. root-content.xml의 Source에 MySQL과 연결을 담당하는 DataSource 설정하기.

        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

                 <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>

                 <property name="url" value="jdbc:mysql://127.0.0.1:3306/내 스키마 이름"></property>

                 <property name="username" value="내 아이디"></property>

                 <property name="password" value="내 비밀번호"></property>
       </bean> 

4. SqlSessionFactory 객체 생성하기. (root-context.xml)

Connection을 생성하고 처리하는 SqlSessionFactory의 존재. DB와의 연결 및 SQL 실행에 대한 모든 것을 가진 중요한 객체임

property configLocation은 mybatis설정파일의 경로임

        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

                 <property name="dataSource" ref="dataSource"/>

                 <property name="configLocation" value="classpath:/mybatis-config.xml"></property>

        </bean> 

5. mybatis-config.xml 추가 (경로는 src/main/resources) .

mybatis의 설정파일로 아직 설정사항 없음.

 <?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

 

</configuration>

 

6. (선택) pom.xml - JSON 형식으로 반환받기 위해 필요한 라이브러리 추가.

 <!--  JSON형식으로 반환받기 위해 필요한 라이브러리  -->

               <dependency>

                      <groupId>com.fasterxml.jackson.core</groupId>

                      <artifactId>jackson-databind</artifactId>

                      <version>2.5.4</version>
               </dependency>

 

3-2 Mapper 생성

1. src/main/resources/mappers/(사용할이름)Mapper.xml

  typeAliases는 나중에 편의를 위해 추가해주는거로 지금 안해줘도 됨..

 

 <?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

       <typeAliases>

               <package name="org.zerock.domain"/>

       </typeAliases>

</configuration>

 

 

2. myBatis-Spring에서 XML Mapper 인식시키기. 해당 경로에 ~~Mapper.xml 파일을 모두 Mapper로 인식

   root-context.xml sqlSessionFactory에 property 추가

 

<property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml"></property> 

 

3. SqlSessionTemplate 설정

SqlSessionTemplate는 mybatis-spring 라이브러리에서 제공하는 클래스로 DB와 연결을 맺고 작업을 완료한 후에 close()처리를 대신 해주는 라이브러리다. 추가로 기본적인 트랜잭션 관리나 쓰레드 처리의 안전성(?)을 보장해준다..

root-context.xml에 추가

 

        <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">

                 <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>

        </bean> 

 

 

4. 스프링에 빈 등록

@Repository 애노테이션을 해당 패키지에서 인식시키게 하기 위한 설정을 추가함.

root-context.xml

 

<context:component-scan base-package="org.zerock.persistence"></context:component-scan>

 

저 경로는 dao가 들어있는 패키지 경로로 나중에 위와 같이 service가 포함된 경로도 추가해줘야함. 

 

 

 

=============

 

AOP와 트랜잭션 설정은 이후에 ..

반응형
'공부/Spring' 카테고리의 다른 글
  • 스프링 프레임워크 자원관리(BEAN)
  • Spring 개발환경 설정 정리2[AOP, intercepter]
  • 내가 헤깔려하는것을 다시 정리해봄.
  • [Spring] CHAPTER 05 비즈니스 로직 층의 설계와 구현
JangGiraffe
JangGiraffe
안녕하세요~ 반갑습니다! 머무시면서 즐거운 시간 보내시길 바랍니다. 오픈카톡 : https://open.kakao.com/o/sYEBs0uh
  • JangGiraffe
    giraffe1010
    JangGiraffe
  • 전체
    오늘
    어제
    • 분류 전체보기 (390) N
      • 공부 (155) N
        • AI (3)
        • Spring (10)
        • JAVA (31)
        • python (6)
        • 기타 (12) N
        • 메세지 (3)
        • Jsp,Servlet (4)
        • HTML (12)
        • Javascript (6)
        • C#,ASP.NET (2)
        • WEB (2)
        • DB (11)
        • Android (18)
        • [BaaS]Parse.com (4)
        • 졸업프로젝트 (4)
        • AWS,네이버클라우드플랫폼 (2)
        • Ubuntu (6)
        • maven (1)
        • 자료구조 (15)
        • 서버 (3)
      • 게임 (0)
      • 관심 (22)
        • 사진 (1)
        • 패스오브엑자일(POE) (1)
        • 월드오브워크래프트 (4)
        • 블로그 (7)
        • 이슈 (1)
        • IT (5)
        • 기타 게임 (3)
      • 자료 (2)
        • 면접 (2)
      • 먹거리 (103)
        • 음식리뷰 (99)
        • 카페리뷰 (4)
      • 여행 (35)
        • 국내여행 (23)
        • 해외여행 (12)
      • 생활정보 (68)
        • 생활정보 (33)
        • 상품리뷰 (34)
        • 세미나후기 (1)
      • 끄적끄적 (5)
        • 영화후기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 문의(카톡)
    • 방명록
  • 링크

    • 2zino
    • wildbluffer
  • 공지사항

  • 인기 글

  • 태그

    강서구맛집
    왕십리맛집
    월드오브워크래프트
    와우
    강원도여행
    가양맛집
    돈벌기
    마곡맛집
    발산맛집
    시즈오카
    김포맛집
    양양 가볼만한 곳
    오징어난전
    ChatGPT
    제주도맛집
    떡볶이
    발산 회식
    자취
    맛집
    홍대맛집
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JangGiraffe
Spring 개발환경 설정 정리[spring,Mybatis(mysql),tomcat]
상단으로

티스토리툴바