장성호's
장성호's blog
장성호's
  • 분류 전체보기
    • 알고리즘
      • 백준
      • 이론
    • WEB
      • Spring 인강
      • 네트워크
    • 개인 프로젝트
      • 쇼핑몰 만들기

블로그 메뉴

  • 홈
  • 깃허브
전체 방문자
오늘
어제
반응형
hELLO · Designed By 정상우.
장성호's

장성호's blog

[Spring] 스프링 공부 #3
WEB/Spring 인강

[Spring] 스프링 공부 #3

2021. 12. 24. 22:34
반응형

 

IoC - Inversion of Control

  • 직역하면 제어의 역전이라는 의미로, 제어권이 사용자에서 스프링 프레임워크로 역전되었다는 의미
  • IoC의 개념을 적용하기 전에는 사용자가 직접 객체를 생성했지만,
  • IoC의 개념을 적용하면 프레임워크가 객체를 생성, 관리 및 주입한다

 

DI - Dependency Injection

  • 스프링 컨테이너가 관리하는 빈 객체를, 컨테이너가 자동으로 연결 및 주입해주는 것

 

컴포넌트 스캔 방법

Controller

@Controller
public class MemberController {
    private final MemberService memberService;

    @Autowired
    public MemberController(MemberService memberService) {
        this.memberService = memberService;
    }
}

Service

@Service
public class MemberService {
    private final MemberRepository memberRepository;

    @Autowired
    public MemberService(MemberRepository memberRepository){
        this.memberRepository = memberRepository;
    }
}

Repository

@Repository
public class MemoryMemberRepository implements  MemberRepository{

    private static Map<Long, Member> store = new HashMap<>();
    private static long sequence = 0L;
}

 

코드로 직접 빈 등록하는 방법

Controller

@Controller
public class MemberController {
    private final MemberService memberService;

    @Autowired
    public MemberController(MemberService memberService) {
        this.memberService = memberService;
    }
}

Service

public class MemberService {
    private final MemberRepository memberRepository;

    public MemberService(MemberRepository memberRepository){
        this.memberRepository = memberRepository;
    }
}

Repository

public class MemoryMemberRepository implements  MemberRepository{

    private static Map<Long, Member> store = new HashMap<>();
    private static long sequence = 0L;
}

Config 파일

@Configuration
public class SpringConfig {

    @Bean
    public MemberService memberService() {
        return new MemberService(memberRepository());
    }

    @Bean
    public MemberRepository memberRepository() {
        return new MemoryMemberRepository();
    }
}

 

출처

[인프런] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(김영한)

https://inf.run/NUip

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세

www.inflearn.com

 

스프링부트 백엔드 프로그래밍 - 에디의 기술블로그

https://brunch.co.kr/@springboot/532

 

스프링부트 백엔드 프로그래밍 (3)

3. 스프링 IoC, DI | "스프링부트 백엔드 프로그래밍"이라는 주제로 약 8주간 글을 작성할 예정입니다. 스터디가 잘못된 방향으로 가지 않도록, 의견 및 조언을 아낌없이 해주시길 부탁드립니다.

brunch.co.kr

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'WEB > Spring 인강' 카테고리의 다른 글

[Spring] 스프링 공부 #6  (0) 2022.01.02
[Spring] 스프링 공부 #5  (0) 2021.12.29
[Spring] 스프링 공부 #4  (0) 2021.12.25
[Spring] 스프링 공부 #2  (0) 2021.12.23
[Spring] 스프링 공부 #1  (0) 2021.12.23
    'WEB/Spring 인강' 카테고리의 다른 글
    • [Spring] 스프링 공부 #5
    • [Spring] 스프링 공부 #4
    • [Spring] 스프링 공부 #2
    • [Spring] 스프링 공부 #1
    장성호's
    장성호's
    장성호's 개발 공부 블로그

    티스토리툴바