Spring (설정 및 설명)

메타플랫폼대표
|2024. 7. 16. 11:02
반응형

기존에, 내가 프로그램 객체를 직접 만들고, 그것을 사용하는 과정이었다면, Spring을 사용하게 되면 '역제어 (IOC)'가 되는데, 내가 만드는것이 아닌, Spring이 만들면, 그것을 내가 사용하게 되는 방식이다.

 

 

 

EJB의 단점을 보완하기 위해서 Spring이 생겨났다.(비용이 비쌈) Spring을 사용하는데 유지보수 비용은 오픈소스 이므로, 0원이다.

 

Spring은 로드존슨이 EJB가 워낙 헤비하고 사용하기 힘든 모델을 (겨울) Spring으로 보다 쉽고 가볍게 (봄) 사용하자라는 취지로 생겨났다.

 

국가에서도 Spring을 이용하여, 개발하는것에 대한 표준프레임워크를 제공하고, 장려한다.

 

표준프레임워크 포털 eGovFrame

본문 내용 바로가기 대메뉴 바로가기 소개 구성 구성상세 버전별 구성 오픈소스 SW 현황 아키텍쳐 라이선스 적용사례 추진성과 기술지원내역 컨트리뷰션 센터소개 지원서비스 적용지원 서비스

www.egovframe.go.kr

 

 

 

 

IOC(Inversion of Control)

내가 기존에 무엇을 만들고, 무엇을 하고자 했을때 내가 직접 개발하고 만들어야 했다.

하지만, 이것이 역전되었다. 특정 객체를 만들기 위해서 생성하는 사람은 나였지만, 이제는 만드는건 프레임워크가 해주고, 사용만 내가 직접 하면 된다. 여기서 프레임워크는 Spring이고, Spring이 직접적으로 전부 만들어준다.

그러니까, 나는 사용만 하면 된다는 것이다. 이것이 역제어라고 한다.

 

 

 

 

 

 


 

Spring | Home

Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform.

spring.io

 

 

 

 

Spring 설치전,

SpringFramework - 환경설정이 복잡할 수 있다

 

SpringBoot - 이 환경설정 또한 도와준다.

 

 

Maven 설정하기 (여기서 Maver 이란 Library 관리 해주는 객체)

 

 

 

 

Project 관리 프로그램 (1. Maver 2. Gradle)

라이브러리는 여기서 가져온다.

https://mvnrepository.com/

 

 

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.git</groupId>
  <artifactId>myapp</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  
  
  <dependencies>
	<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-web</artifactId>
	    <version>6.0.0</version>
	</dependency>
  </dependencies>
  
  
  
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <release>17</release>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.3</version>
      </plugin>
    </plugins>
  </build>
</project>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

정상적으로 잘 적용이 되었다.


 

 

 

 

 

 

 

 

 

web.xml 생성하기

 

 

 

 

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0">
  <display-name>2024_0716_SpringEx1</display-name>
  
  
  	<!-- /////////////////// 스프링 설정 시작 /////////////////////////////////// -->
 	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>


	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
  
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

 

 

 

 

Maven 원활한 동작을 위한 설정

 

 

 

 

 


 

 

 

 

부연설명(Spring의 동작구조)

ContextLoadListener를 가장 먼저 생성 -> applicationContext를 읽어온다 -> 그 안에 vo.PersonVo라는 정보를 읽고 빈(객체)을 생성한다.

ContextLoaderListener가 applicationContext를 읽어와서 생성해준다.

 

 

 

 

Spring의 동작구조

 

 

 

 

반응형