- servlet API 2에선 web.xml을 작성해야했는데,
servlet API 3부터는 web.xml이 내장됐고, 간단한건 어노테이션으로 대신하게 됐다.
- web.xml의 역할은 웹프로젝트가 정상 구동되기 위한 설정을 해주는 것이다.
- 서블릿 엔진이 필요한 객체와 메서드를 web.xml을 보고 자동으로 만들고, 호출 해주는 것임.
웹프로젝트 순서
- 톰캣 설치 (엔진이 내장돼있음)
- 웹프로젝트용 라이브러리사용(서블릿용 라이브러리,
servlet-api.jar
, jsp-api.jar
)
- 서블릿소스 작성, 컴파일
- 배포
스프링
- 서버가 따로 필요없고, 라이브러리만 설치해주면 됨
- 라이브러리를 이용해서 스프링 엔진 구동
- 6버전은 아직 위험함
- 스프링 부트의 버전과 매칭이 잘 돼야하는데 스프링부트 최신버전의 내부에 내장돼있는 스프링버전이 5까지만 쓰이기 때문
- 5.2.22 사용 (뒤에 RELEASE 붙어있는게 안전함)
- 스프링도 web.xml처럼 보고 환경을 만드는 .xml이 필요하다. (어떻게 동작할지 엔진이 .xml을 보고 판단)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
">
</beans>
- 스프링은 웹만을 위한 프레임워크는 아니다.
- 스프링의 xml로 지정한 myApplicationContext.xml에 bean을 정의하고, id값을 설정해서 스프링 컨테이너에서 출력
- 컴포넌트 = 재사용성이 큰 덩어리
-> 자바에서 사용 : 자바컴포너트(자바빈) / 조건 4가지 있음
- 싱글톤 패턴으로 관리
인터페이스
- 인터페이스를 만드는사람, 구현하는사람, 사용하는 사람이 있음
- 결합도를 떨어트리는게 객체지향의 가장 큰 목적 -> 중간 매개체가 필요 -> 인터페이스를 끼워넣음
- 사용자는 인터페이스를 사용하고, 구현체는 노출되지 않음
- 또한 인터페이스를 미리만들어놓으면 구현체를 개발하는사람 속도를 같이 개발할 수 있음
- 버전도 여러개로 구현할 수 있다.
- xml설정파일이 전체적인 설정을 보려면 훨씬 편함.