- DI
@Controller
,@Component
,@Repository
,@Service
=> 스프링의 요청 -> 처리
- 전체적인 환경설정에 관여하는 어노테이션
@Configuration
,@Bean
- 요청 ->
DispacterServlet
-> 컨트롤러
- 컨트롤러 -> DAO -> DB에 접속
- 컨트롤러 -> DTO(VO) -> DAO -> DB에 접속
🎨정리
@Controller
: 컨트롤러 역할@Repository
: DAO역할을 하는 클래스에게 부여하는 어노테이션(빈등록)@Component
: 빈으로 등록시켜주는 역할을 한다.(공통으로 모든 클래스에게 부여하면)
- xml 파일을 사용하든지 클래스파일을 사용하는 경우
componenst-scan
을 사용해서 자동적으로 빈을 등록시켜야 한다.
🎁ListController.java
@Component
작성
WriterController.java
,DetailController.java
,UpdateController.java
,DeleteController.java
모두 동일하게 적용- BoardDao를 상속받은 인터페이스인
BoardDaoImp.java
=> 빈즈를 등록시키지 않아도 어노테이션만으로 충분히 기능을 발휘할 수 있다.🎁BoardDaoImp
- BoardDao를 상속받은 인터페이스
- Dao클래스 역할을 하는 클래스이다.
- 방법
@Repository
: DAO(DB에 접속,DB관리)역할을 하는 클래스라는 알려주는 역할(명시적) 빈즈로 등록@Service
: 컨트롤러와 DB사이의 중간역할을 하는 서비스역할을 하는 클래스에 부여@Component
(빈즈로 등록)<bean name="com.board.dao.BoardDaoImpl />
(X)@Component
>@Service
("빈즈구분자") 구분X >@Repository
- 관례로 id값에 클래스 이름의 앞자리를 소문자로 주었다.
- SpringFileBoard의 축소판
- 회원관리(페이징처리+MyBatis의 또다른 접근방법2)
- 스프링의 MVC의 구조의 전체적인 흐름을 이해
- DB생성 member1
- 1) web.xml
- 2) jdbc.properties
- 3) applicationContext.xml
1.
2.
장점
- 1.SqlMapConfig.xml이 필요X
- 2.MemberDaoMapper.xml이 필요X
- 3.MemberDaoImpl클래스가 필요X
- 4.메서드명
- @select("실행시킬 sql구문~ #{매개변수명}~")
- @insert("실행시킬 sql구문~ #{매개변수명}~")
- @update("실행시킬 sql구문~ #{매개변수명}~")
- @delete("실행시킬 sql구문~ #{매개변수명}~")
단점
- 세밀한 설정은 한계가 있다.