본문 바로가기

SpringFramework Core - I. IoC 컨테이너/4. 의존성

(28)
4.2.12. 복합적인 Property 이름들 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-compound-property-names bean 프로퍼티를 세팅할 때, 복합적이거나 내포된 프로퍼티 이름들을 사용할 수도 있다. 마지막 프로퍼티의 이름이 null만 아니면 모든 컴포넌트의 경로를 다 집어 넣을 수도 있다. 다음 bean 정의를 참고하라. 'something'이라는 bean은 'fred'라는 프로퍼티를 갖는다. 그리고 fred는 'bob'이라는 프로퍼티를 갖는다. 그리고 bob은 'sammy'라는 프로퍼티를 갖는다. 그리고 그 마지막 sammy 프로퍼티가 '123'이라는 값으로 세팅된다. 이것이 작동하기 위해서..
4.2.11. c-namespace를 사용한 XML Shortcut 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-c-namespace 스프링 3.1에서 소개된 c-namespace는 p-namespace와 유사하게 'constructor-arg' 요소 없이, 인라인 속성으로 생성자 매개변수를 설정할 수 있게 해준다. 다음 예시는 'c:' namespace를 사용하여 생성자 기반의 의존성 주입과 같은 일을 하는 것을 보여준다. 'c:' namespace는 '-ref'에서 bean들의 이름을 활용해 생성자 매개변수를 세팅한다는 점에서 'p:'와 같은 방식으로 사용된다. 또한 비슷하게도, XSD 스키마에는 정의가 되어 있지 않지만 XML 파일 ..
4.2.10. p-namespace를 이용한 XML Shortcut 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-p-namespace p-namespace는 요소를 쓰지 않고도 bean요소의 속성을 사용할 수 있게 해준다. 이를 통해 프로퍼티 값이나 협력하는 bean들을 서술할 수 있다. 스프링은 namespace들을 통해 XML 스키마에 기반을 둔 확장된 설정 포맷들을 제공한다. 이번 챕터에서 논의하는 bean 설정 포맷들은 XML 스키마 문서에 정의되는 것이다. 그러나 p-namespace는 XSD 파일에 정의되어 있지 않으며, 오직 스프링의 core에만 존재한다. 다음 예시는 같은 결과를 가진 두 XML 부분들을 보여준다. 첫번째는 ..
4.2.9. Null과 Empty인 문자열 값들 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-null-element 스프링은 프로퍼티에 대한 빈 인자들을 빈 문자열처럼 취급한다. 다음 XML 기반의 설정 메타데이터는 email 프로퍼티에 빈 문자열인 ("")을 세팅한다. 위의 예시는 다음 자바 코드와 동일하다. exampleBean.setEmail(""); 요소는 null값과 대응된다. 다음은 그 예시다. 위의 예시는 다음 자바 코드와 동일하다. exampleBean.setEmail(null);
4.2.8. 엄격한 타입의 collection 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-collection-elements-strongly-typed 자바5에서 지네릭 타입이 소개됨에 따라, 엄격한 타입의 컬렉션을 사용할 수 있게 되었다. 즉, String 요소들만을 포함하는 컬렉션 타입을 선언할 수 있게 되었다. 만약 bean에 엄격한 타입의 컬렉션을 의존성으로 주입하기 위해 스프링을 사용한다면, 스프링의 타입 변환 지원을 통해 도움을 얻을 수 있다. 스프링의 타입 변환은, 엄격한 타입의 컬렉션 인스턴스가 가진 요소들이 컬렉션에 추가되기 전에 적절한 타입으로 변경시켜준다. 다음 자바 클래스와 bean 정의는 그 ..
4.2.7. Collection Merging의 한계 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-collection-merge-limitations Map과 List처럼, 다른 타입의 컬렉션은 합칠 수 없다. 만약 시도하면 예외가 발생할 것이다. merge 속성은 반드시 더 낮은 계층의 정의, 상속받은 정의, 더 자식인 정의들에서 이루어져야 한다. 부모 컬렉션 정의에 merge 속성을 설정하는 것은 불필요하며 바람직한 결과를 얻지 못하게 한다.
4.2.6. Collection 합치기 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-collection-elements-merging 스프링 컨테이너는 컬렉션을 합치는 기능도 제공한다. 애플리케이션 개발자는 부모 ,,,요소를 정의하고 자식 ,,,요소를 통해 부모 컬렉션의 값들을 상속하고 오버라이드 할 수 있다. 즉, 자식 컬렉션 요소들이 부모 컬렉션의 특정된 값들을 오버라이딩하고 있다면, 자식 컬렉션의 값들은 부모 컬렉션의 요소들과 자식 컬렉션의 요소들을 합한 결과와 같다. 이 merging 주제에서는 부모-자식 bean 메커니즘에 대해 논의한다. 부모와 자식 bean 정의에 대해 익숙치 않은 독자들은 관련된 ..
4.2.5. Collections 원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-collection-elements , , , 요소들은 자바 컬렉션 타입인 List, Set, Map, Properties에 대응하여 프로퍼티와 인자들을 세팅한다. 다음 예시를 통해 사용법을 알아보자. administrator@example.org support@example.org development@example.org 참조를 따라 넘어오는 list 요소 어떤 문자열 맵의 키, 값의 value 또는 set의 value는 다음 요소들 중 하나일 수 있다. bean | ref | idref | list | set | map |..