티스토리 뷰

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


1. src/main/java안에 com.sample.di.demo2라는 패키지를 생성한다.

2. GreetingService.java
KoreanGreeting.java
Demo2App.java
demo2.xml 파일들을 생성한다.
xml파일은 위의 사진에 있는 Spring Bean Configuration File을 통해 생성할 수 있다.

- GreetingService는 KoreanGreeting의 메소드를 받아서 실행될 서비스 파일이다.    
- KoreanGreeting은 메소드를 가진 파일이다.                                                  
- demo2.xml은 GreetingService와 KoreanGreeting을 연결지어줄 Spring의 기능이다.
- Demo2App는 GreetingService를 실행시킬 파일이다.                                      
 


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

* 인터페이스 정의하기
interface UserDao -> void insertUser(String name, String id, String password);
interface PointDao -> void updatePoint(String id, int point);
* 구현클래스 정의
class UserDummyDao implements UserDao
class PointDummyDao implements PointDao
* 구현클래스 정의
class UserService -> void addNewUser(String name, String id, String password){
// 신규 회원 등록 기능
// 신규 회원의 포인트를 10으로 변경하는 기능
}
- UserService는 UserDao류와 PointDao류가 필요하다.

* Bean configuration 파일
UserDao류와 PointDao류 객체 생성
UserService 객체 생성 및 조립

* App 클래스 정의
Spring container를 생성하고,
UserService 객체를 가져와서 addNewUser()기능 실행해보기


설명에서 쓰인 demo2파일과

응용 예제 demo3, demo4파일을 첨부해두었습니다.



demo2.zip

응용예제.zip


'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
링크
«   2025/08   »
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
글 보관함