일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 컴파일 타임 상수
- 은행원알고리즘
- intelij spring config
- 편향된 지수
- 기본키 전략
- 티스토리챌린지
- application layer
- @Autowired
- 백준
- Git
- 리눅스
- JDBC
- 알고리즘
- 오블완
- JPA
- 쿠키
- @SubscribeMapping
- m:n
- DTO
- spring
- 무한정 대기
- API
- compgen
- 런타임 상수
- 커밋 되돌리기
- 쉘 스크립트
- allocationSize
- BindingResult
- 파이썬
- 프로그래머스
- Today
- Total
목록SPRING (23)
둘셋 개발!
의존관계 주입은 4가지 방법이 있다. 1. 생성자 주입 2. 수성자 주입 (setter) 3. 필드 주입 4. 일반 메서드 주입 결론적으로 말하자면 생성자 주입을 쓰는 것이 바람직하다! 생성자 주입을 해야하는 이유 1. 의존관계는 불변해야 함 : 대부분 의존관계 주입은 한 번 일어나면 종료시 까지 변하지 않는다. 따라서 생성자는 딱 1번만 호출되기 때문에 생성자 주입이 알맞다 2. 의존관계 주입을 누락할 일이 없음 : 생성자 주입을 사용하면 주입 데이터가 누락 시 컴파일 오류가 발생한다. 3. final 사용 가능 : 필드에 final키워드를 사용하게 되면 생성자에서 그 필드를 초기화 시켜주어야만 컴파일 오류가 발생하지 않는다. 따라서 오류를 컴파일 시험에 막아준다. 생성자 주입을 한 모습 @Compon..
스프링 빈을 등록할 때 @Bean을 일일이 붙여주었다. 하나하나 붙여주어야 하기 때문에 귀찮기도 하고 누락되는 경우도 생긴다. 그래서 스프링에서는 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 그리고 의존관계를 자동으로 주입하는 @Autowired이라는 기능도 제공한다. 컴포넌트 스캔 적용 방법 1. @ComponetnScan을 설정 정보에 붙여준다. @Configuration @ComponentScan public class AutoAppConfig { } 2. 스프링 빈으로 등록할 클래스에 @Component 애노테이션을 붙여주고 의존관계 주입은 생성자에 @Autowired를 붙여준다. 예시) @Component public class MemberService..
우선 싱글톤 컨테이너를 알아보기 전에 싱글톤이 무엇인지 살펴보자 싱글톤 패턴 : 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다 순수한 DI컨테이너의 경우 요청을 할 때마다 객체를 생성하기 때문에 메모리 낭비가 발생하는 등의 문제가 발생한다. 다음은 싱글톤 패턴을 쓴 예시코드이다. public class SingletonService { //1. static 영역에 객체를 딱 1개만 생성해둔다. private static final SingletonService instance = new SingletonService(); //2. public으로 열어서 객체 인스터스가 필요하면 이 static 메서드를 통해서만 조회하도록 허용한다. public static SingletonServ..
스프링 컨테이너와 스프링 빈 스프링 컨테이너는 @Configuration이 붙은 클래스를 설정(구성) 정보로 사용한다. 그 안에서 @Bean이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다. 이때 등록된 것이 스프링 빈이다. 그림으로 살펴보면 먼저 구성 정보(AppConfig.class)를 지정한 스프링 컨테이너를 생성하고, 만들어진 스프링 컨테이너에는 key, value의 형태로 빈 이름과 빈 객체를 저장한다. 다음은 스프링빈을 등록한 컨테이너의 모습이다. 여기서 주의할 점은 스프링 빈이름은 중복이 절대 불가하다는 것이다. 그리고 스프링 컨테이너에서 빈의 의존관계를 주입할 때는 설정 정보를 참고한다. 스프링 빈을 등록할 때 생성자를 호출하면서 의존관계 주입도 한번에 처리가 된다..