본문 바로가기
개발일지

SpringLegacy Project -1-

by 태운콩즙 2024. 2. 6.
728x90
반응형

스프링 레거시를 이용하여 영화등록 웹을 만들어 보도록 하겠다

 

우선 각각의 기능들을 살펴보겠다

 

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를 자동으로 처리)

 

오늘까지는 기본적인 뼈대를 구성하였다.

 

 

728x90
반응형

'개발일지' 카테고리의 다른 글

시리얼 통신(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