[Spring]Spring Framework의 특징
Spring Framework
Java로 다양한 애플리케이션을 만들 수 있도록 돕는 경량급 오픈소스 프레임워크
Spring의 특징
- POJO(Plain Old Java Object) 방식의 프레임워크
- 제어의 역전(IoC(Inversion of Control)) 지원
- 의존성 주입(DI(Dependency Injection))
- 관점지향 프로그래밍(AOP(Aspect-Oriented Programming))
- Spring MVC 패턴 사용
POJO(Plain Old Java Object)
특정 자바 모델이나 기능, 프레임워크를 따지지 않는 Java Object
EJB의 Java Bean이 아닌 Getter와 Setter로 구성된 가장 순수한 형태의 기본 클래스
IoC(Inversion of Control)
제어의 역전
개발자가 직접 객체를 제어하지 않고 외부에서 제어하는 것
Spring에서는 Spring의 컨테이너에서 객체 제어
객체의 생성에서부터 생명주기의 관리까지 모든 제어를 외부에서 함
객체 간의 결합도를 줄이고 유연한 코드를 작성하게 함
IoC로 인해 DI와 AOP가 가능하게 됨
DI(Dependency Injection)
의존성 주입
객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입을 시켜주는 방식
//new를 이용해 직접 객체 생성
public class AService{
private ARepository aRepository = new ARepository();
}
//외부에서 주입 받음
public class AService{
private ARepository aRepository;
public AService(ARepository aRepository){
this.aRepository = aRepository;
}
}
AOP(Aspect-Oriented Programming)
관점 지향 프로그래밍
흩어진 관점(관심사)들을 모아서 모듈화 하는 기법 즉, 중복된 부분을 분리하여 모듈화
Spring MVC 패턴
애플리케이션의 구성 요소를 3가지(Model, View, Controller)로 분리한 디자인 패턴
Model : 애플리케이션의 정보(data)
View : 사용자에게 보여지는 부분
Controller : 사용자의 요청에 따른 이벤트 수행
Spring Boot
Spring이 설정하는 것에 어려움을 가지고 있는데, 이를 개선하기 위해 나타난 것이다.
- Spring Boot 내부에 Tomcat이 포함되어있기 때문에 따로 Tomcat을 설치하거나 버전 관리를 할 필요가 없다
- pom.xml이나 build.gradle의 starter를 통해 dependency를 자동 관리할 수 있다
- spring-boot-starter-* - XML 설정을 하지 않아도 된다
- jar file을 이용해 자바 옵션만으로 손쉽게 배포 가능
출처
https://jins-dev.tistory.com/entry/Spring-%EC%9D%98-%EA%B8%B0%EB%B3%B8%EC%9D%B4-%EB%90%98%EB%8A%94-POJO-%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC
https://velog.io/@gillog/Spring-DIDependency-Injection
https://mo-world.tistory.com/entry/IOC%EC%99%80-DI-%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC-%EC%8A%A4%ED%94%84%EB%A7%81-%EA%B0%9C%EB%85%90-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85
https://engkimbs.tistory.com/746
https://ooeunz.tistory.com/56
Author And Source
이 문제에 관하여([Spring]Spring Framework의 특징), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kjihye0340/SpringSpring-Framework의-특징저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)