안녕로봇

블로그 이미지

안녕로봇

Spring 프레임워크

Spring 2017. 3. 27. 19:46

스프링 프레임워크

- 기업용 애플리케이션을 만들기 위한 다양한 기능을 제공하는 프레임워크

- cf.) 프레임워크 - 뼈대, 틀, 골자: 어떤 문제영역을 해결하기 위한 잘 설계된 일반적인, 재사용 가능한 모듈

- 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크 


- 경량 컨테이너: 자바 객체의 생성, 소멸과 같은 라이플 사이클 관리, 필요한 객체를 가져와 사용

- DI(Dependency Injection) 지원 - 느슨한 결합도

- AOP(Aspect Oriented Programming)를 지원: 트랜잭션, 로깅, 보안등 공통으로 필요로하는 부수적인 기능들 지원

- POJO (평이한 자바 객체) 지원 - 비 침투적인 개발(불필요한 코드 제거)

- MVC 프레임워크 제공



종속 객체 주입(DI : Dependency Injection)

- 객체 간의 의존 관례를 객체 자신이 아닌 외부의 조립기가 수행

- 생성자 또는 setter로 주입함

- 의존하는 클래스가 변경되는 경우 코드를 변경해야 하는 문제가 줄어듬

- DI패턴이라고도 함. 비슷한 의미로 IOC( Inversion of Control )



<bean> 엘리먼트

- 스프링에서 가장 기본적인 설정단위로, 스프링에게 객체를 만들어 달라는 의미

- ex) applicationContext.xml 파일에서... 

<bean name="articleDao" class="mysite.spring.di.MySQLArticleDao" />


와이어링(wiring)

- 애플리케이션 컴포넌트간의 관계를 정하는것

- 스프링에서 일반적으로 XML을 이용

- cf.) applicationContext.xml : 객체의 생성과 와이어링을 책임짐.


애스펙트 적용(AOP : Aspect-Oriented Programming)

- 횡단관심사: 로깅, 트랜잭션 관리, 보안관련

- 애플리케이션의 컴포넌트들이 본연의 비즈니스 기능에 집중하도록. 의존 관계의 복잡성과 중복을 해소

- 핵심기능을 구현하는 모듈에는 아무런 변화도 가하지 않고 추가적인 기능을 선언적을 적용할 수 있음

- 설정 파일이나 설정 클래스 등을 이용하여 Aspect를 여러 클래스에 적용할 수 있도록 함


AOP 용어

Advice - 언제 공통 관심 기능을 핵심 로직에 적용할 지 정의

Joinpoint - Advice를 적용 가능한 시점(예. 메서드 호출, 필드값 변경등)

Pointcut - Joinpoint의 부분집합. 실제로 Advice가 적용되는 Joinpoint를 나타냄  <----이거 잘 모르겠음 확인

Weaving - 공통 코드를 핵심 로직코드에 삽입하는 것

Aspect - 여러 객체에 공통으로 적용되는 공통 관심 사항(트랜잭션, 보안등)


Advice 정의 관련 태그

<aop:before> 

 메서드 실행전 적용

<aop:after-returning> 

 메서드가 정상적으로 실행된 후 적용 

<aop:after-throwing>

 메서드가 예외 발생시 적용. try-catch에서 catch블록과 비슷

<aop:after>

 메서드가 정상적 또는 예외 발생 상관없이 적용. finally블록과 비슷

<aop:around>

 메서드 호출 이전, 이후, 예외 발생등 모든 시점에 적용


AspectJ의 Pointcut 표현식

 - 기본 형식 : execution(수식어패턴? 리턴타입패턴 클래스이름패턴? 이름패턴(파라미터패턴) )

 execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-patter) throws-pattern?)

 ex) execution(* *..*Service.*(..))

 ..은 0개 이상, *은 모든 값









저작자표시 비영리 변경금지 (새창열림)

'Spring' 카테고리의 다른 글

스프링 프로젝트 설정파일들 간단분석  (0) 2017.04.02
STS - 스프링 MVC 프로젝트 만들때 설정해야할것들  (1) 2017.03.31
Controller 클래스 만들때 고려하기 (이클립스 기준)  (0) 2017.03.28
스프링 프로젝트 시작하기 설정(이클립스 기준)  (0) 2017.03.28
스프링 MVC  (1) 2017.03.27
Posted by 안녕로봇
블로그 이미지

by 안녕로봇

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

  • ajax
  • El
  • 표현언어
  • 400에러
  • 인터셉터
  • 스프링 프레임워크
  • 한글인코딩
  • 서버
  • 스케쥴러
  • css
  • 마이바티스
  • 에러
  • mybatis
  • 이벤트
  • 설정
  • 페이징
  • jsp
  • 시작
  • tomcat
  • Spring
  • 스프링
  • 업로드
  • 핸들러
  • ClassNotFoundException
  • jQuery
  • Sts
  • selectKey
  • 어노테이션
  • Serialize
  • 파일

글 보관함

«   2025/06   »
일 월 화 수 목 금 토
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

링크

카테고리

학습 (27)
Spring (16)
Spring 에러 처리 (7)
mybatis (3)
JSP (3)
jQuery JavaScript (4)
HTML CSS (0)
Java (1)
자바 용어 정리 (1)
학습 내용 정리 (0)
실습 작성 및 비교 (0)
Oracle (0)
오라클 용어 정리 (0)
학습 내용 정리 (0)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
안녕로봇's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

안녕로봇

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 학습 (27)
    • Spring (16)
      • Spring 에러 처리 (7)
    • mybatis (3)
    • JSP (3)
    • jQuery JavaScript (4)
    • HTML CSS (0)
    • Java (1)
      • 자바 용어 정리 (1)
      • 학습 내용 정리 (0)
      • 실습 작성 및 비교 (0)
    • Oracle (0)
      • 오라클 용어 정리 (0)
      • 학습 내용 정리 (0)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바