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>있으면제거 |
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 |
댓글