티스토리 뷰
19.06.26
Spring #2. Spring이란?
#2-1. Spring
* spring framework
- 경량(light-weight) 프레임워크이다.
- POJO (Plain Old Java Object)를 사용해서 엔터프라이즈 애플리케이션을 개발할 수 있는 프레임워크이다.
- 애플리케이션에서 사용되는 객체를 생성 및 관리한다.
(Bean Factory)
spring framework의 특징
- 의존성 주입을 지원한다.
- 관점지향 프로그래밍을 지원한다.
- 단순한 데이터베이스 액세스 작업을 지원한다.
- 선언적 트랜잭션처리를 지원한다.
- spring mvc를 사용하면 Model2 패턴의 웹 애플리케이션을 개발할 수 있다.
- 다양한 외부 프레임워크와 연동을 지원한다.
- 테스트 코드의 구현 및 테스트 실행을 간단하게 구성할 수 있다.
* spring framework를 한 마디로 정의한다면?
- 객체를 생성하는 공장
- 객체를 조립하는 조립기계
* POJO (Plain Old Java Object)
- 단순하고 평범한 자바객체
- 특별한 개발환경이나 특별한 실행환경을 필요로 하지 않는다.
- 테스트 작업이 쉽다.
- 재사용성이 높다.
Spring Container
- 스프링 프레임워크의 핵심 구현체이다.
- 빈설정파일을 읽어서 객체를 생성하고, 조립하는 일을 담당한다.
- 종류
BeanFactory 인터페이스
- XmlBeanFactory
ApplicationContext 인터페이스
- ClasspathXmlApplicationContext
- FileSystemXmlApplicationContext
- GenericXmlApplicationContext
#2-2. 프로젝트 생성해보기
1. 좌측의 익스플로러에서 new - Spring legacy Project로 프로젝트를 생성한다.
2. 프로젝트 이름 작성, Simple Spring Utility Project로 생성한다.
4. 좌측에 프로젝트가 생성되면, src/main/java에서 파일들(패키지, 자바파일, xml 등) 을 생성하여 사용하게 된다.
#2-3. Example
KoreanGreeting.java
Demo2App.java
3. Spring의 흐름을 보기 위해서 로직은 출력으로 대체하였다.
- KoreanGreeting에 '~~님 환영합니다'를 출력하는 메소드를 구현하고, 이를 GreetingService에서 1번주석과 같이 연결을 시킨다.
- 후에 1번 주석의 변수명에 맞춰서 setter메소드를 구현해서 demo2.xml에 위 그림과 같이 <bean></bean>으로 GreetingService와 KoreanGreeting을 id를 부여하여 만든 후, <property>로 id="korean"을 3번주석 처럼 id="service"에 넣는다.
- 마지막으로 App파일에서 메인메소드에 9 ~ 10행처럼 작성한 후
( 이 부분은 후에는 직접 구현할 필요가 없게되는 부분이다.)
12행처럼 GreetingService를 불러와서 메소드를 실행하면 된다.
getBean안에는 xml에서 부여한 "service"를 넣고, 형변환을 자동적으로 해주기 위해서 GreetingService.class를 넣게된다.
응용 예제)
demo3
//SampleController과 SampleDao클래스 구현하기
//Bean Configuration 파일 생성하기
//Bean Configuration 파일에 객체 생성 및 조립 설정하기
//Demo3App 정의하기
//Demo3App에서 springContainer 생성하고, 객체 꺼내서 SampleController의 add() 실행 해보기
demo4
설명에서 쓰인 demo2파일과
응용 예제 demo3, demo4파일을 첨부해두었습니다.
'Programming > Spring' 카테고리의 다른 글
Spring #4. Annotation & AutoWiring (0) | 2019.06.28 |
---|---|
Spring #3. Spring 의존성 주입(Di) (0) | 2019.06.27 |
Spring #1. Spring 설치 및 설정 (0) | 2019.06.25 |
- Total
- Today
- Yesterday
- 브라캣
- 자바
- Class
- 인라인엘리먼트
- API
- 스프링
- jhta
- 국비
- 오라클 문법
- 중앙HTA
- inline element
- sql
- html
- 자바 국비
- 프레임워크
- spring
- Oracle
- copotter
- 강제형변환
- 비등가조인
- Database
- 데이터베이스
- 블록엘리먼트
- 태그
- 자바 기초
- 자바 독학
- block element
- 이클립스
- querybox
- h#
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |