JX405기_비트/Spring Framework

Day45-0 Spring Framework 개념 & IntelliJ에서 설정하기

_하루살이_ 2023. 3. 15. 19:40

 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 

 

 

새로운 프로젝트 생성하기

 

새프로젝트 만들기 Java 16버전으로 download

 

GroupId 회사 url 반대로 ArtifactId 프로젝트

 

 

 

 

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 파일 만들어주기

Spring Config로 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>

 

패키지와 java class 만들기

 

Put into Output Root 실행

 

 

 

 

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