20.07.29 SpMVC_Hello,SpMVC_Hello2,SpMVC_Hello3
톰캣에 의해서 프로젝트가 스타트된거임
맨아래는 윈도우(운영체제) 그 위에 JVM 그위에 톰캣 그 위에 헬로(Server)
윈도우 아래는 컴퓨터가 있겠죵
>> 이러한걸 웹어플리케이션 서버 wab app service server
줄여소 WAS : Web Application Service(Server)
local:8080/hello : URL
헬로우만 톰캣이 추출을 해서 톰캣이 알아보는url
context가 hello가 있는가 찾아본다 hello/ 이렇게 짤라버리는데 /는 root path
/ 요청
웹브라우저가 나한테 요청하는게 무슨일인지 분석을해서
그것을 응답하는 코드들을 앞으로 우리가 해야할 일
요청하고 응답하는 일들을 스프링 프레임워크가 다해준다
/가 톰캣이 알아먹는 주소
톰캣이 계속 감시하고잇다가
저장하면 변경된 사항을 바꿔줌
이 세개가 사용자가 요청하고 응답해주는 코드를 전부 저장해놓고 있다
사용자에 요청에 따라 달라지는 걸 보고 다이나믹
마지막에 사용자가 볼 페이지를 뷰
web-inf 에는 직접접근할 권한이 x
자바클래스에있는 메서드를 통해서만 web-inf아래에잇는 파일들을 접근할 수 있는 거임
저 폴더안에는 중요한 설정들이 들어있음
xml파일 읽어들여서 어떻게 서버가 시작되는지 알려줄수 있는
root-context는 비어있는 파일인데 이게 없으면 실행이 안됌
param은 parameter
값은 없지만 모양은 갖춰야된다.
servlet : 똑같이 컨트롤러라고 보면됌
dispatcherServlet 문지기 역할 컨트롤러 리스트를 컨테인에 담아놓을 친구가 있을텐데
어디로 갈지 지시를 해주는 친구임
우리가 주로 할건 servlet-context.xml작성을 할거다
서블릿 네임이라느 알리아스를 설정해놓은거임
수신할 때 슬래시부터 수신하겠다
@RequestMapping(value = "/korea", method = RequestMethod.GET)
public String home2(Model model) {
model.addAttribute("serverTime", "Republic of Korea");
// view에 있는 home.jsp에다가 버물려서 보내라는 이야기
// MVC정석
return "home";
}
디스패처 서블릿이라는친구가 모델클래스의 모델 매개변수를 호출해서 사용한다음에
return 해서 home이라는 문자열을 디스패처가 받으면 디스패처가 home.jsp를 읽어와서 응답까지 하는 것
디스패처가 가장바쁘다~~!
스프링에서 bean은 객체
InternalResourceViewResolver
모델에 담은 어트리뷰트랑
파일을읽어들이는것을 잘읽어서
버물리라
<context:component-scan base-package="com.biz.hello" />
어노테이션이 붙어있으면 컴포넌트(모듈,객체)로 바꿔라
객체를 만들어서 준비하라!!!
hello로 시작되는 모든패키지를 다 스캔해서
클래스위에 어노테이션이 붙어있는 친구가있으면 전부다 bean컴포넌트로 바꿔라 이거임
저거 동그라미 친 두개만있으면 더이상 수정할 게 없다 기본사항은
클래스 위에다가 어노테이션만 쫙 붙이면 된당
이러한 원리로 스프링프레임워크가 작동되더라
<resources mapping="/resources/**" location="/resources/" />
resource는 이미지나 그림파일을 담아놓으면 외부에서 접근이 된다.
서블릿.xml은 거즘 건들지 않고 사용해야한다~~
// Spring FrameWork에서 권장하는 생성자
public HelloRestController(HelloService hService, ScoreService sService) {
this.hService = hService;
this.sService = sService; // 스프링에서는 이러한 생성자를 사용해준다.
}
@service
는 내부에서 자동으로 객체가 한개가 만들어져서 컨테이너에 보관되어있음
defendency
DI
스프링에서는 new로 해주지않고
톰캣이 그 일을 대신해준다.
DI -> IOC
스프링에서는 필드변수를 초기화시키는 생성자를 만들어야한다
Autowired
클래스인가 인터페이스인가를 찾는다
인터페이스가 impl이 되어있으면 가져다가 주입해준다.
@Autowired
private HelloService hService;
@Autowired
private ScoreService sService;
// 필드변수에 설정해주고
// 오토와이드해주면 스프링이 잘 만들어서 쓸 수 있게 해줌
MVC model2 Dao
Spring MVC
web > controller > service 연결
model : VO에 담고
< 다시 보냄controller에
view를 가지고와서 controller에 같이 버무림(Rendering)
< HTML,request
>> 수업시간에 작성 한 것들