Spring
-
Spring Annotation 훑어보기.Spring 2018. 4. 16. 21:05
@Configurable 도메인 객체는 bean이 아니지만, 도메인 객체에 DAO나 Repository를 주입시켜주어야 하는 경우가 있다. 하지만 Dependency Injection을 사용하려면 스프링이 관리하는 Bean 이여야 한다. 도메인 객체들의 생성을 스프링 컨테이너가 관리할 수 없다. 이 객체들은 애플리케이션 동작 중에 생성 되기 때문에, 스프링이 생명주기를 관리할 bean으로 등록하여 사용할 수 없다. 이럴 때 사용하는 것이 @Configurable 애노테이션이다. 이 애노테이션이 붙어있는 클래스를 스프링에 등록해두면, 스프링은 객체가 생성될 때 그 객체가 필요로 하는 Bean들을 주입해준다. @Resource @Resource 애노테이션은 bean name 으로 의존 주입을 하고자 하는 경..
-
토비의 스프링 3.1 - 프로퍼티 소스Spring 2017. 8. 6. 22:26
토비의 스프링 3.1의 내용을 요약한 자료입니다. 개념적인 설명만 요약하였으며 개념의 이해를 돕는 구체적인 코드 및 예제를 살펴보시려면 책을 참조하시기 바랍니다. 포스팅한 내용이 저작권의 문제가 발생할 수 있는 경우 게시물은 삭제/비공개 처리 될 수 있습니다. @PropertySource - 프로퍼티에 들어갈 DB 연결정보는 텍스트로 된 이름과 값의 쌍으로 구성되면 된다. - 프로퍼티 파일의 확장자는 보통 properties이고, 키=값 형태로 프로퍼티를 정의한다. 1 2 3 4 db.driverClass=com.mysql.jdbc.Driver db.url=jdbc:mysql://localhost/springbook?characterencoding=UTF-8 db.username=spring db.pas..
-
토비의 스프링 3.1 - 프로파일Spring 2017. 8. 5. 16:38
토비의 스프링 3.1의 내용을 요약한 자료입니다. 개념적인 설명만 요약하였으며 개념의 이해를 돕는 구체적인 코드 및 예제를 살펴보시려면 책을 참조하시기 바랍니다. 포스팅한 내용이 저작권의 문제가 발생할 수 있는 경우 게시물은 삭제/비공개 처리 될 수 있습니다. @Profile과 @ActiveProfiles - 스프링 3.1은 환경에 따라 빈 설정정보 파일을 여러개 쪼개고 조합하는 번거러운 방법 대신 간단히 설정정보를 구성할수 있는 방법을 제공한다. - 실행 환경에 따른 빈 구성이 달라지는 내용을 프로파일로 저으이해서 만들고 실행 시점에 어떤 프로파일의 빈 설정을 사용할지 지정할 수 있다. - 프로파일을 간단한 이름과 빈 설정으로 구성된다. @Configuration @Profile("test") publ..
-
토비의 스프링 3.1 - 컨텍스트 분리와 @importSpring 2017. 8. 5. 16:01
토비의 스프링 3.1의 내용을 요약한 자료입니다. 개념적인 설명만 요약하였으며 개념의 이해를 돕는 구체적인 코드 및 예제를 살펴보시려면 책을 참조하시기 바랍니다. 포스팅한 내용이 저작권의 문제가 발생할 수 있는 경우 게시물은 삭제/비공개 처리 될 수 있습니다. 테스트용 컨텍스트 분리 - DI 설정정보를 테스트용/애플리케이션 용으로 분리하는 방법은 간단하다. DI 설정 클래스를 추가하고 관련된 빈 설정 애노테이션, 필드, 메소드를 옮기면 된다. - 하나 이상의 설정 클래스가 사용하게 하려면 classes에 적용할 설정 클래스를 모두 나열해 주면 된다. classes는 배열 타입이므로 클래스를 하나 이상 지정할 수 있다. 1 2 3 @RunWith(SpringJUnit4ClassRunner.class) @C..
-
토비의 스프링 3.1 - 빈 스캐닝과 자동와이어링Spring 2017. 8. 5. 14:48
토비의 스프링 3.1의 내용을 요약한 자료입니다. 개념적인 설명만 요약하였으며 개념의 이해를 돕는 구체적인 코드 및 예제를 살펴보시려면 책을 참조하시기 바랍니다. 포스팅한 내용이 저작권의 문제가 발생할 수 있는 경우 게시물은 삭제/비공개 처리 될 수 있습니다. @Autowired를 이용한 자동와이어링 - @Autowired는 스프링 컨테이너가 생성한 빈을 클래스의 멤버 필드로 주입받기 위해 사용한다. - 자바 코드를 통해 클래스로 정의한 빈 오브젝트는 @Autowired를 붙여줌으로 빈 오브젝트를 주입할 수 있다. - @Autowired가 분은 수정자 메소드가 있으면 파라미터 타입을 보고 주입 가능한 타입의 빈을 모두 찾는다. 주입 가능한 빈이 하나라면 스프링이 수정자 메소드를 호출해서 넣어주고 두 개 ..
-
토비의 스프링 3.1 - 자바 코드를 이용한 빈 설정Spring 2017. 8. 5. 12:19
토비의 스프링 3.1의 내용을 요약한 자료입니다. 개념적인 설명만 요약하였으며 개념의 이해를 돕는 구체적인 코드 및 예제를 살펴보시려면 책을 참조하시기 바랍니다. 포스팅한 내용이 저작권의 문제가 발생할 수 있는 경우 게시물은 삭제/비공개 처리 될 수 있습니다. 자바 코드를 이용한 빈 설정 - XML을 애노테이션과 자바 코드로 대체할수 있다. XML은 자바 코드로 만든 오브젝트 팩토리 기능을 프레임워크의 도움을 받아 간략한 방식으로 표현한 것이다. - XML대신 사용할 클래스에 @Configuration 애노테이션을 붙여준다. - DI를 위해 클래스를 사용하면서 동시에 XML DI 정보를 가져오기 위해서는 @ImportResource 애노테이션을 이용한다. - 은 @Bean이 붙은 public 메소드로 만..
-
토비의 스프링 3.1 - 자바 언어의 변화Spring 2017. 8. 3. 23:05
토비의 스프링 3.1의 내용을 요약한 자료입니다. 개념적인 설명만 요약하였으며 개념의 이해를 돕는 구체적인 코드 및 예제를 살펴보시려면 책을 참조하시기 바랍니다. 포스팅한 내용이 저작권의 문제가 발생할 수 있는 경우 게시물은 삭제/비공개 처리 될 수 있습니다. 자바 언어의 변화 ( 애노테이션의 메타정보 활용 ) - 자바는 소스코드가 컴파일 된후 클래스 파일에 저장됐다가, JVM에 의해 메모리로 로딩되어 실행된다. - 자바 코드는 실행되는 것이 목적이 아니라 다른 자바 코드에 의해 데이터처럼 취급되기도 한다. - 자바 코드의 일부를 리플렉션 API등을 이용해 어떻게 만들어 졌는지 살펴보고 그에 따라 동작하는 기능이 점점 많이 사용되고 있다. - 애노테이션은 애플리케이션 핵심 로직을 담은 자바 코드와 IoC..
-
토비의 스프링 3.1 - 인터페이스 상속을 통한 안전한 기능확장Spring 2017. 8. 3. 20:36
토비의 스프링 3.1의 내용을 요약한 자료입니다. 개념적인 설명만 요약하였으며 개념의 이해를 돕는 구체적인 코드 및 예제를 살펴보시려면 책을 참조하시기 바랍니다. 포스팅한 내용이 저작권의 문제가 발생할 수 있는 경우 게시물은 삭제/비공개 처리 될 수 있습니다. DI와 인터페이스 프로그래밍 - DI를 적용할때 가능한한 인터페이스를 사용하게 해야 한다. - 인터페이스를 사용하는 첫 번재 이유는 다형성을 얻기 위해서다 - 다향성을 편리하게 적용하는것 때문이라면 클래스를 사용할 수도 있다. - 그럼에도 인터페이스를 사용하는 이유는 인터페이스 분리 원칙을 통해 클라이언트와 의존 오브젝트 사이의 관계를 명확하게 해줄수 있다. - 인터페이스는 하나의 오브젝트가 여러 개를 구현할 수 있으므로, 하나의 오브젝트를 바라보..