반응형
SMALL

분류 전체보기 205

DI Java Code

- xml 파일을 자바 클래스로 나타낸 것 - xml 방식의 문제점을 자바 코드 방식이 해결 ★ @Configuration - 클래스명 위에다가 - 이게 붙으면 이 클래스를 bean 설정 정보 파일로 사용할거야~ - 그니까 xml 같은거지~ - 이것도 필요 없음 메인 에서 ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); SpringIdol springIdol = context.getBean("springIdol", SpringIdol.class); SpringIdol.run(); ===> @Configuration을 붙인 클래스가 설정 파일이니까 그 클래스를 파라미터에 넣어줌 ===> 그러면 똑..

SPRING 2019.03.27

DI Annotation

- Spring에서의 annotation 활용 : Dependency Injection (bean wiring) : Bean 탐색 및 등록 : Java code 기반 설정 - annotation을 처리하려면 BeanPostProcessor가 필요 : 번거로운 방법 - BeanPostProcessor 객체를 설정 파일에 bean으로 등록 : 일반적인 방법 - xml 파일에 입력 - annotation은 일종의 인터페이스로 선언되어 있음 ★ @Required - setter 메소드 앞에 사용 - property의 값 또는 의존 객체가 반드시 설정되어야 함 - 설정되지 않으면 BeanInitializationException - 그니까 bean 설정하면서 제대로 주입했나 코드 안빼먹었나 확인할 수 있으니까 좋..

SPRING 2019.03.25

Auto-wiring

에 따로 autowire 속성 쓰면 각 객체마다 auto-wiring 에 default-autowire 속성 쓰면 모든 객체에 한번에 auto-wiring 근데 뭐 이렇게해도 특정한 객체에 따로 걸기도 가능 1. byName- 주입받을 객체(name)와 주입될 객체(ref) 이름이 같으면 그거보고 이름을 기반으로 알아서 주입해라- - 값은 (String song 이런거) 생략 불가능해 무조건 이런식으로 써줘야해 2. byType- - constructor - 자동 설정을 적용하되, (일부)property에 대해 명시적으로 설정- 와 에서 명시적인 설정은 항상 auto-wiring보다 우선 적용됨 byName, byType: 주입 가능한 bean이 없으면 에러는 안나고 주입 안함 byType, constr..

SPRING 2019.03.25

DI XML / SpEL (property 방식)

- Spring Expression Language (SpEL): 값이나 객체를 bean의 property나 생성자 인자로 전달하는 간결한 방법 제공: #{...}: ID를 통해 bean 참조가 가능: Bean의 property를 접근하거나 메소드 호출 가능: 산술, 관계, 논리 연산 지원: 정규식을 이용한 값 매칭: Collection 처리 : #{...} 주로 이 안에 값 자체가 들어감 : 만약 객체가 들어가는거면 #{...} 이 안에 객체가 직접 들어가는게 아니고 ...라는 id를 갖는 객체를 주입하겠다~ 라는 뜻// id가 piano인 객체를 주입하겠다. : 어떤 객체가 가지고 있는 필드를 인자로? 주입하겠다~// kenny가 가지고 있는 song을 주입하겠다.// 주의! 만약 song이 priv..

SPRING 2019.03.19

DI XML / Collection Wiring (property 방식)

- Bean property가 Collection type인 경우- DI 설정 시 collection 객체를 직접 정의하여 주입- 주로 여러개의 객체를 주입할 때 사용! - collection 정의 : 똑같은 원소 2번 이상 가능 : 중복 불가능. 알아서 제거 : name, value- 의 하위 엘리먼트로 사용 ... - collection 원소 정의- 등의 하위 엘리먼트로 사용nang # List Type- xml에서 list인지 set인지 정하고 .java에서는 Collection 써주기- 중복 참조 가능- 클래스에서(.java) 밑의 경우의 타입으로 선언된 경우에만 사용 가능// CollectionCollection instruments;// ListList instruments;// 배열Instr..

SPRING 2019.03.19

DI XML / 의존 관계 설정 2 (property 방식)

# 의존 관계 설정 2 - property 방식 = setter 방식 - setter 메소드 통해 의존 객체 주입- Bean class에 property에 대한 setter 메소드가 정의되어 있어야 함---> 그니까 걍 필드건 뭐건 세터 메소드 정의하라는 뜻- 클래스에(.java) 이 방식이면 생성자는 없어도 되는데 기본 생성자는 있어야 함ex) public Instrumentalist() {}- 필드 정의하고 바로 setter * 효과- 컨테이너는 property로 전달할 의존 객체(B)를 먼저 생성(생성자 방식은 A 먼저 생성)...? - https://conanglog.tistory.com/16?category=320753 - 객체가 먼저 만들어져 있어야(기본 생성자가 있어야하는 이유) proper..

SPRING 2019.03.19

DI XML / 의존 관계 설정 1 (생성자 방식)

# Bean 객체 획득 ApplicationContext ctx = new ClassPathXmlApplicationContext("com/springinaction/springidol/spring-idol.xml");//이게 컨테이너를 생성하는 코드야//컨테이너로부터 특정 bean 객체의 참조 정보를 가져옴//첫번째 방법//id로만 가져오면 Object 타입으로 변환된다. 따라서 타입캐스팅 꼭 해줘야한다.Performer performer = (Performer) ctx.getBean("duke");//두번째 방법//타입을 지정하기때문에 타입캐스팅 필요 없다.Performer performer2 = ctx.getBean("duke", Performer.class);// 두가지 방법의 결과는 같음// P..

SPRING 2019.03.18

Spring Container

* 핵심 기능 - Spring 빈 객체의 life-cycle 관리 빈 객체 생성, 초기화, 이용, 삭제- Dependency Injection 빈들 간의 의존 관계에 따라 빈 객체들을 연결 (참조 관계 생성 ---> bean wiring) * 컨테이너 종류 (Interfaces) ① BeanFactory- 최상위 부모 역할- 객체를 생성하고 DI를 처리하는 기본적인 기능 제공- org.springframework.beans.factory.BeanFactory ② ApplicationContext- BeanFactory를 확장하여 다양한 부가 기능을 추가 제공- Annotation 기반 설정, Java code 기반 설정, 웹 개발 관련 기능, 트랜잭션 처리, 메시지 처리 등- org.springframe..

SPRING 2019.03.18

AOP (Aspect-Oriented Programming)

★ AOP( Aspect-Oriented Programming)* AOP란?- 관점(관심) 지향 프로그래밍- 소프트웨어의 요구사항을(각 기능을) 핵심 기능과 부수적 기능으로 분할하여 개발 후 통합- S/W 시스템 내부의 관심사들을 서로 분리 시킴 ---> 독립적 개발 후 결합- 공통 기능(시스템 서비스)을 별도로 모듈화하여 구현하고 Aspect(일종의 주입)를 통해 (얘가 중간에서 처리) 비즈니스 클래스에 선언적으로 적용- 비즈니스 로직 실행 전이나 후에 공통 기능 모듈을 실행시킴- 모듈화를 극대화하는 개발 방법- OOP(Object-Oriented Programming)의 한계 극복--> 모듈화를 잘 하더라도 부수적 기능이 핵심 기능에 포함 됨- OOP와 달리 분리하면 핵심 기능에서 부수적 기능을 직접..

SPRING 2019.03.18
반응형
SMALL
반응형
LIST