목록분류 전체보기 (22)
여우비오냐의 IT 기술

➤ MessageSource 인터페이스를 이용해 다양한 다국어 메세지 (입력 값에 따른 다른 String Form 출력) ➤사용법 : 1. 다른 언어의 properties 파일 설정 2. Bean 설정 파일에 ReloadableResourceBundleMessageSource 선언 3. 호출 4. 실행 결과

➤ @PropertySource 와 PropertySourcesPlaceholderConfigurer 클래스를 이용해서 Bean 구성 전용 Property 파일의 내용 (키 - 값의 쌍) 을 읽을 수 있다. ➤ 사용법 : 1. Bean 설정 파일에 @PropertySource(“classpath:”) 2. 받아 올 변수 선언 밑 어노테이션으로 @Value(“${:}”) 3. PropertySourcesPlaceholderConfigurer를 빈으로 선언 -결과 : ➤ 다음과 같이 비슷하게 모든 외부 리소스를 Resource로 읽어 올 수 있다. 출력 결과 :

@Component, @Configuration 은 실제 instance 를 생성하는것이 아닌 Bean 생성 템플릿. 즉, 부품 조립 할 때 부품의 주문서 만을 정의하는것이다. 실제 객체는 getBean() 메소드로 직접 참조하거나, 다른 Bean에서 참조할 때 생성된다. ➤ Bean 스코프란? - Spring은 IoC 컨테이너에 선언한 Bean마다 정확히 Unique한 객체 하나씩만을 생성하고 전체 컨테이너 스코프에 공유되게 된다. 따라서 Bean을 참조하면 이렇게 유일무이한 객체가 반환되게 되는것인데, 이 때의 스코프를 기본 스코프인 singleton 이라고한다. singleton IoC 컨테이너당 Bean 인스턴스 하나를 생성 prototype 요청할 때마다 Bean 인스턴스를 새로 만듦 reque..

➤ 컨테이너에 등록되어 있는 Bean 들중 @Autowired로 명시한 클래스 타입과 같은 것을 자동적으로 연결한다. 주의) 똑같이 컨테이너에 Bean 으로 등록되어 있는 것끼리만 가능하다. ➤ 예제 @Autowired를 붙인 곳에 해당 하는 Bean을 찾지 못하였다면 예외를 던지게 된다. 위와 같은 상황을 방지하기 위해 다음과 같이 속성값을 줄 수 있다. ➤ Autowired 의 한계 후보 Bean 이 여럿 있으며 프로퍼티가 그룹형 (List, 배열, Map) 등이 아닐 때 제대로 연결되지 않는다. ➤ 후보 타입의 Bean이 여럿이라면 ( @Primary / @Qualifier / @Resource / @Inject) 1. @Primary -특정한 Bean에 우선권을 부여하는 어노테이션 2. @Qual..

[1. Bean] 간단하게 비교하면 자바의 객체(Object)와 같다. Spring의 컨테이너에서 생성되고 관리하는 객체들을 Bean 이라 부른다. [2. Bean을 컨테이너에 등록시키는 법] - Bean 설정 파일을 이용 XML 파일 @Configuration - @Component [3. 무엇을 Bean으로?] ➤ 무엇을 Bean 으로 등록하고 사용할까? ==> POJO (Plain Old Java Object) 클래스 ➤ POJO 클래스 - getter / setter 만 있는 간단한 자바 클래스 (MVC의 Model 에 해당하는 것들) Spring 은 개발자가 IoC 컨테이너라는 곳에 의존성을 가지는 클래스의 객체를 Bean 으로써 올려 두면 Spring 이 Bean 설정 파일을 토대로 그 객체의..

[1. 왜 의존 주입이 필요할까?] 위와 오른쪽과 같이 A 서비스에서 B2라는 새로운 클래스로 DAO 소스 코드가 새로 만들어진다면? 오른쪽 소스코드에 private B1 b1; /// b1 = new B1(); 위 부분을 다 수정해야 된다. 딱 봐도 클래스간에 의존성이 너무 높다! 그래서 나온 방법 2가지! 1. DAO를 묶을 interface B를 만들고 그것을 A에서 사용하고, B1, B2에서 B를 구현 (추상화) 2. A에서 interface B에 대한 의존성을 외부에서 주자 (의존 주입) [2. 의존 주입의 종류] Setter Injection Construct Injection Spring 에서는 위와 같은 과정을 개발자가 아닌 Spring이 대신 진행해준다. 쉽게 비유하면 “ 내가 만든 클래..