Java/Spring MVC

20.07.29 SpMVC_Hello,SpMVC_Hello2,SpMVC_Hello3

우롱차 2020. 7. 29. 11:50
728x90

톰캣에 의해서 프로젝트가 스타트된거임

맨아래는 윈도우(운영체제) 그 위에 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 

 

>> 수업시간에 작성 한 것들


728x90