AR삽질러

Spring Start 본문

JAVA/Spring

Spring Start

아랑팡팡 2023. 3. 24. 15:55
728x90

1. Spring

- 자바 애플리케이션 개발에 사용되는 기술이자 개발을 위한 오픈소르 프레임워크이다. spring을 활용하여 방대하고 복잡한 애플리케이션을 쉽게?할 수 있고 높은수준의 모듈성, 유연성, 확장성, 테스트 용이성을 제공한다.

- 스프링을 배우기위한 선수 지식!

  1) Java기반 기술로 Java언어의 이해가 필수!

  2) Java Data type

  3) 객체지향의 개념

  4) Servlet, JSP, HTML - (Spring MVC를 사용하여 애플리케이션을 개발한다.)

 

2. Spring Framework

 - 일반적으로 Spring은 Spring Framework를 의미한다. spring프로젝트의 핵심 컨포넌트들을 제공하여 객체 지향적인 애플리케이션을 쉽게? 개발할 수 있다. 

  Spring지원

  1) 의존주입(Dependency Injection : DI)지원

  2) AOP(Aspect-Oriented Programing)지원

  3) MVC(Model, View, Controller)웹 프레임워크 제공

  4) JDBC, JPA 연동 기술 및 선언적 트랜잭션 처리 등의 DB연동 지원

  5) 자바기반 어플리케이션 개발기능 지원(스케줄링, 메시지연동, email전송 등)

 

3. Spring Boot

 - Spring프레임워크를 기반으로 프로젝트를 설정하고 개발과 배포가 쉽다. SpringBoot는 많은 부분에서 자동으로 설정해주고 애플리케이션을 위한 기본설정들을 제공해주기 때문에 Spring보다 편리하게 이용할 수 있다.

 

4. DI (Dpendency Injection)

 - 객체가 의존 객체를 구하는 방법으로 객체 간의 의존성을 최소화하고 유연한 구조를 유지하기 위해 사용된다.

 DI를 이용하면 객체간의 의존성을 외부에서 설정할 수 있어 객체를 생성하는 코드 내부에서 다른 객체를 생성하거나 의존성을 가지는 객체의 메서드를 직접 호출하는 등 직접적인 의존성 관리를 피할 수 있다.

 

   - 의존하는 대상이 있다면 대상을 만드는 방법

   1) 직접 생성

      - 의존을 필요로 하는 클래스에서 의존 대상을 직접 생성하는 방식

      - 의존을 필요로 하는 클래스를 생성하면 의존 객체도 자동으로 생성된다.

 

   2) DI를 통해 생성

      - 의존을 필요로 하는 클래스에 의존 대상을 주입해주는 방식 : 생성자 파라미터를 통해 필요한 객체를 주입받아 사용하는 방식으로 객체를 생성할 때 의존성을 설정할 수 있다.

      - 어노테이션을 이용한 의존성 주입방식 : @Autowired 어노테이션을 이용하여 필요한 객체를 주입받아 사용하는 방식으로 Spring이 객체를 생성하고 필요한 의존성을 자동으로 주입해준다.

 

  - Spring DI는 Assembler(조립기)의 역할 : DI패턴을 사용하여 의존 객체를 주입한다. 객체를 서로연결한다.

  - Assembler(조립기)의 역할을 Spring으로 대체한다. : 필요한 객체를 생성, 생성한 객체에 의존을 주입, 객체가 제공하는 기능을 정의, 스프링은 Assembler와 다르게 범용 조립기이다.

 

5. @Autowired동작 순서

 - 타입이 같은 빈 객체를 검색한다. -> 타입이 같은 bean객체가 하나면 그 객체를 사용한다.

 - @Qualifier가 정의되어 있다면 같은 값을 갖는 bean객체다.

 - 타입이 같은 bean객체가 두개 이상 존재하면 @Qualifier로 저징한 bean객체를 찾아 주입한다.

   -> @Qualifier로 지정된 객체가 없다면 이름이 같은 bean객체를 찾는다.

 

6. @Resource를 사용한 의존 자동 주입

 - Resource어노테이션은 bean의 이름을 검색하여 자동 주입 동작한다.

  -> 자동주입대상에 @Resource어노테이션을 사용한다.

  -> 스프링 설정파일에 <context:annotation-config />태그 추가

 동작순서

 -> name속성에 지정한 bean객체를 찾는다. 객체가 있다면 해당 객체를 주입하고 객체가 없다면 동일한 타입의 bean객체를 찾아 주입한다.

 

7. 자동주입과 명시적 의존주입의 관계

 - 자동 의존주입보다 명시적 의존주입이 우선이다.

 - 명시적 의존주입

    <constructor-arg>

    <property>

 - 자동주입

    @Autowired

    @Resource

    <context:annotation-config/>

728x90
반응형
LIST

'JAVA > Spring' 카테고리의 다른 글

Spring-등급제회원_기본예제(1)  (0) 2023.06.27
Spring-객체지향이란?(용어정리)  (0) 2023.06.24
Spring기초 설명  (0) 2023.04.03
Spring게시판실습  (0) 2023.04.03
Spring 설치 Hellow word! 띄우기!  (2) 2023.01.17