일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- db
- Spring Cloud
- 알고리즘
- 자바
- aws
- 운영체제
- Spring
- golang
- 데이터베이스
- Spring Cloud Feign
- 디자인 패턴
- 쿼리
- Intellj
- SQL
- Kafka
- MST
- DP
- 코딩
- JPA
- MVC
- PL/SQL
- 백준
- 자료구조
- 페이징
- Jenkins
- Spring Boot
- feign
- 오라클
- 클라우드
- retry
- Today
- Total
justgo_developer
Spring 기본 개념 및 이해 본문
Spring FrameWork 정의
The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.
A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments.
Spring Framework는 모든 종류의 배포 플랫폼에서 최신 Java 기반 엔터프라이즈 애플리케이션을위한 포괄적 인 프로그래밍 및 구성 모델을 제공합니다.
Spring의 핵심 요소는 애플리케이션 수준의 인프라 지원입니다. Spring은 엔터프라이즈 애플리케이션의 "연결"에 중점을 두어 팀이 특정 배포 환경에 대한 불필요한 연결없이 애플리케이션 수준의 비즈니스 로직에 집중할 수 있도록합니다.
Spring F/W 특징
- 경량 컨테이너
: 자바의 객체를 Spring이 관리, 객체 생성 및 소멸과 같은 라이프사이클 Spring 컨테이너가 직접 관리
- IoC(Invertion of Control: 제어 역행)
: 객체에 대한 제어권이 개발자가 아니라 Spring Container가 객체 생성부터 소멸까지 관리. 제어권의 관리 주체가 Spring Container로 바뀜
일반적인 의존성에 대한 제어권 : OwnerRepository ownerReposiotry = new OwnerRepository();
Spring Container가 제어
- DI(Dependency Injection: 의존성 주입)
: 객체를 직접 생성하는 것이 아니라 객체간의 의존성을 외부에서 주입
※ IoC Container
- ApplicationContext(BeanFactory)라고도 불림
- 빈(Bean)을 만들고 의존성을 엮어주며 제공
- ApplicationContext를 이용해 직접 빈을 꺼낼수도 있음.
※ Bean(빈) : Spring IoC 컨테이너가 관리하는 객체
- 빈으로 등록되는 대상 : @Component, @RestController, @Service, @Repository 등
- 등록 방법 :
1. Component Scan @ComponentScan : Componet 어노테이션이 붙은 걸 빈으로 등록
2. 직접 xml이나 자바 설정에 등록 @Bean을 이용. 단, @Configuration이 붙은곳에서만 사용 가능
의존성 주입(Dependency Injection)
- @Autowired 어디에 붙이나? 1. 생성자 2. 필드 3. Setter
- 생성자가 하나고 주입받는 객체가 빈이면 @Autowired 생략 가능
- AOP(Aspect-Oriented Programming: 관점지향 프로그래밍)
: 흩어진 코드를 한곳으로 모으는 기법
1. 바이트코드 조작
2. 프록시 패턴(Spring에서 사용)
- PSA(Portable Service Abstraction)
환경의 변화와 관계없이 일관된 방식의 기술 접근 환경을 제공하려는 추상화 구조
: 잘 만든 인터페이스
spring에서 만든 인터페이스는 대부분 PSA
ex) @Transactional, @EnableCaching, Web MVC
Spring MVC란?
: Spring에서 제공해주는 MVC 패턴 웹 모듈
MVC란?
Model, View, Controller를 분리한 디자인패턴 개념이다.
- Model : 데이터
- View : 페이지
- Controller : 요청받고 , 응답 주는 비즈니스 로직
'IT > Spring-boot' 카테고리의 다른 글
[Spring] Spring Bean 주입 + 팩토리 메소드 디자인 패턴 (0) | 2023.10.10 |
---|---|
GraphQL(Graph + Query Language) with Spring-boot (0) | 2023.10.05 |
Spring Data Envers (0) | 2023.10.03 |
RESTFul API란? (0) | 2021.01.30 |
Spring Boot 소개 (0) | 2020.04.01 |