ApplicationContext extends EnvironmentCapable. 프로파일 ApplicationContext 상속받는 것중 EnvironmentCapable에 대해서 살펴보자 프로파일 기능이란, 운영을 유지보수하면서 추가적인 요구사항에서 대해 배포를 진행하게 된다면, 단계적인(local, test, stage) 서버 배포 후 최종적으로 테스트가 완료되면 운영(prd) 서버에 배포하게 된다. 이 때, 각 서버마다 필요로 하는 Bean과 특정 환경에서만 Bean을 등록해야하는 경우, 또는 접근 URL을 다르게 하는 경우를 구별하기 위해 사용하는 것이 프로파일이다. 프로파일 정의해보자 프로파일 정의하는 방법을 소스를 통해 살펴보자 (총 두가지 방법이 있다.) //1. Configuration..
Bean의 Scope Bean의 Scope 싱글톤 싱글톤이란 같은 타입의 객체를 여러개 생성해도 같은 동일한 객체가 생성되는 것이다. 즉, 하나의 객체만이 생성되는 것을 말한다. 기본적으로 Bean은 싱글톤 Scope으로 되어있다. 프로토타입 프로토타입이란 같은 타입의 객체를 여러개 생성할 시 각각 새로운 객체가 생성되는 것이다. 프로토타입 Scope로 지정하고 싶다면 해당 객체에 @Scope("prototype")을 지정해주면 된다. Request Session WebSocket 싱글톤과 프로토타입을 섞어서 쓴다면 문제가 발생하지 않을까? 프로토타입 객체에서 싱글톤 타입을 사용한다면은 문제가 발생하지 않을 것이다. @Component @Scope("prototype") public class Proto..
@Component와 컴포넌트 스캔 컴포넌트 스캔의 주요 기능 스캔하고자 하는 위치를 설정할 수 있다. 즉, 어디서부터 어디까지 스캔할 것인지를 설정하는 것이다. @filter를 사용하여 어떤 어노테이션을 스캔할 건지 아니면 안 할건지를 정할 수 있다. @SpringBootApplication @SpringBootApplication이 위치한 패키지 안에 있는 것들만 스캔한다. 즉, 해당 패키지 안에 있는 것들만 Bean으로 등록할 수가 있다. @filter 현재 @SpringBootApplication은 TyeExcludeFilter.class와 AutoconfigurationExcludeFilter.class를 Bean등록에 제한하고 있다. 기본적으로 스캔되는 어노테이션 @Component에 해당하는..
@Autowired 필요한 의존 객체의 "타입"에 해당하는 Bean을 IoC 컨테이너에서 찾아 주입하는 것이다. @Autowired를 사용할 수 있는 위치는 총 세가지 있다 생성자, setter, field 생성자에 붙여서 사용하는 것 부터 살펴보자 //CustService 객체 @Service public class CustService { CustRepository custRepository; @Autowired public CustService(CustRepository custRepository) { this.custRepository = custRepository } } //CustRepoistory 객체 @Repository //@Repository를 붙이는 이유는 @Repository가 붙여..
Application Context와 여러 Bean 설정 방법 Application Context는 빈들을 설정하고 어디에 의존성을 주입할 건지를 정의하는 것이다. 빈을 설정하는 방법들을 살펴보자 첫번째로는 xml을 사용하는 방식이다. 그 후 main에서 ApplicationContext를 활용해서 빈을 가져와 사용하면 된다. (의존성 주입) public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("application.xml"); String [] beanDefinitionNames = context.getBeanDefinitionNames(); System.out.pri..
스프링 IoC 컨테이너와 빈 IoC 컨테이너란 BeanFactory Bean 설정 및 정의를 읽어들이고, Bean을 구성하고 제공하는 것이다. Bean이란 IoC 컨테이가 관리하는 객체를 말한다. Bean은 IoC 컨테이너에 의해 인스턴스화되고, 관리된다. IoC 컨테이너에 의해 인스턴스화 된 Bean은 getBean을 통해 가져와 사용할 수 있고, @Autowired라는 어노테이션을 사용하여 의존 객체(IoC 컨테이너에 의해 생성된 객체)를 주입받을 수도 있다. IoC 컨테이너와 Bean 스프링 IoC 컨테이너에 등록되어 있는 Bean들은 Scope 자체가 싱글톤으로 구성되어 있다. 라이플사이클 인터페이스 제공 Bean이 만들어지는 시점에서 클라이언트가 임의적으로 하고 싶은 행동을 주입할 수 있다. E..
- Total
- Today
- Yesterday
- 점층적 생성 패턴
- Spring
- @Lazy
- 연관관계
- 빈 순환 참조
- JPA
- 스프링부트
- package-private
- 정적팩터리메서드
- ifPresent
- 이펙티브자바
- 팩토리 메소드 패턴
- 김영한
- 빌더 패턴
- java
- flatMap
- junit
- try catch finally
- mustache
- java8
- 자바8
- 생성자
- 복사 팩토리
- 인프런
- springboot
- Effective Java
- 이펙티브 자바
- jdk버전
- effectivejava
- try with resources
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |