기존에, 내가 프로그램 객체를 직접 만들고, 그것을 사용하는 과정이었다면, Spring을 사용하게 되면 '역제어 (IOC)'가 되는데, 내가 만드는것이 아닌, Spring이 만들면, 그것을 내가 사용하게 되는 방식이다.
EJB의 단점을 보완하기 위해서 Spring이 생겨났다.(비용이 비쌈) Spring을 사용하는데 유지보수 비용은 오픈소스 이므로, 0원이다.
Spring은 로드존슨이 EJB가 워낙 헤비하고 사용하기 힘든 모델을 (겨울) Spring으로 보다 쉽고 가볍게 (봄) 사용하자라는 취지로 생겨났다.
국가에서도 Spring을 이용하여, 개발하는것에 대한 표준프레임워크를 제공하고, 장려한다.
IOC(Inversion of Control)
내가 기존에 무엇을 만들고, 무엇을 하고자 했을때 내가 직접 개발하고 만들어야 했다.
하지만, 이것이 역전되었다. 특정 객체를 만들기 위해서 생성하는 사람은 나였지만, 이제는 만드는건 프레임워크가 해주고, 사용만 내가 직접 하면 된다. 여기서 프레임워크는 Spring이고, Spring이 직접적으로 전부 만들어준다.
그러니까, 나는 사용만 하면 된다는 것이다. 이것이 역제어라고 한다.
Spring 설치전,
SpringFramework - 환경설정이 복잡할 수 있다
SpringBoot - 이 환경설정 또한 도와준다.
Maven 설정하기 (여기서 Maver 이란 Library 관리 해주는 객체)
Project 관리 프로그램 (1. Maver 2. Gradle)
라이브러리는 여기서 가져온다.
<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의 동작구조
'SpringBoot↗' 카테고리의 다른 글
Spring 파라미터 처리 (0) | 2024.07.17 |
---|---|
[오류해결]Spring Maven 라이브러리 충돌 일어날 때 (0) | 2024.07.17 |
진짜요점핵중요 A (DisPatcherServlet 작동움직임 세부구조) (0) | 2024.07.17 |
!!! Spring 초기 설정만 !!! 한 번 더! 리턴즈 !! !!! (0) | 2024.07.16 |
Spring의 작동 구조 (0) | 2024.07.16 |