Back-end/Spring

1. 조회 빈이 2개 이상인 경우 @Autowired를 통해 의존 관계를 주입할 때 타입으로 조회하여 주입하게 된다. 만약 같은 타입의 빈이 2개 이상일 때 에러가 발생한다. @Component public class FixDiscountPolicy implements DiscountPolicy {...} @Component public class RateDiscountPolicy implements DiscountPolicy {...} @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discou..
개요 The dependencies of some of the beans in the application context form a cycle: ┌─────┐ | principalOauth2UserService (field private org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder com.cos.security1.config.outh.PrincipalOauth2UserService.bCryptPasswordEncoder) ↑ ↓ | securityConfig defined in file [E:\\Project\\SpringWebStudy\\security1\\out\\production\\classes\\com\\cos\\secur..
김영한님의 Spring 핵심원리 강의를 듣고 정리하는 글입니다. 1. 개요 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료한 작업일 경우, 객체의 초기화와 종료 작업이 필요하다. 네트워크 연결하는 동작을 표현한 예제 코드를 통해 설명해보겠다. public class NetworkClient { private String url; public NetworkClient() { System.out.println("생성자 호출 , url=" + url); connect(); call("초기화 연결 메세지"); } public void call(String msg) { System.out.println("call= " ..
김영한님의 Spring 핵심원리 강의를 듣고 정리하는 글입니다. 1. 서론 컴포넌트 스캔과 의존관계를 자동으로 주입받게 되는 과정에 대해서 다루었던 적이 있다. 이 포스팅에서는 의존관계를 주입하는 4가지 방법들에 대해서 다루겠다. 2. 의존관계 자동주입 방법 4가지 생성자 주입 setter 주입 필드 주입 일반 메서드 주입 의존관계를 주입하는 방법에는 4가지가 있다. 하나씩 예제를 통해서 정리해보자. 의존관계를 주입할 때 기본적으로 @Autowired 어노테이션을 사용한다. 참고로 @Autowired는 빈을 찾아서 주입하게 되는데 주입할 대상이 없을 경우 에러가 발생한다. 주입할 대상이 없더라도 동작하게 하려면 @Autowired(required = false)로 지정하면 된다. a. 생성자 주입 @Co..
김영한님의 Spring 핵심원리 강의를 듣고 정리하는 글입니다. 1. 컴포넌트 스캔(Component Scan) 지금까지 스프링 빈에 등록하고 의존관계를 주입할 때 @Bean이나 XML 파일을 통해서 설정 정보에 등록하여 스프링 빈에 등록하고, 의존관계를 설정했다. 복잡도가 커지면 이 방법 또한 매우 귀찮은 작업이다. @CompoentScan을 통해 @Component로 설정된 클래스는 스프링 빈에 등록하고 @Autowired를 통해 의존관계를 자동으로 주입하는 방법에 대해 알아보자. 2. 컴포넌트 스캔 사용 방법 AutoAppConfig.java(컴포넌트 탐색 역할 담당) @Configuration @ComponentScan public class AutoAppConfig { } AutoAppConfi..
김영한님의 Spring 핵심원리 강의를 듣고 정리하는 글입니다 1. DI, IoC 탄생배경 DI, IoC가 없었더라면, 객체지향의 원칙 중 DIP, OCP 등을 완벽하게 지킬 수 없다. 코드를 보자. public class MemberServiceImpl implements MemberService { private MemberRepository memberRepository = new MemoryMemberRepository(); } MemberServiceImpl은 MemoryMemberRepository와 의존관계를 가진다. MemberReposiory는 인터페이스로 구현체(클래스)가 바뀔 경우 MemberServiceImpl에서도 코드를 변경해줘야 한다. ⇒ 객체지향 설계원칙(DIP, OCP)를 ..
kmindev
'Back-end/Spring' 카테고리의 글 목록 (2 Page)