개발 무지렁이

[Spring] 프레임워크 Spring과 Spring Container, Bean 본문

Backend/스프링

[Spring] 프레임워크 Spring과 Spring Container, Bean

Gaejirang-e 2023. 4. 27. 20:57

🚀 프레임워크(framework)란?
(1) 다양한 디자인 패턴과 다양한 라이브러리집합체
(2) 이미 만들어져 있는 뼈대(비기능적 요구사항, 눈에 보이지 않는 서비스들, 공통점을 찾아 하부구조 제공)
  어떤 프로젝트간에 공통의 컴포넌트들, 모듈들이 있다. => 반제품

Tistory's Card

Spring Container(스프링 컨테이너), BeanFactory


WebApplicationContext(컨테이너 기능확장)  <  ApplicationContext(컨테이너 기능확장)  <  BeanFactory

⚠️ Bean: Spring Container가 관리하는 객체, 하나의 클래스를 뜻한다. (1Bean = 1Class)


(1) 객체의 생명주기(lifeCycle)를 알아서 관리

(2) DI(Dependency Injection)를 적용해서 객체를 주입
  빈설정(Bean Definition)정보를 바탕으로 컨테이너가 자동으로 연결해주는 것.
  객체들의 생성spring container가 주관, 객체를 낭비하지 않는다(경량급)
객체들의 의존관계를 정확하게 파악해서 객체의 lifeCycle을 관리

(3) 결합을 느슨하게



❓결합도란

  public class Test {
      public void aa() {

      }
  }

  public class Service {
      Test t = new Test(); // 결합도가 있다
      public void insert() {
          t.aa();
      }
  }

Maven🦣과 Gradle🐘


Maven: 필요한 라이브러리들을 저장소에 다운받아서 알아서 관리(auto build path)해주는 전용 툴
pom.xml (project object model)에 의존관계(dependency) 추가

🦣. Maven Project directory 구조

  1) src/main/java
  2) src/test/java
  3) src/main/resource (정적문서, 환경설정문서 ex. xml)

Spring Core


Most basic,
의존관계에 있는(동작하기 위해서 필요한) 라이브러리를 다 알아서 관리한다.

Comments