<dependency></dependency> 태그는 하나의 라이브러리를 의미하며 알아둬야 할 중요한 태그입니다.
이태그를 이용해서 라이브러리를 추가하거나 삭제할 수 있습니다.
번거롭게 원하는 라이브러리를 직접 다운받아 폴더에 넣지 않아도 태그 하나로 라이브러리를 추가할 수 있습니다.
web.xml은 tomcat(WAS)이 최초 구동될 때, WEB-INF 디렉토리에 존재하는 web.xml을 읽고, 그에 해당하는 웹 어플리케이션 설정을 구성합니다.
서버가 구동되면 제일 먼저 인식하는 파일입니다.
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
출처: https://to-dy.tistory.com/14 [todyDev]
스프링 context 설정 파일 목록을 불러오기 위한 곳입니다.
<param-value>에서 context 경로를 설정할 수 있습니다.
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
요청 URL 패턴을 설정합니다.
서블릿에서 어떠한 요청을 할 때, 이 패턴을 통해서만 요청이 전달됩니다.
html 등의 직접적인 요청은 전달되지 않으며 보통 *.do를 사용
<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>
출처: https://to-dy.tistory.com/14 [todyDev]
Controller에서 ModelAndView로 뷰이름을 설정하는데 이 뷰이름과 매칭되는 것을 찾기 위해 사용됩니다.
Controller에서 처리한 결과를 생성할 View를 결정합니다.
서블릿 설정이 자동으로 prefix와 suffix를 붙이는 역할을 합니다.
<context:component-scan base-package="com.tody.lovely" />
출처: https://to-dy.tistory.com/14 [todyDev]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
</beans>
스프링 관련 여러가지 설정 파일들을 등록하여 읽을 수 있는 곳입니다.
구조를 재정의하면서 context-*.xml로 변경되어 여러 설정 파일들을 등록하게 됩니다.
@Controller
public class HomeController {
Controller 애노테이션을 설정한 것입니다.
웹 클라이언트에서 들어온 요청을 해당 비즈니스 로직으로 분기시켜주고, 수행 결과의 응답을 해주는 Dispatcher 역할을 합니다.
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
웹 클라이언트에서 들어온 요청에 해당하는 비즈니스 로직을 찾아주는 역할을 합니다.
value에 적힌게 요청 url인데, jsp에서 주는 경로와 다르면 찾지를 못하기 때문에 오타나 url 주소에 주의해야 합니다.
method에 GET 방식인지 POST 방식인지 알 수 있습니다.
model.addAttribute("serverTime", formattedDate );
return "home"
model.addAttribute("serverTime", formattedDate );는 비즈니스 로직을 수행한 결과를 화면에 보내주는 역할을 합니다.
serverTime이라는 이름으로 formattedDate를 전송함을 의미합니다.
return "home"은 수행 결과를 어디로 보내줄 지 명시합니다.
home은 home.jsp 파일을 의미하고 서블릿 설정에서 자동으로 prefix와 suffix를 붙여줍니다.
model로 보내진 serverTime이 view에서 ${serverTime} 방식으로 사용됨을 볼 수 있습니다.
${serverTime} 부분에서 서버에서 넘어온 결과(formattedDate)를 화면에 보여줍니다.
Log4j는 자바기반의 로깅 유틸리티로 Apache에서 만든 오픈소스 라이브러리입니다.
개발을 할 때 콘솔에 내용을 찍어 보고 싶을 때 system.out.println(); 을 사용해 보았을 것인데, 그게 바로 로그입니다.
스프링에서는 system.out.println();를 출력하게 되면 성능에 큰 영향을 미치므로 안씁니다.
그러므로 성능에 영향을 주지 않는 Log4j를 주로 사용한다.
Log4j는 옵션 설정을 통해서 선택적으로 로그를 남기거나 특정 파일에 로그를 생성하는 등 다양한 이점을 가지고 있다.