본문 바로가기
Develop/Spring

스프링 정리

by jaekk 2018. 6. 21.

 

1. 스프링 프로젝트 시작 방법

 1) Spring Stater Project

 2) Spring Legacy Project


 2. Maven 

 1) 빌드 도구

 2) 라이브러리 보관 -> .m2 폴더

 3) 의존성 관리


 3. 기초 환경

 

 1) STS 서버 내장

 

 2) JDK버전 1.6

<plugins>안에 maven-compiler-plugin</artifacted>있으면제거 

<build>
  <plugins>
     <plugin>
       <artifactId>maven-compiler-plugin</artifactId>
       <configuration>
        <source>${java.version}</source>
        <target>${java.version}</target>
       </configuration>
      </plugin>
  </plugins>
 </build>

 3) pom.xml 

 maven 라이브러리 - 변경시 update필수

 4) web.xml

 톰캣

 5) root-context.xml

 스프링 프레임워크 전체

 6) servlet-context.xml

 웹 서블릿 

 7) 패키지 마지막 경로

 웹 애플리케이션의 중간 경로 


 4. 스프링 소개

 1) EJB 개발의 어려움 -> 2) POJO -> 3) SPRING

 2) DI (@Inject)

     : 의존성 주입

 1) 메서드나 객체의 호출작업을 외부에서 결정

 2) 생성자

 3) set()

 3) AOP : 제어의 역행 

 1) 메서드 감싸기

 

 2) 동적으로 호출하기

 


 5. MyBatis

 1) SQL Mapper 라이브러리

 2) 처리방식

 1) XML

 2) 애노테이션 

 3) 연동

 1) 연동방식

     [Spring] - [MyBatis-Spring] - [MyBatis] - [MySQL]
 2) 필요 작업

     1) pom.xml - jar 추가

     2) spring 설정파일 수정

 4) 설정

 namespace 설정 

 5) DataSource

 1) JDBC 커넥션 처리  

 2) 속성

 1) class: 해당 클래스가 존재해야함(spring-jdbc모듈)

 2) id: 스프링 내 Bean

 1) @RunWith

 테스트 코드 실행시 스프링 로딩

 @ContextConfiguration의 location 속성 경로에 xml 파일을 

  이용해서 스프링 로딩

 2) @ContextConfiguration

 3) @Inject

 스프링이 생성해서 주입

 6) MyBatis

     연결

 1) SqlSessionFactory

 1) Connection 생성, 처리 

 2) 데이터베이스 연결, SQL 실행

 3) SqlSessionFactoryBean 클래스 사용하여 생성

 2) mybatis

 1) SQL Mapping 프레임워크 

 2) mybatis-config.xml 

 3) 스프링 - mybatis-config 연동

  6-2) MyBatis 

    연결 테스트

 1) 필요한 라이브러리 추가

 2) MyBatis, MyBatis-Spring, spring-jdbc, spring-test 모듈 추가

 3) DataSource 객체의 설정과 테스트

 4) MyBatis의 SqlSessionFactoryBean의 설정

 5) MyBatis의 설정 파일인 mybatis-config.xml 파일 설정 

 6) 스프링 + MyBatis + MySQL 최종 연결 테스트 


 6. 모델 2 방식과 스프링 MVC

  1) 스프링MVC -모델 2방식 구조 이용

 2) 모델2방식 장점

 1) 화면 - 데이터 처리 분리
 2) 개발자 / 웹 퍼블리셔 영역 분리

 3) 컨트롤러의 URI를 통해 뷰를 제어
    -> 유지보수 용이

 3) 모델 2방식


 4) Front Controller 패턴 


 5) 스프링 MVC 구조
 


 1) 모든 요청- Front Controller로 전달

 2) 전달된 요청 -> 적절한 컨트롤러 찾아서 호출

 3) 서비스 객체 호출, DAO 이용하여 데이터 요청

 4) DAO 객체는 MyBatis를 이용하는 

    Mapper를 통해 작업 수행

 5) 컨트롤러 <- 서비스 데이터 전달

 6), 7) 스프링MVC <- 컨트롤러

 6) 스프링 MVC가 처리해주는 작업

 1) URL 분석-> 적절한 컨트롤러 찾기

 2) 컨트롤러에 필요한 메서드 호출

 3) 컨트롤러 결과 데이터 -> 뷰로 전달

 4) 적절한 뷰 찾기

 7) 개발자가 직접 해야하는 작업

 1) 특정 URL에 동작하는 컨트롤러 설계 

 2) 서비스 객체 생성

 3) DAO 객체 생성
 4) 컨트롤러 내에 원하는 결과 메서드로 설계

 5) 뷰에서 전달받은 데이터 출력

 8) servlet-context.xml

 1) annotation-driven - 애너테이션을 이용, 컨트롤러 작성 

 2) /WEB-INF/views - 브라우저 직접 접근 불가->모델2방식

 3) <component-scan> 내부 클래스 조사

 9) 애너테이션 종류

 1) @Controller - 컨트롤러 객체

 2) @RequestMapping - URL 매칭 
 3) @RequestParam - 요청 파라미터값 (필수값) - 필수 예외 가능

 4) @RequestHeader - HTTP 헤더 정보 추출

 5) @PathVariable - URL에서 원하는 정보 추출

 6) @CookieValue - 쿠키 값 추출

 7) @ModelAttribute - 자동으로 해당 객체 -> 뷰까지 전달

 8) @SessionAttribute - 세션상에서 모델 정보 유지

 9) @InitBinder - 파라미터 수집해서 객체로 만들 경우 사용

 10) @ResponseBody - 리턴 타입 HTTP 응답 메시지로 전송
 11) @RequestBody - 요청 문자열 그대로 파라미터로 전달
 12) @Repository - DAO 객체
 13) @Service - 서비스 객체

 10) 컨트롤러 

  

    1) void

 현재경로.jsp 호출 

    2) String

 문자열.jsp 호출 

    3) @ModelAttribute("msg")

 요청시 'msg'이름의 파라미터 문자열 처리 -> 뷰에 전달 

        EL태그 이용, 출력

 ${msg} 

    4) 만들어진 결과

 1) Model 클래스 - 기본 제공 클래스, 뷰에 데이터 전달 

 2) 객체이름.addAttribute("이름","객체") - 이름 지정

     객체이름.addAttribute("객체") - 앞글자 소문자로 이름 사용

    5) 리다이렉트

 1) RedirectAttributes rttr

 2) rttr.addFlashAttribute("msg","This is "); : 문자열 정보 전달

 3) return "redirect:/doF"; 

 4) URL에 보이지 않게 데이터 전달

    6) JSON 데이터 

 1) jackson-databind 라이브러리 추가

 2) 적절한 객체 반환, @ResponseBody 추가

 3) 응답 타입 - application/json

 11) WAS없이 컨드롤러 테스트 가능

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  


 

 

 1. void

 현재 경로.jsp 호출 

 2. String

 

 

 

 

 

 

 


'Develop > Spring' 카테고리의 다른 글

[1.개발환경의 설정]2. 스프링 MVC 프로젝트 템플릿의 구조  (0) 2018.08.10
[1.개발환경의 설정]1.spring project 생성  (0) 2018.08.10
스프링  (0) 2018.07.24
스프링 정리2  (0) 2018.06.24
실습  (0) 2018.06.23

댓글