기본세팅
BoardController
@Controller
@RequestMapping("/board/")
@SessionAttributes({"loginMember"})
public class BoardController {
@Autowired
private BoardService service;
}
@Controller
: 요청과 응답을 제어해 컨트롤러임을 알려준다 + Bean 등록
@SessionAttributes({"loginMember"})
1. Model 속성 추가 시 key값 일치하는 값을 Session 영역으로 이동
2. Session에서 key가 일치하는 값을 얻어와 해당 컨트롤러 내에서 사용 가능하게 한다.
-> @ModelAttribute("loginMember")를 작성하여 얻어다 쓸 수 있다.
@ModelAttribute("loginMember")
sessionAttribute를 이용해 등록된 Session데이터를 얻어오는 역할
요청시 전달 받은 파라미터를 객체 형태로 매핑하는 역할을 하는 어노테이션
@Autowired
: Bean으로 등록된 객체 중 같은 타입 또는 상속 관계 객체를 자동으로 DI
BoardService
public interface BoardService {
}
BoardServiceImpl
@Service // Service임을 알려준다 +Bean등록
public class BoardServiceImpl implements BoardService{
@Autowired
private BoardDAO dao;
}
@Service : Service임을 알려준다 +Bean등록
추상 메서드를 구현해야하는 이유
- 상속받은 인터페이스는 오버라이딩을 강제로 하기 때문에 에러가 발생한다
-> 해결법 : 오버라이딩 된 메서드 생성
* 오버라이딩 : 상속받은 메서드를 자식 클래스에서 재정의
DAO
@Repository
public class BoardDAO {
// 마이바티스에 SQL을 수행하는 객체
@Autowired
private SqlSessionTemplate sqlSession;
}
@Repository
: 저장소(파일, DB)와 접근하는 객체(DAO)임을 알려준다 + Bean 등록
mapper,xml 생성
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="boardMapper">
</mapper>
mybatis-config.xml에 파일 지정
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" >
<configuration>
<!-- SqlSessionTemplate 생성 시 적용될 설정 작성 부분 -->
<settings>
<!-- insert 또는 update에 사용되는 값 중 null이 있을 경우에 대한 설정 해당 설정이 없을 경우 -> SQL 구문에
null 포함되어 있다는 오류 발생. 해상 설정이 있을 경우 -> 오류를 발생 시키지 않고 NULL 값을 컬럼에 대입 단, NOT
NULL 제약조건이 없는 컬럼에만 가능함. ** value 설정 시 NULL 은 반드시 대문자로 작성 (소문자 null은 오류가 발생함) -->
<setting name="jdbcTypeForNull" value="NULL" />
</settings>
<!-- VO 클래스 별칭 지정 -->
<!-- 매퍼에서 사용되는 VO를 간단히 부르기 위한 별칭 지정 -->
<typeAliases>
<typeAlias type="edu.kh.fin.member.model.vo.Member" alias="Member"/>
</typeAliases>
<!-- SQL이 작성된 파일 지정 -->
<mappers>
<mapper resource="/mappers/member-mapper.xml"/>
<mapper resource="/mappers/board-mapper.xml"/>
</mappers>
</configuration>
-> <settings> <typeAliases> <mappers> 이 순서를 지키지 않으면 에러난다
jsp 할 때
- 댓글 영역 include 예정
주석으로 미리 주소영역을 만들어 두면 좋다
'Backend > Spring' 카테고리의 다른 글
[Spring] 게시글 글 수정 (0) | 2022.01.19 |
---|---|
[Spring] 게시글 (상세조회) (0) | 2022.01.10 |
[Spring] 게시판 조회(목록 조회) (0) | 2022.01.08 |
[Spring] 회원가입(아이디 유효성 검사) (0) | 2022.01.08 |
[Spring] 로그인, 아이디 저장, 로그아웃 (0) | 2022.01.06 |