[spring 07] 회원가입
스프링 회원가입
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 주입받는 방법
- vers.1 : set메서드로 주입받는방식
∙ DAO > sqlSession 변수, sqlSession set 메서드
∙ xml
<bean id="memberDAO" class="spring.member.dao.MemberDAOImpl"> <property name="sqlSession" ref="sqlSession" /> </bean>
- 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 <-- <-- <--