본문 바로가기
카테고리 없음

스프링프레임워크 - 1

by cook_code 2023. 5. 14.
반응형

1. 스프링의 개념

1.1 개념

"애플리테이션 개발에 필요한 기반을 제공해서 개발자가 비즈니스 로직 구현에만 집중할 수 있게끔 하는 것"

스프링 프레임워크는 주요기능으로 DI, AOP, MVC, JDBC 등을 제공한다.

 

[Spring] Spring Framework란? 기본 개념 핵심 정리

Spring Framework란? 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션입니다. 엔터프

khj93.tistory.com

1.2 스프링 프레임워크에서 제공하는 모듈

스프링 모듈 기능
spring-core 스프링의 핵심인 DI와 IoC 제공
spring-aop AOP 구현 기능 제공
spring-jdbc 데이터베이스를 다루는 기능 제공
spring-tx 스프링의 트랙잭션 관련 기능 제공
spring-webmvc 스프링 MVC 구현 기능 제공

스프링 프레임워크에서 제공하고 있는 모듈을 사용하려면, 모듈에 대한 의존설정을 개발 프로젝트에 XML 파일등을 이용해 개발자가 직접 하면 된다.

* 제어역전(Inversion of Control) :
사용할 객체를 직접 생성하지 않고 객체의 생명주기 관리를 외부(컨테이너)에 위임

* 의존성 주입(Dependency Injection) :
제어 역전 방법 중 하나로, 사용할 객체를 직접 생성하지 않고
외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식


* 의존성 주입 방법 3가지

- 생성자를 통한 의존성 주입
- 필드 선언을 통한 의존성 주입
- setter 메서드를 통한 의존성 주입

* 관점 지향 프로그래밍 (Aspect Oriented Programming)

관점을 기준으로 묶어 개발하는 방식 (핵심기능/부가기능)

* 관점 지향 프로그래밍 (Aspect Oriented Programming) 방법 3가지
- 컴파일 과정에 삽입하는 방식
- 바이트 코드를 메모리에 로드하는 과정에 삽입하는 방식 
- 프락시 패턴을 이용한 방식

1.3 스프링 컨테이너 (ApplicationContext)

스프링컨테이너 생성 과정 

1. Spring Container 생성

2. Spring Bean 등록

3. 스프링 빈 의존관계 설정

 

[Spring] 스프링 컨테이너(Spring Container)란?

What is Spring Container? -. 컨테이너는 보통 객체(Bean)들의 생명주기(Life Cycle)을 관리하며, 생성된 인스턴스들에게 추가적인 기능을 제공하도록하는 것 -. 작성한 코드의 처리과정을 위임받은 독립적

devlogofchris.tistory.com

1.4 스프링부트 동작 구조

(1) DispatcherServlet으로 요청(HttpServletRequest)이 들어오면 DispatcherServlet은 핸들러 매핑을 통해 요청 url에 매핑된 컨트롤러를 탐색합니다. (2) 핸들러어댑터로 컨트롤러를 호출합니다. (3) 핸들러어댑터는 컨트롤러의 응답이 들어오면 ModelAndView로 응답을 가공해 반환합니다. (4) 뷰 형식으로 리턴하는 컨트롤러를 사용할 때는 뷰 리졸버를 통해 뷰를 받아 리턴합니다. 

2. 스프링 프로젝트 생성

Project Explorer > New > maven 검색 > Maven Project 선택 

Use Default Workspace location으로 설정 또는 작업을 원하는 경로 별도로 설정 > Next

maven-arhcetype-webapp 1.0 버전 선택 > Next

Group Id, Artifact Id 지정 > Finish

pom.xml 세팅

<?xml version="1.0" encoding="UTF-8"?>
<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 
		http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>spring4</groupId>
	<artifactId>lec05Pjt001</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.1.0.RELEASE</version>
		</dependency>

	</dependencies>


	<build>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>11</source>
					<target>11</target>
					<encoding>utf-8</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

java/main/resources 폴더에 applicationContext.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"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
 		http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>

 

반응형