스프링 | 스프링 개발 환경 세팅
스프링 프레임워크란?
1 . 정부가 지정한 표준 프레임워크
https://www.egovframe.go.kr/home/ntt/nttRead.do?menuNo=74&bbsId=6&nttId=1865
안정성과 보안은 어떤 프레임워크보다 뛰어나다.
1-1 : 스프링 프레임워크 개요
프레임워크 : 뼈대를 이루는 코드들의 묶음
- 프레임워크란 기본 뼈대 이다 . 자동차를 만들 때 뼈대를 구현한 다음 만든다
- 프레임워크는 방향성을 제시하고 원하는 기능을 빠르게 만들 수 있게 함
스프링 프레임워크는 주요 기능으로 DI, AOP, MVC, JDBC 등을 제공한다.
모듈이란?
- 라이브러리 : 프레임워크 안에 미리 만들어져 있는 기능
1-1 : 스프링 프레임워크 특징
- POJO(Plain Old Java Object) 기반의 프레임워크
자바 오브젝트 기반 프레임워크 라는 의미입니다
자바 객체의 라이프 사이클을 스프링 컨테이너가 직접 관리 하며,
스프링 컨테이너로부터 필요한 객체를 얻어 올 수 있습니다
- DI ( Dependency Injection ) 을 지원
각 계층이나 서비스들 사이 또는 객체들 사이에 의존성이 존재할 경우
스프링 프레임워크가 서로를 연결시켜줍니다.
이는 클래스들 사이에 약한 결합을 가능케 합니다
- AOP(Aspect Oriented Programming)를 지원
트랜잭션, 로깅 , 보안 등 여러 모듈에서 공통적으로 지원하는 기능을 분리하여 사용할 수 있습니다
- 확장성이 높다
스프링 프레임워크의 소스는 모두 라이브러리로 분리시켜 놓음으로써
필요한 라이브러리만 가져다 쓸 수 있습니다.
그리고 많은 외부 라이브러리들도 이미 스프링 프레임워크와 연동되고 있습니다
- Model2 방식의 MVC Framework 를 지원
1-1 : 스프링 프레임워크 런타임

1-1 : 스프링 프레임워크 모듈
스프링 프레임워크에서 제공하고 있는 모듈
스프링 모듈 | 기능 |
spring-core | 스프링의 핵심인 DI(Dependency Injection) 와 IoC(Inversion of Control) 를 제공 |
spring-aop | AOP 구현 기능 제공 |
spring-jdbc | 데이터베이스를 쉽게 (적은 양의 코드) 다룰 수 있는 기능 제공 |
spring-tx | 스프링에서 제공하는 트랜잭션 관련 기능 제공 |
spring-webmvc | 스프링에서 제공하는 컨트롤러 (Controller) 와 뷰 (View)를 이용한 스프링 MVC 구현 기능 제공 |
스프링 프레임워크에서 제공하고 있는 모듈 (라이브러리)을 사용하려면,
모듈에 대한 의존설정을 개발 프로젝트에 XML 파일등을 이용해서 개발자가 직접하면 된다.
1-2 스프링컨테이너(loC)
스프링에서 객체를 생성하고 조립하는 컨테이너(Container) 로
컨테이너를 통해 생성된 객체를 빈(Bean) 이라고 부른다.


1. 스프링 다운로드
- spring 3 다운로드 https://github.com/spring-attic/toolsuite-distribution/wiki/Spring-Tool-Suite-3
Spring Tool Suite 3
the distribution build for the Spring Tool Suite and the Groovy/Grails Tool Suite - spring-attic/toolsuite-distribution
github.com
- spring 4 다운로드 https://spring.io/tools
spring 4 는 스프링 부트에 최적화되어있다.
Spring | Home
Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform.
spring.io
2. utf-8로 바꾸기
window - preference - encoding 검색 - workspace / css / html / jsp 모두 utf-8로 변경
3. Maven 프로젝트 생성
Maven 프로젝트 : 원격에 있는 필요한 모듈을 다운로드해주는 플랫폼
필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면
네트워크를 통해서 라이브러리들을 자동으로 다운 받아줍니다
4. pom.xml 로 spring 라이브러리를 다운로드 하는 코드 작성
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
5. jdk 버전 변경
프로젝트의 JRE 라이브러리 버전이 메이븐 설정 파일에 명시되어 있는 버전과 일치하지 않아서 발생하는것으로 프로젝트를 업데이트 하라고 나온다.
프로젝트 우클릭 - build path - configure build path - jdk버전 변경
6. Maven 프로젝트 업데이트
build path변경 후 maven update 해야 적용 됨
7. 패키지 생성 - 파일 생성
폴더 src / main / java 에 패키지 ex01 생성
ex01 패키지
1) SpringTest 파일 생성
- test 메서드 선언
8. 빈 생성
src / main / resources 에 Spring bean configuration file 생성
2) application-context.xml 파일 생성
9. 메인 파일 생성
3) MainClass 파일 생성
- GenericXmlApplicationContext 를 ctx로 선언
- ctx.getBean 를 bean 변수로 선언
- bean 변수 안에 test메서드를 실행
GenericXmlApplicationContext 란?
[SPRING]GenericXmlApplicationContext란? 스프링 객체 생성 방법
오늘은 ApplicationContext.xml 스프링 설정 파일을 이용하여 객체를 생성하고, GenericXmlApplicationContext클래스를 이용하여 생성된 객체를 접근하여 사용하는 방법에 대해 알아보겠습니다. 이해를 쉽게
junghn.tistory.com
GenericXmlApplicationContext 클래스는 이렇게 작성된 스프링 설정 파일(application-context.xml) 을 읽어와 로딩이 시키고, 객체를 생성하며, 초기화하는 역할을 합니다. 또한 getBean 메소드를 이용하여 스프링 컨테이너에 생성된 객체에 접근 가능할 수 있게 됩니다.
10. 실행화면