본문 바로가기
728x90

Back-End/Spring14

7.의존관계 자동주입 7.의존관계 자동주입 목차 1.다양한 읜존관계 주입 방법 2.옵션 처리 3.생성자 주입을 선택하라 4.롬복과 최신트렌드 5.@Autowired 필드명 , @Qualifier , @Primary 6.자동,수동의 올바른 실무운영기준 1.다양한 읜존관계 주입 방법 생성자 주입 수정자 주입 (setter) 필드 주입 일반 메서드 주입 OrderServiceImpl @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; //private final DiscountPolicy disco.. 2021. 1. 11.
6.컴포넌트 스캔 6.컴포넌트 스캔 목차 1.컴포넌트 스캔과 의존관계 자동주입 시작 2.탐색위치와 기본 스캔대상 3.필터 4.중복 등록과 충돌 1.컴포넌트 스캔과 의존관계 자동주입 시작 스프링 빈등록할때는 자바코드의 @Bean , xml 의 설정을 했다 하지만 이렇게 등록해야되는 빈이 많다면 ? 귀찮고 누락되는 일도 많아진다 스프링 설정정보가 없어도 자동으로 등록해주는 컴포넌트 스캔등장 Autowired 라는 의존관계도 자동으로 주입하는 기능도 필요하다 AutoAppConfig.java @Configuration @ComponentScan( excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = Configuration.class)) public class Au.. 2021. 1. 7.
5.싱글톤 컨테이너 5.싱글톤 컨테이너 목차 1.웹 애플리케이션 싱글톤 2.싱글톤 패턴 3.싱글톤 컨테이너 4.싱글톤 방식의 주의점 5.@Configuration 과 싱글톤 6.@Configuration 과 바이트코드 조작의 마법 1.웹 애플리케이션 싱클톤 웹 애플리케이션은 보통 고객이 동시에 요청한다 SingletonTest public class SingletonTest { @Test @DisplayName("스프링이 없는 순수한 DI 컨테이너") void pureContainer(){ AppConfig appConfig = new AppConfig(); //1.조회 MemberService memberService1 = appConfig.memberService(); //2.조회 MemberService memberS.. 2021. 1. 5.
4.스프링 컨테이너와 스프링 빈 4.스프링 컨테이너와 스프링 빈 목차 1.스프링 컨테이너 생성 2.컨테이너에 등록된 모든 빈 조회 3.스프링빈 조회(기본) 4.스프링빈 조회(동일한 타입이 둘이상) 5.스프링빈 조회(상속관계) 6.BeanFactory 와 ApplicationContext 7.다양한 설정 형식 지원 - 자바코드 , XML 8.스프링 빈 설정 메타정보 - BeanDefinition 1.스프링 컨테이너 생성 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext - 스프링 컨테이너 , 인터페이스 AnnotationConfigApplicationContex.. 2021. 1. 4.
3.스프링 핵심 원리 이해2 - 객체지향원리적용 3.스프링 핵심 원리 이해2 - 객체지향원리적용 목차 1.새로운 할인 정책 개발 2.관심사의 분리 3.좋은 객체지향 설계의 5가지 원칙 4.IoC,DI 그리고 컨테이너 5.스프링으로 전환하기 1.새로운 할인 정책 개발 RateDiscountPolicy (10%할인) public class RateDiscountPolicy implements DiscountPolicy { private int discountPercent=10; @Override public int discount(Member member, int price) { if(member.getGrade()== Grade.VIP){ return price * discountPercent/100; }else { return 0; } } } 고객이 .. 2021. 1. 1.
2.스프링 핵심 원리 이해1 - 예제만들기 2.스프링 핵심 원리 이해1 - 예제만들기 목차 1.회원 도메인 개발 2.회원 도메인 실행과 테스트 3.주문과 할인 도메인 개발 4.주문과 할인 도메인 실행과 테스트 1.회원 도메인 개발 Member 엔티티 public class Member { private Long id; private String name; private Grade grade; public Member(Long id, String name, Grade grade) { this.id = id; this.name = name; this.grade = grade; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String ge.. 2020. 12. 31.
728x90