basic/spring

[spring 07] 회원가입

못지(Motji) 2021. 8. 8. 15:30

스프링 회원가입

1) 프로젝트 생성

다이나믹 웹 프로젝트 만들기 ▹ 메이븐으로 업데이트 ▹ pom 작성 ▹ web.xml 작성

 

✔ [src]

  • spring.member.controller : 컨트롤러 클래스
    ▸memberController
  • spring.member.dao : DAO
  • spring.member.dto : DTO
  • spring.member.service : 비지니스로직처리 클래스들
  • sql : mapper
    ▸memberSQL.xml

✔ [WebContent]

  • resources
  • css
    ▸ style.css
  • imgs
    ▸ 필요한 이미지파일들

✔ [WEB-INF]

  • log 
    ▸log4j.xml : 설정파일(회원가입용)
  • spring 
    ▸member-context : 설정파일 (회원가입용)
    ▹component-scan, mvc:annotation-driven
  • viewResolver
    ▸spring-context : 설정파일 (공통)
    ▹dataSource(spied), sqlSessionFactory,
    ▹sqlSession
  • mybatis
    ▸mybatis-config.xml : mybatis설정파일
    ▹settings,typeAliases, mappers
  • views
    ▸member
    ▸signupForm.jsp

2. DB 테이블 생성 (회원가입 폼)

create table springMember(
        id varchar2(50) PRIMARY KEY,
        pw varchar2(50) NOT NULL,
        name varchar2(20),
        age NUMBER DEFAULT 0,
        email varchar2(100),
        reg DATE DEFAULT sysdate
);

 

3. MemberController

• member-context.xml ▸ <context:component-scan> 패키지 세팅
• log4j.xml ▸ <logger> spring.member.controller 추가

4. dto

• DB 컬럼 구성과 동일하게
• mybatis-config.xml > typeAlias 추가

5. dao

☑ spring.member.dao
- dao 인터페이스 : MemberDAO
- dao 구현클래스 : MemberDAOImpl @Repository

☑ DAO 인터페이스
CRUD
☑ DAO 구현클래스
인터페이스 implements 해서 추상메서드들 구현해놓기

✔ 설정 #1. spring-context.xml > <bean> 으로 등록
☑ DAO sqlSession 주입받는 방법

  1. vers.1 : set메서드로 주입받는방식
    ∙ DAO > sqlSession 변수, sqlSession set 메서드
    ∙ xml
    <bean id="memberDAO" class="spring.member.dao.MemberDAOImpl">
    	<property name="sqlSession" ref="sqlSession" />
    </bean>​
  2. vers.2 : @Autowired
    ∙ DAO > @Autowired + sqlSession 변수
    ∙ xml
    <bean id="memberDAO" class="spring.member.dao.MemberDAOImpl" />​
     

✔ 설정 #2. <context:component-scan> + @Repository -> 자동 빈등록
∙ DAO > @Repository class MemberDAOImpl 
∙ xml > <context:component-scan base...."spring.member.dao" />

💡 context:component-scan
@Component
@Controller : 컨트롤러 작업 클래스
@Repository : DB 관련 작업 클래스
@Service    : 비지니스로직 처리 클래스

6. service

• Service 인터페이스 : MemberService
• Service 구현클래스 : MemberServiceImpl
☑ 설정 : ServiceImpl

                                                                                                                Service (i)     DAO (i)
요청 --> Controller 해당 메서드 --> ServiceImpl --> DAOImpl --> memberSQL.xml --> DB
응답 <--             view               <--              <--             <--