달력

1

« 2020/1 »

  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  



관심의 분리 (Seperatrion of Concerns) 도식도

핵심관심모듈과 횡단관심모듈을 완전히 분리하는 것을 AOP라고 합니다.

AOP 핵심관심모듈(비즈니스 로직업무 로직) 코드를 직접 건드리지 않고 필요한 기능이 동작하도록 하는 데는 위빙(Weaving)이라고 하는 특수한 작업이 필요합니다.

, AOP에서 위빙 작업을 통해 핵심모듈 사이 사이에 필요한 횡단 관심 코드(공통 로직) 동작하도록 엮어지게 만든다.

 



 

공통 기능을 핵심 기능과 분리해 놓고공통 기능 중에서 핵심 기능에 적용하고자 하는 부분에 적용하는 것입니다.

구분

설명

핵심관심모듈

·         핵심 기능

·         Core Concerns, Primary Concern

·         비즈니스 로직 요소업무 로직

·         타겟(Target)

 

·         ex) 예금대출송금신용카드 기능

횡단 관심 모듈

·         부가기능

·         Cross-cutting Concerns

·         공통 로직

·         핵심관심모듈을 관통하여 사용되는 로직

·         핵심관심모듈을 지원하 기능적인 로직 요소

·         어드바이스(Advice)

·         횡단 관심이 없더라도 핵심관심 모듈을 수행할  없는 것은 아니지만 추가적인 기능이나 서비스를 제공해 줍니다.

·         보안인증로그트랜젝션등의 부가기능시스템 전반에 산재되어 사용되는 기능

 

·         ex) 예금,대출  로그를 남김으로써 입출금 내역을 제공해 줍니다.

위빙(Weaving)

·         핵심관심모듈과 횡단 관심 모듈을 연결해주는 역할

·         Framework에서 수행해 줍니다.

 

 



Posted by codedragon codedragon

댓글을 달아 주세요

2018. 10. 5. 09:00

Spring MVC Development/Spring

 

 

Spring MVC

·         WebBrowser 통해 Client 요청이 들어오면 DispatcherServlet 모든 요청을 처리합니다.

·         DispatcherServlet 작업요청을 HandlerMapping, HandlerAdapter, Controller, ViewResolver, View 보내게 됩니다.

·         DispatcherServlet 작업요청에 대해 Controller에게 전달을 하면 처리결과를 DispatcherServlet에게 응답을 줍니다. DispatcherServlet에서 ViewResolver 통해서 View 호출하게 됩니다. View 사용자에게결과로 보여지게 됩니다.

 

 


 

 


 

 

 

/SpringMVC/src/main/java/

com/tistory/codedragon/HomeController.java

·         Controller

·         Dispatcher에게 전달된 요청을 처리하는 역할

/SpringMVC/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml

·         스프링 컨테이너 설정 파일

/SpringMVC/src/main/webapp/WEB-INF/views/home.jsp

·         뷰파일

/SpringMVC/src/main/webapp/WEB-INF/web.xml

·         DispacherServlet 서블릿 맵핑

·         스프링 설정 파일(servlet-context.xml) 위치 정의

 

web.xml -> servlet-context.xml -> HomeController.java -> home.jsp

 


Posted by codedragon codedragon

댓글을 달아 주세요

 

오류메시지

"/ch10ex02/.settings/org.eclipse.wst.common.project.facet.core.xml" could not be read.        ch10ex02                Unknown        Faceted Project Problem

 


 

 

 

해결방법

오류메시지에서 마우스 우클릭 >> [Quick Fix]


 

[Create a new runtime environment] 선택 >> [Finish]


 

[Apache Tomcat v7.0] 선택 >> [Apply and Close]


 

 

eclipse 재시작


 

 

Posted by codedragon codedragon

댓글을 달아 주세요

 

 

스프링 빈 범위(Scope)

스프링 컨테이너가 생성되고, 스프링 빈이 생성 될 때, 생성된 스프링 빈은 scope을 가지고 있습니다.

범위(Scope)란 해당하는 객체가 어디까지 영향을 미치는지 결정하는 것이라고 생각하면 됩니다.

 

Posted by codedragon codedragon

댓글을 달아 주세요

 

Environment 객체

·       Environment객체를 이용해서 스프링 빈 설정을 합니다.

·       Environment 객체를 이용하여 properties 외부 설정파일을 이용할 수 있습니다.

·       Environment객체는 PropertySource객체들을 가지고 있으면 PropertySource객체에 데이터를 담아 관리를 합니다.

·       Environment객체에 getProperty('프로퍼티키')메소드를 호출하여 필요한 정보를 서치하면 해당하는 프로퍼티의 값을 반환해 줍니다.

 


 

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

 

DL(Dependency Lookup) DI(Dependency Injection)

 

구분

설명

DL

(Dependency Lookup)

 

·       의존성 검색

·       저장소에 저장되어 있는 Bean 접근하기 위해 특정 컨테이너가 제공하는 API 이용하여 Bean Lookup 하는 것입니다.

·       DL 사용시 컨테이너 종속성이 증가합니다.

DI

(Dependency Injection)

 

·       의존성 주입

·        클래스간의 의존관계를  설정(Bean Definition) 정보 바탕으로 컨테이너가 자동으로 연결해주는 것입니다.

 

DL 사용시 컨테이너 종속성이 증가하여, 주로 DI를 사용합니다.


 

 



Posted by codedragon codedragon

댓글을 달아 주세요

 

 

MyBatis-Spring 라이브러리 검색 및 설치

 

http://mvnrepository.com/

 

"mybatis spring"으로 검색

mybatis spring


 

첫번째 항목 선택



 

버전번호 클릭


 

 

Maven항목의 dependency 정보 복사

http://mvnrepository.com/artifact/org.mybatis/mybatis-spring/1.3.1

 


 

 


Posted by codedragon codedragon

댓글을 달아 주세요

 

 

스프링 빈 생명 주기

스프링 빈 생명 주기에는 두 가지가 있습니다.

·       InitializingBean, DisposableBean 인터페이스

·       @PostConstruct, @PreDestroy 어노테이션

 

 

InitializingBean, DisposableBean 인터페이스

 

메소드

설명

@Override

public void afterPropertiesSet() throws Exception {

 

}

·       InitializingBean 구현한 Bean에서 재정의한 메소드

·       Bean 초기화 과정에서 호출되는 메소드

·       load()한 후 refresh()메소드가 호출될 때 bean객체가 생성되어지며 초기화 될때 afterPropertiesSet()메소드가 실행이 됩니다.

@Override

public void destroy() throws Exception {

 

}

·       DisposableBean 구현한 Bean에서 재정의한 메소드

·       Bean 소멸 과정에서 호출되는 메소드

 

 

 

 

destroy() vs close()

메소드

차이

beanObj.destroy()

·       Bean만 소멸하게 할 경우 사용하는 메소드

ctx.close()

·       컨테이너가 소멸되게 됩니다.

·       컨테이너가 소멸 하면, Bean은 자동 소멸 됩니다.

 

 

 

 

@PostConstruct, @PreDestroy 어노테이션

빈이 생성되고 종료될때 실행할 함수에 어노테이션 처리하여 생성 및 소멸과정에서 호출되어 지도록 할 수 있습니다.

 

어노테이션

설명

@PostConstruct

public void initMethod() {

System.out.println("initMethod()");

}

·       빈 초기화 과정에서 호출되는 메소드

·       load()한 후 refresh()메소드가 호출될 때 bean객체가 생성되어지며 초기화 될때@PostConstruct 설정된 메소드가 실행이 됩니다.

 

@PreDestroy

public void destroyMethod() {

System.out.println("destroyMethod()");

}

·       빈 소멸 과정에서 호출되는 메소드

 

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

Spring Framework 주요 특징

특징

설명

경량 컨테이너(light weight container)

·         Spring 컨테이너는 Java 객체의 LifeCycle을 관리합니다.

·         Spring 컨테이너로 부터 필요한 객체를 가져와 사용할 있습니다.

·         J2EE 구현을 위한 다양한 API 제공합니다.

DI (Dependency Injection) 지원

·         Spring 설정 파일(xml)이나 어노테이션을 통해서 객체 간의 의존관계를 설정할 있도록 하고 있습니다

AOP (Aspect Oriented Programming) 지원

·         Spring 트랜잭션이나 로깅, 보안과 같이 공통적으로 필요로 하는 모듈들을 실제 핵심 모듈에서 분리해서 적용할 있습니다.

POJO (Plain Old Java Object) 지원

·         Spring 컨테이너에 저장되는 Java객체는 특정한 인터페이스를 구현하거나, 특정 클래스를 상속받지 않아도 됩니다.

·         EJB 사용으로 수행되었던 모든 기능을 일반 POJO 사용이 가능합니다.

Transaction 처리를 위한 일관된 방법 제공

·         JDBC, JTA 어떤 트랜잭션을 사용하던 설정(xml, 어노테이션) 통해 정보를 관리하므로 트랜잭션 구현에 상관없이 동일한 코드 사용이 가능합니다.

JDBC 위한 다양한 API 지원

·         Spring MyBatis, Hibernate 데이터베이스 처리를 위한 ORM(Object Relational Mapping) 프레임워크들과의 연동을 지원합니다.

엔터프라이즈 어플리케이션 개발의 복잡성을 줄여주기 위한 목적

·         개발자가 복잡하고 실수하기 쉬운 Low Level(보안, 인증, 트랜잭션 처리등) 많이 신경 쓰지 않으면서 Business Logic 개발 전념할 있도록 해줍니다.

오픈 소스 프레임워크

·         공개되어 있어 무료로 사용할 있습니다.


  

 


Posted by codedragon codedragon

댓글을 달아 주세요


uptodate 

https://codedragon.tistory.com/8953


 

MyBatis 라이브러리 검색 및 설치  -  3.4.2

 

http://mvnrepository.com/

 

"mybatis"으로 검색

mybatis



 

첫번째 항목 선택


 

버전번호 클릭


 

 

Maven항목의 dependency 정보 복사

http://mvnrepository.com/artifact/org.mybatis/mybatis/3.4.2



 


 

 


Posted by codedragon codedragon

댓글을 달아 주세요