* 이클립스에 사용자 라이브러리 등록한 것 불러다 쓰기

 

 

 

 

'프로그래밍 > 개발프로그램 설치하기' 카테고리의 다른 글

Spring AOP 사용하기  (0) 2012.06.22
Spring ibatis연동하기 설정  (0) 2012.06.21
Spring api api폴더에 옮기기  (0) 2012.06.19
Spring IDE 이클립스 Plugin 설정  (0) 2012.06.19
Spring설치하기  (0) 2012.06.19
Posted by 조은성
,

 

 

 

 

 

 

Posted by 조은성
,

* Spring 설정파일

1. String Container가 어떻게 일할 지를 설정하는 파일

 - Spring container는 설정파일에 설정된 내용을 읽어 Application에서 필요한 기능들을 제공한다.

2. XML기반으로 작성한다.

3. Root tag는 <beans> 이다

4. 파일명은 상관없다.

예) applicationContext.xml
<?xml version = "1.0" encoding="utf-8">
<beans  설정></beans>

* Bean 객체 주입 받기

1. 주입 할 객체를 설정파일에 설정한다.
 - <bean> : 스프링컨테이너가 관리할 Bean객체를 설정
   - 기본 속성
     - name : 주입 받을 곳에서 호출 할 이름 설정
     - id : 주입 받을 곳에서 호출할 이름 설정('/' 값으로 못 가짐)
     - class : 주입할 객체의 클래스
     - factory-method : 객체를 생성해 주는 factory메소드 호출 시 -> 주로 싱글턴 패턴 구현 클래스 객체 호출 시

<beans>
<bean id="dao" class="spring.dl.model.MemberDAO"/>
</beans>

2. 설정 파일에 설정한 내용을 바탕으로 Spring API를 통해 객체를 주입 받는다. 
 - 설정파일이 어디 있는지 설정
 - 객체를 만들어 주는 (Assembler) 객체 생성

public static void main(String[] args){
//스프링 컨테이너 객체 생성
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationConext.xml");
//설정파일에 설정한 <bean> 태그의 id/name을 통해 객체를 받아온다.
MemberDAO dao = (MemberDAO)ctx.getBean("dao");

Posted by 조은성
,

 

 

 

 

 

 

 

 

 

 

 

 * 설치 확인

 

 

Posted by 조은성
,

EJB정의

프로그래밍/EJB 2012. 6. 19. 09:56

* Java EE(기업용 어플리케이션을 개발하기 위한 것을 모아둔 것)
    -> Web기반
        분산 환경 지원(여러컴퓨터에 나눠져 있는 것이 네트웍으로 연결)

- 웹기반과 분산환경을 지원하기 위한 기업용 어플리케이션을 JavaEE라고 부른다.

* EJB (Enterprise Java Beans)

- Java Beans(컴포넌트)
  1. 재사용성
  2. 독립성

 - EJB : 기업용 어플리케이션에서 재사용성 가능하고 독립성이 있는 비지니스 로직

 - 비지니스 로직
   1. 공통로직 : ex 모든 로직에 공통적으로 필요한 로직(Infra 적인 것, 대표: 트렌젝션 처리(로그남기기, 쓰레드 관리하기))
   2. 핵심로직 : ex 계산할 때 계산로직

- EJB는 규모가 커질수록 늘어나는 공통적인 로직을 처리할 수 있는 API와 환경(EJB container)을 제공한다.  

 

Posted by 조은성
,

1. 의존성 주입(Dependency Injection, DI)

 - 객체간의 의존관계를 객체 자신이 아닌 외부의 조립기가 수행한다.
 - 제어의 역할 이라는 의미로 사용되었음.
 - Martin Fowler, 2004
   - 제어의 어떠한 부분이 반전되는가라는 질문에 '의존 관계 주입'이라는 용어를 사용
   - 복잡한 어플리케이션은 비지니스 로직을 수행하기 위해서 두 개 이상의 클래스들이 서로 협업을 하면서 구성됨.
   - 각각의 객체는 협업하고자 하는 객체의 참조를 얻는 것에 책임성이 있음.
   - 이 부분은 높은 결합도와 테스트하기 어려운 코드를 양산함
 - DI를 통해 시스템에 있는 각 객체를 조정하는 외부 개체가 객체들에게 생성시에 의존관계를 주어짐
   - 즉, 의존이 객체로 주입됨
   - 객체가 협업하는 객체의 참조를 어떻게 얻어낼 것인가라는 관점에서 책임성의 역행임
 - 느슨한 결함이 주요 강점
   - 객체는 인터페이스에 의한 의존관계만을 알고 있으며, 이 의존관계는 구현 클래스에 대한 차이를 모르는 채 서로 다른 구현으로 대체가 가능

 

 

 

Posted by 조은성
,

* Spring이란?

1. 오픈 소스 프레임워크

 - Rod Johnson 창시
   - Expert one-on-one J2EE Design - Development, 2002, Wrox
   - Expert one-on-one J2EE Development without EJB, 2004, Wrox
 - 엔터프라이즈 어플리케이션 개발의 복잡성을 줄여주기 위한 목적(종속적이지 않은 목적)
 - EJB 사용으로 수행되었던 모든 기능을 일반 POJO(Planin Old Java Object)를 사용해서 가능하게 함.
   - 경량 컨테이너(light weight container)
 - www.springframework.org

2. 주요 개념
 
 - 의존성 주입(Dependency InJection)
 - 관점 지향 프로그래밍

3. Spring의 장점

 - 경량 컨테이너 - 객체의 라이프 사이클 관리, Java EE구현을 위한 다양한 API제공
 - DI(Dependency Injection)지원
 - AOP(Aspect Oriented Programming) 지원
 - POJO (Plain Old Java Object) 지원
 - 다양한 API와의 연동 지원을 통한 Java EE 구현 가능

Posted by 조은성
,

* Spring source다운로드

http://www.springsource.org/download

 

 

 

 

Posted by 조은성
,

 

 

 

 

 

 

 

* 결과보기

변경된 row 수 : 0
삭제된 row 수 : 0
-----전체 직원 부서 조회하기------
김건모 - 개발부
김건모 - 개발부
김건모 - 개발부
김건모 - 개발부
최순이 - 영업1부
이영수 - 영업1부
한석규 - 영업1부
신세경 - 영업2부
장혁 - 영업2부
이은미 - 영업2부
윤도현 - 영업2부
조관우 - 영업2부
-----부서 조회하기-------
DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]
DepartmentDTO [departmentId=D0002, departmentName=영업1부, location=서울지점]
DepartmentDTO [departmentId=D0003, departmentName=영업2부, location=부산지점]
------봉급으로 조회-------
EmployeeDTO [employeeId=00001, employeeName=김건모, email=abc@abc.com, jobPosition=부장, salary=5405050, departmentDTO=DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]]
EmployeeDTO [employeeId=00002, employeeName=김건모, email=abc@abc.com, jobPosition=부장, salary=5405050, departmentDTO=DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]]
EmployeeDTO [employeeId=00003, employeeName=김건모, email=abc@abc.com, jobPosition=부장, salary=5405050, departmentDTO=DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]]
EmployeeDTO [employeeId=00004, employeeName=김건모, email=abc@abc.com, jobPosition=부장, salary=5405050, departmentDTO=DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]]
EmployeeDTO [employeeId=00005, employeeName=최순이, email=csi@abc.com, jobPosition=부장, salary=308500, departmentDTO=DepartmentDTO [departmentId=D0002, departmentName=영업1부, location=서울지점]]
EmployeeDTO [employeeId=00006, employeeName=이영수, email=lys@abc.com, jobPosition=부장, salary=215700, departmentDTO=DepartmentDTO [departmentId=D0002, departmentName=영업1부, location=서울지점]]
EmployeeDTO [employeeId=00007, employeeName=한석규, email=hsk@abc.com, jobPosition=부장, salary=5460110, departmentDTO=DepartmentDTO [departmentId=D0002, departmentName=영업1부, location=서울지점]]
EmployeeDTO [employeeId=00008, employeeName=신세경, email=ssk@abc.com, jobPosition=사원, salary=5460000, departmentDTO=DepartmentDTO [departmentId=D0003, departmentName=영업2부, location=부산지점]]
EmployeeDTO [employeeId=00009, employeeName=장혁, email=jh@abc.com, jobPosition=사원, salary=321600, departmentDTO=DepartmentDTO [departmentId=D0003, departmentName=영업2부, location=부산지점]]
EmployeeDTO [employeeId=00010, employeeName=이은미, email=lym@abc.com, jobPosition=사원, salary=1000000, departmentDTO=DepartmentDTO [departmentId=D0003, departmentName=영업2부, location=부산지점]]
EmployeeDTO [employeeId=00011, employeeName=윤도현, email=yb@abc.com, jobPosition=사원, salary=1000000, departmentDTO=DepartmentDTO [departmentId=D0003, departmentName=영업2부, location=부산지점]]
EmployeeDTO [employeeId=00012, employeeName=조관우, email=ckw@abc.com, jobPosition=사원, salary=1000000, departmentDTO=DepartmentDTO [departmentId=D0003, departmentName=영업2부, location=부산지점]]
-----이름과 부서이름으로 조회--------
EmployeeDTO [employeeId=00001, employeeName=김건모, email=abc@abc.com, jobPosition=부장, salary=5405050, departmentDTO=DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]]
EmployeeDTO [employeeId=00002, employeeName=김건모, email=abc@abc.com, jobPosition=부장, salary=5405050, departmentDTO=DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]]
EmployeeDTO [employeeId=00003, employeeName=김건모, email=abc@abc.com, jobPosition=부장, salary=5405050, departmentDTO=DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]]
EmployeeDTO [employeeId=00004, employeeName=김건모, email=abc@abc.com, jobPosition=부장, salary=5405050, departmentDTO=DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]]
EmployeeDTO [employeeId=00005, employeeName=최순이, email=csi@abc.com, jobPosition=부장, salary=308500, departmentDTO=DepartmentDTO [departmentId=D0002, departmentName=영업1부, location=서울지점]]
EmployeeDTO [employeeId=00006, employeeName=이영수, email=lys@abc.com, jobPosition=부장, salary=215700, departmentDTO=DepartmentDTO [departmentId=D0002, departmentName=영업1부, location=서울지점]]
EmployeeDTO [employeeId=00007, employeeName=한석규, email=hsk@abc.com, jobPosition=부장, salary=5460110, departmentDTO=DepartmentDTO [departmentId=D0002, departmentName=영업1부, location=서울지점]]
-----iterate사용해서 여러명의 이름 중 있는 것만 조회하기------
5명 조회
EmployeeDTO [employeeId=00001, employeeName=김건모, email=abc@abc.com, jobPosition=부장, salary=5405050, departmentDTO=DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]]
EmployeeDTO [employeeId=00002, employeeName=김건모, email=abc@abc.com, jobPosition=부장, salary=5405050, departmentDTO=DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]]
EmployeeDTO [employeeId=00003, employeeName=김건모, email=abc@abc.com, jobPosition=부장, salary=5405050, departmentDTO=DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]]
EmployeeDTO [employeeId=00004, employeeName=김건모, email=abc@abc.com, jobPosition=부장, salary=5405050, departmentDTO=DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]]
EmployeeDTO [employeeId=00007, employeeName=한석규, email=hsk@abc.com, jobPosition=부장, salary=5460110, departmentDTO=DepartmentDTO [departmentId=D0002, departmentName=영업1부, location=서울지점]]

Posted by 조은성
,

 

DepartmentDTO.java

EmployeeDTO.java

sql_ins.sql

java project : ibatis_join

package : hr.dto
package : hr.config

DTO*2를 hr.dto에 카피

기존에 ibatis_basic에서 사용했던 member.xml->hr.xml로 변경. SqlMapConfig.xml를 config 패키지로 복사해와서

SqlMapConfig.xml
member.xml 파일을 hr.config에 카피
member.xml -> hr.xml

 

 

class : hr.dao.EmployeeDAO

class : TestEmployee

 

 

 

 

 

 

 

* 결과

변경된 row 수 : 0
삭제된 row 수 : 0
-----전체 직원 부서 조회하기------
김건모 - 개발부
김건모 - 개발부
김건모 - 개발부
김건모 - 개발부
최순이 - 영업1부
이영수 - 영업1부
한석규 - 영업1부
신세경 - 영업2부
장혁 - 영업2부
이은미 - 영업2부
윤도현 - 영업2부
조관우 - 영업2부
DepartmentDTO [departmentId=D0001, departmentName=개발부, location=서울지점]
DepartmentDTO [departmentId=D0002, departmentName=영업1부, location=서울지점]
DepartmentDTO [departmentId=D0003, departmentName=영업2부, location=부산지점]

Posted by 조은성
,