[part. 1 프로젝트의 기본 구조 구성]

1.개발 환경 설정 <page 26>
-sts 설치 / 이클립스( 메이븐 프로젝트 )
-스프링 프로젝트
 Spring Starter Project(Spring Boot) :
 별도의 설정이 없으며 was없이 실행가능하다. / jsp설정은 별도로 해야한다.
 Spring Project :
 현재 실무에서 많이 사용하고 있으며 모든 버전이 스프링에서 사용할수 있으나 초반 테스트 환경 구현이 어렵고  was와 연동하는 경우 리소스 추가요구된다.
이책은  Spring Project 로 Spring Legacy project 를 사용한다.
sts >> file > new project > Spring Legacy project > spring MVC project
-maven : poem.xml의 dependency 부분 확인할것 (.m2)
-tomcat 9.0 / java 1.8 / mysql 6.3.9 / mybatis 

2.스프링의 간단한 소개 <page 49>
-프레임워크
   뼈대가 완성, 조립식 가능 
-POJO기반구성
   엔터프라이즈급 프로젝트 시스템의 복잡성으로 인한 실패 >> 이로 인해 만들어진 경량 프레임워크로 관계시  apI를 사용하지 않는 POJO의 구성으로 가능하도록 제작되었음 >> 유연성, 확장성, 디커플링
-의존을 통한 객체 간의 관계 구성
   DI(Dependency injection ) 의존
      외부에서 필요한 객체를 직접 결정하기 때문에 의존 관계를 직접 처리할 필요없고 인터페이스를 통해 유연
      한 구조 개발 가능(생성자, set메소드)
      객체를 생성하면 각 객체를 연결해주는 조립기 역할을 한다.: GenericXmlApplicationContext클래스가 xml 파일의 설정정보를
      읽어와 객체를 생성하고 연결한뒤 내부적으로 보관한다. 이렇게 생성한 객체를 보관하기 때문에 컨테이너라고 부른다. 그리고 이 
      생성된 객체들을 빈이라고 부른다. 
   IoC( Inversion of Control )  제어의 역행
      메소드나 객체의 호출작업을 외부에서 결정 >> 프레임워크에  필요한 부품을 만들고 조립가능 >> 구조를       설계할수있도록 만들어짐 
-AOP(Aspect oriented Programming)
  비즈니스 로직(core-concern)에만 집중할수있도록 횡단 관심사(cross-concern  ex 로깅, 트랜잭션)를 분리

3.예제를 위한 MySQL의 설정과 스프링테스트

4.스피링 + MyBatis + Mysql 설정

5.모델 2방식의 스프링 MVC
<목요일 진행예정>

controller  <page 105>

리다이렉트 경우 파라미터 RedirectAttributes 로 받아 속성 addFlashAttribute를 사용한후 

리턴을 return "redirect: /@RequestMapping사용

JSON 데이터를 생성하는 경우 리턴타입 @ResponseBody 클래스 반환 


6.스프링 + Mybatis <page 126>

-mysql : book_ex스키마에 tbl_member 생성

create table tbl_member (
    userid varchar(50) not null,
    userpw varchar(50) not null,
    username varchar(50) not null,
    email varchar(100),

    regdate timestamp default now(),
    updatedate timestamp default now(),
    primary key(userid)
)

timestamp 사용시 서버시간 UTC 기준이므로 timezone 유의

 -도메인 객체를 위한 클래스 설계 

도메인 :  분리가 가능한 단위 

-DAO인터페이스 작성

-XML Mapper작성

참고사이트 http://www.mybatis.org/mybatis-3

-mybatis-spring에서 xmlMapper인식 

-DAO인터페이스 구현

  sqlSessionTemplete : mybatis의 데이터베이스의 연결을 맺고 작업이 완료된 후 작업을 close 하는 클래스

SqlSessionTemlate은 sqlSessionFactory를 생성자로 주입해서 설정한다. 


첨부파일은 <page 138>까지 실행한 프로젝트 

ex_0.zip


트러블슈팅

에러 : Access denied for user 'zerock'@'localhost'

이유 : mysql 외부 접속 권한 없어 root-context.xml의 dataSource bean을 생성하지못함

해결 : 사용자계정에 권한부여  참고 사이트 : http://withcoding.com/36 




'STUDY > SPRING' 카테고리의 다른 글

TRANSACTION  (0) 2018.11.06
MVC  (0) 2018.11.02
[코드로 배우는 스프링 웹프로젝트]  (0) 2018.10.31
Annotation  (0) 2018.10.30
스프링 컨테이너와 빈  (0) 2018.10.30

+ Recent posts