Spring_05_Spring Boot
[회원가입, 아이디중복확인, 회원조회 실습]
[환경설정]
- Spring Tools 4 from Eclipse: 4.19.1 (windowsx86_64)
- Boot Dashboard: Tomcat 내장
- Create New Spring Starter Project: Name, Type, Group, Package 변경
- Dependencies: [pom.xml]에 자동으로 작성됨
-Spring Boot에서 자동으로 버전관리를 해주기 때문에 버전에 대한 태그는 없음
[SpringBoot 구조]
*Spring Boot에서는 view의 역할로 jsp 대신 Thymeleaf를 사용함
[SpringBoot1Application]
- 현재 클래스의 위치를 기준으로 하위 클래스 설정내용을 읽어 Spring Boot의 설정을 자동화하고, Bean(객체)를 읽고 생성하는 작업을 자동화하는 역할
(Spring views 구조)
(jsp 파일 만들기 위해 spring 구조대로 폴더 생성)
- jsp 파일 생성하기 위해 플러그인 설치
-Help-Eclipse Marketplace
-Eclipse Enterprise Java and Web Developer Tools 3.30 설치
- Encoding: Window-Preference-encoding 검색-모든 목록 UTF-8로 변경
[entity]
- lombok 프로젝트에 적용: lombok 적용해야 entity에서 생성자 생성됨
-lombok 다운로드 : https://projectlombok.org/
- sts-4.19.1.RELEASE 폴더에 SpringToolSuite4와 같은 위치에 넣기
-lombok Specify location: SpringToolSuite4 추가
[Controller]View를 반환할 Controller
- SpringBoot1Application보다 하위에 있어야 하므로 myapp 뒤에 controller 추가
- 첫 화면 메인페이지 설정: 요청값 “/”이면 MemberMain 리턴
- 회원가입 페이지 이동: 요청값 “/MemberJoinPage.do”이면 MemberJoin 리턴
- 메인페이지 이동: “/MemberMainPage.do”이면 MemberMain 리턴
- Spring 실행 순서
-요청: Controller-Servise-Mapper Interface-Mapper.xml
-결과: Mapper.xml-Mapper Interface-Service-Controller
[회원가입 실습]
[Controller]
- 회원정보 삽입
-Autowired로 MemberService 선언: Service로 MemberJoin 메소드 보내기
-redirect 방식으로 MemberMain페이지로 이동하기
[service]
- Controller: 요청을 받고 응답하는 작업에 집중
- Service: DB에서 가져온 데이터를 가공하는 작업에 집중(비즈니스 로직)
- Autowired로 MemberMapper 호출하기
- MemberJoin 메소드 생성
-[Controller]에서 결과를 받을 수 있도록 Controller의 메소드와 동일한 이름
-[MemberMapper] MemberJoin 메소드 불러오기, Member(entity) 매개변수
[Mapper.Interface]
- MemberJoin 추상메소드 만들기: xml에서 보낸 Member entity 받아오기
[Mapper.xml]
- Spring Boot에서는 Interface와 xml 파일의 위치가 다름
-경로(com.smhrd.myapp.mapper)와 파일이름(MemberMapper) 똑같이 하기
(폴더 생성)
Mapper.Interface와 같은 경로의 폴더 생성
(xml 파일 생성)
Mapper.Interface와 같은 이름의 파일 생성
- namespace: MemberMapper의 경로 작성
- id: MemberJoin 메소드 이름
- parameterType: Member entity 경로
[프로젝트 구동설정]
[application.properties]
- Spring Boot가 어플리케이션(프로젝트)을 구동할 때 자동으로 로딩되는 파일
- Key=Value 형태로 작성하면 어플리케이션에서 참조하여 사용
[내장된 Tomcat 사용방법]
1)Port 번호 설정
2)ContextRoot 설정
3)ViewResolver 설정
4)DB 연결설정
[pom.xml]
- jsp 실행하기 위해 <dependency> 추가
- Spring과 JDBC 연결 API 추가
[DB 연결]
- C 드라이브-mysql stratup 실행
- eclipse.edu 실행하여 scrapbook 열어서 table 생성
[MemberMain]
- 회원가입 페이지로 이동하도록 MemberJoinPage.do 요청하기
[MemberJoin]
- 아이디, 비밀번호, 이름을 입력받을 있는 form 태그 만들기
- MemberJoin 메소드(회원정보 삽입)로 전송할 수 있도록 action 값은 MemberJoin.do
(출력화면)
[아이디 중복확인 실습]
[MemberJoin]
- 아이디 중복확인 버튼 추가: 버튼 클릭 시 아이디 중복확인 함수 실행
- 아이디 중복확인 결과를 출력할 공간 생성
- 아이디 중복확인 함수: jquery 사용
1)사용자 입력한 id값 가져오기: name이 id인 첫 번째 input태그의 val값
2)Ajax로 id 중복확인하기
-IdCheck 메소드로 id값을 get방식으로 전송하고 text 형식으로 응답받기
-통신 성공 시 출력공간에 초기화 후 결과값(res) 추가하기
[MemberRestController]비동기 통신으로 데이터를 응답할 Controller
- Autowired로 MemberService 호출
- Ajax에서 지정한 전송주소로 GetMapping, Ajax에서 보낸 데이터(id) 매개변수로 받기
- MemberService의 IdCheck메소드에 id 보내기
- MemberService에서 보낸 중복확인 결과값 MemberJoin으로 리턴
[MemberService]
- MemberController에서 보낸 id값 받아오기
-select의 결과값이 String이므로 Mapper의 결과값은 String, 메소드의 타입도 String
- MemberMapper의 IdCheck 메소드로 id값 보내기
- MemberMapper에서 반환한 결과값에 따라 아이디 중복여부 Controller로 리턴하기
[MemberMapper]
- IdCheck 추상메소드 만들기: 매개변수 id를 xml로 보내기, 메소드타입 String(조회결과)
[MemberMapper.xml]
- 사용자가 입력한 id값과 일치하는 name 조회하기
-매개변수 id가 String이므로 parameterType은 String으로 작성
(console 결과)
(결과화면)
[전체 회원 조회실습]
(1)페이지 이동 통신 방식
[MemberMain]
- 버튼 클릭 시 MemberListPage.do 요청하여 회원리스트 출력 메소드 실행하기
[MemberController]
- memberService의 MemberList에서 회원조회 결과값 가져오기
- model에 회원조회 결과값 객체바인딩하기
- 회원조회 결과값 MemberList 페이지로 리턴하기
[MemberService]
- memberMapper의 MemberList에서 회원조회 결과값 가져오기: ArrayList 타입
- 회원조회 결과값 리턴하기
[MemberMapper.Interface]
- MemberList에서 추상메소드 만들기: ArrayList 타입으로 xml 결과값 가져오기
[MemberMapper.xml]
- id는 동일한 메소드 이름 작성
- 테이블에서 전체 조회하기
- 결과값 타입: Member entity
[MemberList.jsp]
- JSTL 방식으로 request 영역에서 회원 정보 출력하기
(2)비동기 통신 방식
[MemberMain]
- 버튼 클릭 시 Ajax로 회원정보 조회하는 MemberList 함수 실행
- 회원조회값을 출력할 공간 만들기
- 회원 조회 함수
1)Ajax로 MemberList.do로 데이터 전송하여 회원조회 메소드 실행
2)성공 시 res값 console창으로 확인하기
3)실패시 오류 메시지 출력하기
[MemberRestController]
- MemberMain 요청값 GetMapping으로 받기
- 페이지 이동방식에서 만들어놓은 Service의 MemberList 결과값 리턴하기
[MemberMain]
- Ajax 통신 성공 시 실행할 함수
1)변수에 반복되지 않을 데이터 제목 저장하기
2)반복문을 사용하여 응답값의 아이디, 비밀번호, 이름 변수에 저장하기
-응답값의 길이만큼 설정하기: 응답값이 객체 형태이므로 Object.keys(res).length 사용
3)저장한 테이블 출력할 공간에 저장하기: 닫는 테이블 태그 추가하기
'Spring' 카테고리의 다른 글
[Spring]7. 게시판 실습 (0) | 2023.09.21 |
---|---|
[Spring]6. Spring Boot&React 연동 (0) | 2023.09.20 |
[Spring]4. Ajax 비동기 통신 (0) | 2023.09.14 |
[Spring]3. Spring Legacy 템플릿 (0) | 2023.09.11 |
[Spring]2. 게시판 조회 및 삭제 실습 (0) | 2023.09.09 |