2014년 12월 11일 목요일

[spring framework3.2 강좌]Spring IoC(ApplicationContext)[JAVA/JSP/Spring/JDBC/자바프레임워크/스프링기초실무학원/전액무료교육]

ApplicationContext 인터페이스는 

BeanFactory의 모든 기능 제공(BeanFactory 인터페이스를 상속)
권장하는 방식으로 스프링 DI 뿐 아니라 트랜잭션, AOP 서비스국제화를 위한 메시지 소스애플리케이션 이벤트 처리
Spring Framework2.5 이상부터 ApplicationContext 설정시 자바 애노테이션을 지원
XML ? Annotation 방식
  - XML 설정 방식을 쓰면 모든 설정을 자바코드로  외부 XML에 
  애노테이션 방식의 경우 자바코드 내에서 DI 설정을 정의
  둘 동시에 사용되는 경우 XML 설정이 우선
  주로 데이터소스트랜잭션매니저, JMX, JMS커넥션팩터리등 앤플리케이션
          인프라스트럭처에는 XML 파일에 저장하고 DI 설정은 애노테이션에서 정의.
Context 시작 시 모든 Singleton Bean을 미리 로딩(preloading) 시킴->a 초기에 설정 및 환경에 대한 에러 발견 가능함
다수의 ApplicationContext 구현 클래스 제공다양한 Resource 로딩 방법 제공
(XmlWebApplicationContext,FileSystemXmlApplicationContext,ClassPathXmlApplicationContext)
org.springframework.context
Spring의 AOP기능메시지 자원 핸들링이벤트 위임웹 어플리케이션에서 사용하기 위한 WebApplicationContext와 같은 특정 어플리케이션 컨텍스트를 이용한 통합과 같은 다른 기능을 추가 제공한다

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<description>Example configuration to get you started.</description>
<context:annotation-config/>
<context:component-scan base-package="onj.mall.app/>
</beans>


- beans를 기본 네임스페이스로 설정
- context 네임스페이스 ApplicationContext 설정지원
- 네임스페이스 세터주입을 게 하기 위한 DI설정 제공
- c 네임스페이스 생성주입을 쉽게 하기 위한 DI설정 제공
- util 네임스페이스 : DI설정에 유용한 유틸리티 제공


아래는 그 예제 이니 참고하자.
1

[CarMaker 인터페이스]
package onj.mall.app;

public interface CarMaker {
public Car sell(Money money);
}



[Car 클래스]
package onj.mall.app;

public class Car {
private String name; 
  public Car(String name) {
     this.name = name;
  }
  public String getName() { 
     return this.name; 
  }
  public void setName(String name) {
     this.name  = name; 
  }
}



[Money클래스]
package onj.mall.app;

import org.springframework.stereotype.Service;

@Service("money")
public class Money {
private int amount; 
  public Money() {}

public Money(int amt) {
this.amount = amt;
}

public int getAmount() {
return this.amount;
}

public void setAmount(int amt) {
this.amount = amt;
}
}



[Audi 클래스]
package onj.mall.app;

import org.springframework.stereotype.Service;

@Service("audi")
public class Audi implements CarMaker{
public Car sell(Money money) { 
    money.setAmount(1000);
    Car car = new Car("Audi A6");
    return car;
  }
}



[/META-INF/spring/app-context.xml]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<description>Example configuration to get you started.</description>

<context:annotation-config/>
<context:component-scan base-package="onj.mall.app" />
</beans>



[AnnotationExam.java]
package onj.mall.app;

import org.springframework.context.support.GenericXmlApplicationContext;

public class AnnotationExam {
public static void main(String[] args) {
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
ctx.load("classpath:META-INF/spring/app-context.xml");
ctx.refresh();
CarMaker carMaker = ctx.getBean("audi", Audi.class);
Money money = ctx.getBean("money", Money.class);
money.setAmount(1000);
Car c = carMaker.sell(money);
System.out.println("I sold a car... " + c.getName());
}


[결과]
I sold a car... Audi A6



 [100%환급,실무전문]SQL/빅데이터/자바/스프링/웹퍼블리싱/안드…오라클자바…12-272810
 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육…오라클자바…12-112043
53 [평일100%환급7건]웹퍼블리싱,자바&JSP,안드로이드,C#닷넷,SQL기… 오라클자바…03-151867
52 [주말]C#,ASP.NET마스터 오라클자바…01-312024
51 [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… 오라클자바…01-312988
50 [주말주간]자바&웹,jQUERY,스프링프레임워크,마이바티스 오라클자바…01-311560
49 [평일주간/야간,주말주간/야간]Spring,MyBatis,Hibernate개발자… 오라클자바…01-191882
48 [평일주간/야간,주말주간/야간]안드로이드개발자과정(Adnroid 교… 오라클자바…01-111756
47 [평일야간,주말주간야간]JAVA,Network&JSP&Spring,MyBatis,Hiber… 오라클자바…01-032332
46 [100%환급,실무전문]SQL/빅데이터/자바/스프링/웹퍼블리싱/안드… 오라클자바…12-272810
45 [주말야간]개발자를위한PLSQL,SQL튜닝,힌트(토/일) 오라클자바…12-191969
44 [평일주간/야간,주말주간/야간]웹퍼블리싱 마스터(HTML5,CSS3,jQ… 오라클자바…12-141949
43 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육… 오라클자바…12-112043
42 [주말야간]JAVA,JSP,Spring,PLSQL,힌트,웹퍼블리싱,안드로이드,… 오라클자바…12-091589
41 [평일야간,주말야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011813
40 [기업100%환급]오라클&자바웹스프링신입과정3주(SQL,JAVA,JSP,Se… 오라클자바…12-012039
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011465

댓글 없음:

댓글 쓰기