Spring

[Spring]5. Spring Boot

CodeJaram 2023. 9. 15. 11:36

Spring_05_Spring Boot

[회원가입, 아이디중복확인, 회원조회 실습]

 

[환경설정]

  • Spring Tools 4 from Eclipse: 4.19.1 (windowsx86_64)

https://spring.io/tools

 

  • 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