주니어 개발자가 되는 중입니다...loading....

8. Spring 서블릿처럼 사용해보기 (1) : 간략한 구조 본문

Spring 스프링

8. Spring 서블릿처럼 사용해보기 (1) : 간략한 구조

휼양 2023. 1. 4. 20:01

1. pakage 만들고 해당하는 interface,class만들기

com.yr.spring.member.Controller - memberController

com.yr.spring.member.model.vo 

com.yr.spring.member.model.service - memberService(인터페이스) - memberServiceImpl (클래스)

com.yr.spring.member.model.dao - memberDao(인터페이스) - memberDaoImpl(클래스)

 

+) interface와 거기에 상속받는 class를 만드는 이유? 각 각의 클래스들이 서로 영향을 받지 않기 위해서!! 클래스들의 독립성을 강화시킴!!

 

2. 어떤 용도로 쓰이는지 따라서 어노테이션을 삽입한다. 인터스페이스를 상속받은 class에게 삽입하면 된다(memberServiceImpl, memberDaoImpl)

contoller 용도 - @controller

dao용도 - @Repository

service 용도 - @Service

 

3. 인터페이스를 상속받은 클래스들을 인터페이스의 추상메소드를 구현시키고 다시 리턴 리턴해서 결국 컨트롤러에 가는 구조...

중간에 인터페이스들이 생겨서 복잡해 진거 같지만 전에 쓰였던 MVP구조와 비슷함

 

[흘러가는 구조] controller->serviceImpl->daoImpl->daoImpl에서 다시 리턴->serviceImpl->contoller

 

-contoller

@Controller
public class MemberController {

	@Autowired
	private MemberService service;
	
	//서비스에 있는 기능 호출하기
	@RequestMapping("/test/")
	public void test() {
		System.out.println("controller - test() 실행");
		service.test();
	}
}

 

- serviceImpl

@Service
public class MemberserviceImpl implements MemberService{
	
	@Autowired
	private MemberDao dao;
	
	@Override
	public void test() {
		System.out.println("service-test() 실행");
		dao.test();
	}
}

 

-daoImpl

@Repository
public class MemberDaoImpl implements MemberDao{

	@Override
	public void test() {
		System.out.println("dao-test() 실행");
	}
	
}
Comments