1. 새 글 작성하기 기능 작성
1) post-mapper.xml 에 코드 추가
* 마이바티스에서 insert 태그는 몇개의 행이 삽입됐는지 리턴되기 때문에 resultTpye 속성을 입력하지 않는다.(무조건 int 타입을 리턴하는 메서드를 사용)
2) DAO 수정
3) 단위 테스트
* 단위 테스트가 성공적으로 수행되면 콘솔에서 ds(DataSource)로부터 Connection을 가져왔다는 메시지 다음에 메서드 실행 결과가 출력된다.
2. 포스트 업데이트/삭제하기 기능 작성
1) post-mapper.xml 에 코드 추가
2) DAO 수정
3) 단위 테스트
* 단위 테스트가 성공적으로 수행되면 콘솔에서 ds로부터 Connection을 가져왔다는 메시지 다음에 메서드 실행 결과가 출력된다.
3. Service 작성
1) src/main/java/ 하위에 패키지 생성 --> 클래스 생성
2) 클래스 선언위에 @Service 애너테이션 추가
3) application-context.xml 파일에 코드 추가
4) 클래스에 생성자, read() 메서드 작성
* final 필드와 생성자를 사용한 의존성 주입 : 객체를 생성할 때 반드시 아규먼트로 사용할 객체가 생성되어있는지 확인하기 때문에 안전한 방법.
5) 단위 테스트
6) 서비스에 메서드 추가
4. Controller 작성
1) src/main/java 하위에 패키지 새로 생성 --> 클래스 생성
2) 클래스 작성
5. View 작성
1) /WEB-INF/ 하위에 views 폴더 생성 --> jsp 파일 생성
2) views 폴더 하위에 fragments 폴더 생성
3) header.jspf 파일 생성
6. PostController 작성
7. 전체 글 목록 페이지 작성
1) PostController.java 파일에 코드 추가
2) list.jsp 파일 작성
8. 새 글 작성 페이지 작성
1) PostController.java 파일에 코드 추가
* 디스패쳐 서블릿에서 create() 메서드를 호출할 때, PostCreateDto 클래스의 기본생성자를 호출하고 요청 파라미터 이름들을 이용해서 클래스의 setter 메서드들을 호출해서 생성된 객체를 아규먼트로 전달한다(아규먼트는 model 객체의 속성으로 추가된다)
2) create.jsp 파일 작성
9. DTO(Data Transfer Object)
1) src/main/java 하위에 패키지 생성 --> 클래스 생성
2) DTO 활용 예시 - PostService.java 클래스의 create 메서드
* 컨트롤러에서 서비스를 호출할 때는 DTO 객체 이용, 서비스에서 리파지토리를 호출할 때는 도메인 객체를 이용
* form 양식이 사용되는 부분이 있으면 DTO를 사용하면 좋다(DTO를 만드는게 유지보수를 위해 좀 더 좋을 수 있음)
※ 맵퍼에서 상수 선언해서 사용하는 방법 : mybatis.xml 참조
※ 의존성 주입 장점 : 자바 코드의 변경이 적어진다. 유지보수가 쉬워짐.
--------------
패키지와 하위에 있는 패키지들을 검색해서 애너테이션이 붙어있는 클래스들의 객체들을 생성하고 빈으로 관리해줌(스프링 컨테이너가)
톰캣은 web container라고도 할 수 있다.(웹과 관련된 객체들을 갖고 있는 컨테이너)
톰캣 - {리스너, 필터, 서블릿}
* 리스너 안에 스프링 컨테이너가 포함된다..
스프링컨테이너 - {히카리config, 히카리ds, sqlSessionFactoryBean, Dao, Service, controller}
---------------------------
1. pom.xml
- maven 설정 파일
* maven : 자바용 프로젝트 관리 도구
- 메이븐 모델, 플러그인 버전 설정
- 의존성(dependency)들을 추가/삭제/관리 등
* 의존성 : 코드에서 두 모듈간의 연결(객체, 메서드, 파라미터 등을 활용)
2. web.xml
- WAS 설정 파일
- context parameter(WAS의 환경 설정 변수), Listener, Filter, Servlet 설정 등
3. servlet-context.xml
- servlet 설정 파일
- mvc 설정, View-Resolver, 컨트롤러 컴포넌트 위치 등
4. application-context.xml
- WAS에서 사용할 애플리케이션 설정(객체, 패키지 등?)
- (예시) 스프링 프레임워크에서 생성하고 관리할 자바 객체들
* Hikari CP 관련 객체, SqlSessionFactoryBean 객체 등
5. mybatis-config.xml
- mybatis 설정 파일
- mapUnderscoreToCamelCase 설정, typeAlias 등
6. ooo-mapper.xml
- 마이바티스에서 실행할 SQL 문장들을 선언
* SQL을 사용하는 메서드(id)와 메서드의 리턴타입(resultType)을 태그 속성으로 지정
'Spring' 카테고리의 다른 글
250108 Spring 06 - REST, @PathVariable, Talend API Tester, ResponseEntity (0) | 2025.01.08 |
---|---|
250107 Spring 05 - 2개 이상의 요청을 처리하는 컨트롤러, 동적 SQL 처리 (0) | 2025.01.07 |
250103 Spring 03 - MyBatis 초기 세팅, 의존성 주입, Mapper (2) | 2025.01.03 |
250102 Spring 02 - @RequestParam, Lombok의 annotation들, forward/redirect 이동, REST (0) | 2025.01.02 |
241231 Spring 01 - 스프링 입문, 초기 세팅 (0) | 2024.12.31 |