스프링 레거시를 이용하여 영화등록 웹을 만들어 보도록 하겠다
우선 각각의 기능들을 살펴보겠다
1) DataSource (DB)
- 드라이버 클래스
- DB까지의 경로(url)
- DB 계정 이름
- DB 계정 비밀번호
2) SqlSessionFactory (MyBatis)
MyBastis를 위한 클래스(인터페이스) scanning
3) Transaction 관련
Java package
1) service - Service 클래스를 작성
2) dao - DAO 인터페이스를 작성
3) dto - DTO 클래스를 작성
4) util - 기타 도구 관련 클래스(paging 처리 등)
Spring Framework의 components
Spring이 관리하는 대상 객체.
IoC로 처리하는 DI의 대상.
component는 어노테이션으로 처리.
1) @Component - 컨트롤러와 서비스를 제외한 대상 객체
2) @Controller - 제어용 객체
@Autowired 어노테이션
컴포넌트 인스턴스를 자동으로 주입 또는 수거하도록 지정하는 어노테이션.
package com.icia.movieinfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import com.icia.movieinfo.service.MovieService;
import lombok.extern.slf4j.Slf4j;
@Controller
@Slf4j
public class HomeController {
@Autowired
private MovieService mServ;
@GetMapping("/")
public String home(Model model) {
log.info("home()");
String view = mServ.getMovieList(model);
return view;
}
}//class end
3) @Service - 기능 처리용 객체
package com.icia.movieinfo.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
import com.icia.movieinfo.dao.MovieDao;
import com.icia.movieinfo.dto.MovieDto;
import lombok.extern.slf4j.Slf4j;
@Service
@Slf4j
public class MovieService {
//DAO
@Autowired
private MovieDao mDao;
//영화 목록을 가져와서 컨트롤러에 넘기는 메소드
public String getMovieList(Model model) {
log.info("getMovieList()");
List<MovieDto> mList = mDao.getMovieList();
model.addAttribute("mList", mList);
return "home";
}
}
Job(잡) - 요청 처리 프로세스
View <-> Controller <-> Service <-> Dao <-> DB
Class와 Interface
메소드 = 선언부 + 정의부 -> 클래스 => 인스턴스 생성 후 사용
메소드 선언부 -> 인터페이스 => 인스턴스 생성이 불가
추상화(Abstract) - 개념을 정의한다.
package com.icia.movieinfo.dao;
import java.util.List;
import com.icia.movieinfo.dto.MovieDto;
public interface MovieDao {
List<MovieDto> getMovieList();
}
//java <-> Mybatis(xml)
DAO를 사용하는 클래스는 Service 클래스.
MyBatis로 처리되는 인스턴스는 스프링 프레임워크에 등록된다.
(즉, 컴포넌트와 같다. -> DI를 자동으로 처리)
오늘까지는 기본적인 뼈대를 구성하였다.
'개발일지' 카테고리의 다른 글
시리얼 통신(Serial Port) (0) | 2024.10.10 |
---|---|
SpringLegacy Project -2- (0) | 2024.02.07 |
SpringLegacy -2- (1) | 2024.02.05 |
SpringLegacy(MVC) (0) | 2024.02.02 |
frontend -3- (1) | 2024.01.11 |