본문 바로가기

Spring

SpringFramework(스프링프레임워크)란?

728x90

* SpringFramework란?

 

1. 큰 어플리케이션을 구축할 수 있는 가벼운 솔루션이다.

2. 원하는 부분만 가져다 사용할 수 있도록 모듈화가 잘되어져 있다. (약 20개)

3. IOC 컨테이너

4. 선언적으로 트랜잭션을 관리할 수 있다.

5. 완전한 기능을 갖춘 MVC Framework를 제공한다.

6. AOP지원

  *AOP = 관점지향프로그래밍

 

* Spring 데이터 엑세스

 

1. spring-jdbc: 자바 JDBC프로그래밍을 쉽게 할 수 있도록 기능을 제공한다.

2. spring-tx: 선언적 트랜잭션 관리를 할 수 있는 기능을 제공한다.

 

* Spring 웹

 

1. spring-web: 멀티 파트 파일 업로드, 서블릿 리스너 등 웹 지향 통합 기능을 제공한다. HTTP클라이언트와 Spring의 원격 지원을 위한 웹 관련 부분을 제공한다.

2. spring-webmvc: Web-Servlet모듈이라고 불리며, Spring MVC및 REST웹 서비스 구현을 포함한다.

 

* Spring컨테이너(==IOC 컨테이너)란?

 

1. 인스턴스의 생명주기를 관리한다.

2. 생성된 인스턴스들에게 추가적인 기능을 제공한다.

 

* DI란?

 

1. Dependency Injection의 약자로, 의존성 주입이란 뜻

2. 클래스 사이의 의존 관계를 빈(Bean)설정 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것을 말한다.

 

*Spring에서 제공하는 IoC/DI 컨테이너

 

1. BeanFactory

  : IoC/DI에 대한 기본 기능을 가지고 있다.

2. ApplicationContext

  : BeanFactory의 모든 기능을 포함하며, 일반적으로 BeanFactory보다 추천된다. 트랜잭션처리, AOP등에 대한 처리를 할 수 있다.

 

*어노테이션@

 

1. @Configuration

이 파일은 Config파일임을 알려주는 Annotation이다. @Configuration-> Spring 설정 클래스이다.

 

AnnotationConfigApplicationContext는 나중에 이런 자바 config클래스들을 읽어들여서 ioc와 di를 적용한다.

이때 설정 파일 중에 bean이라는 Annotation이 붙어 있는 메서드들을 AnnotationConfigApplicationContext는 자동으로 실행해서 그 결과로 리턴해주는 객체들을 자동으로 싱글턴으로 관리해준다.

 

2. @Component

@ComponentScan(“패키지명”)=>패키지안에 있는 컨트롤러, 서비스, 리포지토리, 컴포넌트 이런 Annotation이 붙어있는 것들을 다 찾아서 bean으로 등록시켜준다.

 

3. @Autowired

@AutoWired라는 Annotation은 자동으로 객체를 주입해달라는 의미이다.

 

*Jdbc Template

 

1. org.springframework.jdbc.core에서 가장 중요한 클래스

2. 리소스 생성, 해지를 처리해서 연결을 닫는 것을 잊어 발생하는 문제 등을 피할 수 있도록 한다.

3. 스테이트먼트의 생성과 실행을 처리한다.

4. SQL조회, 업데이트, 저장 프로시저 호출, ResultSet반복호출 등을 실행한다.

 

*ConnectionPool이란?

 

1. DB연결은 비용이 많이 든다

2. 커넥션 풀은 미리 DB와 커넥션을 여러 개 맺어 둔다.

3. 커넥션이 필요하면 커넥션 풀에게 빌려서 사용한 후 반납한다.

 

*DataSource

 

1. 커넥션을 얻고 반납하는 등의 작업을 수행

728x90

'Spring' 카테고리의 다른 글

POJO 란? (Spring)  (0) 2021.03.14
자바 생명주기(Life Cycle)에 대해 알아보자. (Servlet, Bean)  (0) 2021.03.14