: src/main/Java 폴더 내 패키지
: +개발자가 만든 예외 클래스나 기타 유틸 클래스 파일 등
: src/main/webapp 폴더 내 패키지
: 웹과 관련된 JSP, 리소스, 스프링 MVC 환경 설정 파일, 웹 프로젝트 환경 설정 파일
: 스프링 웹 프로젝트가 실행되면 가장 먼저 읽어 들임
: 웹 프로젝트의 배포 설명자.배치 기술서(deployment descriptor)
: 웹 프로젝트가 배포되는 데 이용되는 XML 형식의 자바 웹 애플리케이션 환경 설정 부분을 담당
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
--> 기본 XML 스키마 네임 스페이스 명시, 속성 값은 모든 스키마 갖고 있음
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
--> 인스턴스 네임 스페이스 URI 지정. 속성 값 대부분 XML 스키마 표준인 W3C XML 스키마 나타냄
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
--> 참고하고자 하는 인스턴스 문서의 URL 지정. 속성 값 두 개는 공백으로 구분
(사용할 네임 스페이스(보통 기본 네임 스페이스와 동일) 참조할 스키마 파일 이름)
<!--기본 설정 파일 외 사용자가 직접 제어하는 XML 파일 목록 지정-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/**root-context.xml**</param-value>
--> 모든 서블릿과 필터에서 사용되는 루트 스프링 컨테이너(애플리케이션 컨텍스트, ioc 컨테이너) 설정
</context-param>
<!-- 루트 컨텍스트에 설정된 정보들을 모든 서블릿과 필터에 공유 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Processes application requests -->
<servlet>
<servlet-name>appServlet</servlet-name> --> 서블릿 이름
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
--> DispatcherServlet 클래스 설정
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param> --> <context-param> 요소 역할과 동일
<load-on-startup>1</load-on-startup> --> 로딩 순서 설정(서블릿 다수)
</servlet>
<servlet-mapping>
--> 웹 브라우저에서 요청되는 URL에 대한 디스패처 서블릿이 서블릿에 매핑하는 역할
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern> --> 서블릿 매핑을 위한 URL 패턴 설정
</servlet-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!-- servlet-context.xml : 스프링 웹(view) 설정 파일
뷰(JSP 웹 페이지)와 관련 있는 빈 객체를 설정함. 즉, 컨트롤러, MultipartResolver, Interceptor, URI와 관련 설정을 담는 클래스를 설정함
-->
<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
<!-- Enables the Spring MVC @Controller programming model
@Controller, @RequestMapping 같은 애너테이션을 사용 시 필요한 빈 객체들을 자동으로 등록함
핸들러 어댑터의 빈 객체도 대신 등록함
-->
<annotation-driven /> => 컨트롤러 매핑 설정
<!-- 정적 리소스 설정 -->
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<!-- static folder설정(정적 폴더 설정)=>css, images, upload, js
서버에서 앞서 처리될 필요가 없는 정적 리소스 파일을 처리하는 역할 수행
웹 애플리케이션의 물리적 경로 이름을 설정하고 이 경로에 정적 리소스 파일들을 저장하면
소스 코드나 웹 브라우저의 주소창에서 해당 리소스의 경로를 사용하여 직접 접속할 수 있음
정적 리소스란 클라이언트에서 요청이 들어왔을 때 요청 리소스가 아미 만들어져 있어 그대로 응답하는 것
mapping : 웹 요청 경로 패턴을 설정. 컨텍스트 경로를 제외한 나머지 부분의 경로와 매핑
location : 웹 애플리케이션 내에서 실제 요청 경로의 패턴에 해당하는 자원 위치를 설정. 위치가 여러 곳이면 각 위치를 쉼표로 구분
-->
<resources mapping="/resources/**" location="/resources/" />
<!-- 뷰 매핑 설정 -->
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<!-- kr.or.ddit 패키지를 컴포넌트 스캔 대상으로 함
자바 클래스를 생성할 때 빈 객체를 자동으로 등록
component-scan : 스프링 MVC에서 사용할 빈 객체를 일일이 XML에 등록하지 않아도 필요한 애너테이션을 자동으로 인식할 수 있게 함
component-scan 요소를 사용하지 않으면 골뱅이Controller가 선언된 컨트롤러를 빈 객체로 등록해야 함. 또한, 의존관계가 있는 자바 클래스가 있다면
<bean> 요소를 이용하여 빈 객체를 일일이 등록해야 함
beans:bean class="...Controller"...
component-scan 요소가 자동으로 인식하는 애너테이션
@Component : 특별히 역할 구분 없이 컴포넌트라고 알려 주는 역할
@Repository(DB 작업 관련), Service(서비스 관련), controller(MVC 컨트롤러 컴포넌트).
: 어떤 종류의 컴포넌트인지 알려 주는 역할을 함
@Required : 필수 프로퍼티임을 명시
@Autowired : 의존 관계를 자동 설정 시 사용. 타입을 이용하여 의존하는 객체를 삽입
@Inject : 특정 프레임워크에 종속되지 않는 애플리케이션을 구성하는 데 사용함
-->
<context:component-scan base-package="kr.or.ddit" /> --> 자바 클래스의 빈 객체 설정
</beans:beans>
맞춰서 설정(폴더,파일 생성)
value="classpath:/sqlmap/**/*_SQL.xml" /> <property name="configLocation" value="/WEB-INF/mybatisAlias/mybatisAlias.xml" /> </bean>
jre : java runtime environment(실행 환경)
jdk : java development kit(개발 도구)
/
Package
User Function
Stored Procedure
Trigger
Anonymous Block
/
자동 선언 변수형 정수
--10분 전의 데이터 확인
SELECT * FROM BOOK
AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '10' MINUTE);