KSUG+자바카페 2013년 상반기 스터디

2013. 3. 16. 16:49Study/Study group

반응형


1. 스프링 설치
   - 이클립스 또는 STS 설치, 당연히 JDK는 기본!  
   - maven 다운로드 : http://maven.apache.org/download.cgi
2. maven project 생성
   - pom.xml에 dependency 추가
3. spring souurce site 소개 : http://www.springsource.org/

4. github 에서 bean설정 가져오기


4. Bean 만들어보기 소스코딩
  


5. 여러가지 다양한 주입 테스트!! gooood~~~^0^ 그동안 쌓였던..DI...풀렸다!! ㅋㅋ

메인 부분..

 public class BeanTestBySpring {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub

  MacBook book = new MacBook();
  //Dev dev= new Dev(book);
  
  //dev.setBook(book);
  
  //dev.takeMac(book);
  System.out.println("#### get context ####");
  ApplicationContext context = new ClassPathXmlApplicationContext("example01.xml");
  
  Dev dev = (Dev)context.getBean("dev");
  //dev.setBook(book);
  System.out.println("setter test : "+dev.getBuyer());
  System.out.println("#### Finish ####");
  
 }

}


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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 여기까지가 빈 선언 -->
<!-- 스프링 컨테이너를 설정할 수 있는 다양한 XML 네임스페이스가 있음
aop : 애스팩트 선언을 위한 엘리먼트와 @AspectJ 애노테이션이 적용된 클래스르 자동으로 스프링 애스펙트로 프록시하는 엘리먼트를 제공함.
beans : 핵심 원시 스프링 네임스페이스로, 빈의 선언과 연결 방법을 정의할 수 있음.
context : 스프링에 의해 직접 관리되지 않는 객체의 주입과 빈을 오토디텍트(autodetect)하고 오토와이어링(autowiring)하는 기능을 포함하여 스프링 애플리케이션 컨텍스트를 설정하기 위한 엘리먼트를 제공함.
jee : JNDI와 EJB 등의 Java EE API와의 통합을 제공함.
jms : 메시지 드리븐 POJO를 선언하기 위한 설정 엘리먼트를 제공함.
lang : Groovy, JRuby, 또는 BeanShell 스크립트로 구현되는 빈의 선언을 가능하게 함.
mvc : 애노테이션 지향 컨트롤러, 뷰 컨트롤러, 그리고 인터셉터 등의 스프링 MVC 기능을 가능하게 함.
oxm : 스프링의 객체-XML 매핑 구조의 설정을 지원함.
tx : 선언적 트랜잭션 설정을 제공함.
util : 유틸리티 엘리먼트의 다양한 선택. 컬렉션을 빈으로 선언하는 기능과 프로퍼티 대치(placeholder) 엘리먼트에 대한 지원을 포함. -->

<bean id="dev" class="Dev">
<property name="book" ref="macBook"/>
<property name="buyer" value="parktaeha"/>
<!-- <constructor-arg ref="macBook"/> -->
</bean>

<bean id="macBook" class="MacBook"/>

</beans>


class 부분

 
public class Dev {
 
 private MacBook book; // 3가지 주입 방식 생성자, setter, parameter
    private String buyer;
 

 public Dev(){}


 /**
  * 생성자 주입
  * @param book
  */
 public Dev(MacBook book) {
  super();
  System.out.println("#### constructor Injection ####");
  this.book = book;
 }
 

    /**
     * setter 주입
     * @param book
     */
 public void setBook(MacBook book) {
  System.out.println("#### setter Injection ####");
  this.book = book;
 }
 
 /**
  * parameter 주입
  * @param book
  */
 public void takeMac(MacBook book){
  this.book = book;
 }
 
 public void setBuyer(String buyer) {
  this.buyer = buyer;
 }


 public String getBuyer() {
  return buyer;
 }
 
}


결과
 #### setter Injection ####
setterparktaeha
#### Finish ####

굳...ㅠ.ㅠ...

반응형