Day45-0 Spring Framework 개념 & IntelliJ에서 설정하기
JEB의 의존적인 상황에 대해 나온 말
POJO = Plain Old Java Object 평범한 구식의자바 객체
최대한 독립적으로 돌아갈수 있도록 제작하자 → 스프링 프레임워크 나옴
스프링 프레임워크 → 자바 개발자들에게 봄같은 존재가 되길
필수적이 백본을 제외하고서 나머지를 강제 하지 않음
필요한 라이브러리를 덮어 씌우는 형태
DI Dependency Injection @ 을 통해 DI로 처리
→ IoC Inversion of Cotrol 제어의 역전 개념과 연결됨
객체의 수명관리를 개발자가 하는 것이 아니라 스프링이 처리하게 함
RESTFul
.jsp 파일시스템 기반 .do, .post, .get 서블릿 기반, 스프링은 서블릿기반
→ URLMapping을 통해서 특정페이지의 처리가 가능해짐
Model 클래스로 객체를 연결할수 있도록 함
Cotroller 에서 View로 이동할때 View에 필요한 모든 정보를 담아서 전달하는 역할
Spring Boot VS Sping MVC
Spring Boot 하나의 커다란 JAR 파일로 만들어서 실행시키면 내장된 Tomcat을 통해 애플리케이션 실행
메소드를 활용한 주요 설정을 실행 → 소규모 프로젝트 실행시 편리 / 규모가 커지면 별로
Spring MVC
내장 Tomcat 없음 따로 만든 것을 옮겨줘야함 Xml을 통해서 세팅을 잡아줌
→ 대규모 프로젝트실행시 유용
intelliJ Spring
새로운 프로젝트 생성하기
Web 만들어주기
https://mvnrepository.com/artifact/org.springframework/spring-webmvc/5.3.25
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.25</version>
</dependency>
pom.xml 삽입
web.xml 설정하기
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/dispatcherServlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
WEB-INF에 spring 경로와 xml 파일 만들어주기
dispatcherServlet.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:mvc="http://www.springframework.org/schema/mvc"
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/cache http://www.springframework.org/schema/cache/spring-cache.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<context:component-scan base-package="com.bit.spring"/>
</beans>
HomeController에 @Controller 지정하기
package com.bit.spring.controller;
import org.springframework.stereotype.Controller;
@Controller
public class HomeController {
}
@RequestMapping 설정하기
package com.bit.spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HomeController {
@RequestMapping("/")
public String showIndex(){
System.out.println("인덱스 화면으로 이동합니다.");
return "index";
}
}
Tomcat 설정하고 실행하기
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>인덱스</title>
</head>
<body>
<h1>HELLO WORLD!!</h1>
</body>
</html>
결과
https://docs.spring.io/spring-framework/docs/current/reference/html/overview.html#overview