달력

1

« 2020/1 »

  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  



 

 

eclipse/STS - Spring 환경구성

 

우측 상단의 [Open Perspective] 아이콘 클릭 >> [Spring] 선택 >> [Open]


 

 

 

 

프로젝트 구조도 Spring 환경으로 변경되어집니다.


 


'Development > Spring' 카테고리의 다른 글

@PathVariable  (0) 2019.07.07
STS4에서 Spring Legacy Project 생성하기  (0) 2019.06.15
eclipse/STS - Spring 환경구성  (0) 2019.06.06
Jackson Library 검색 및 설치  (0) 2019.05.18
MyBatis3의 주요 컴포넌트 역할  (0) 2019.05.09
AOP 용어  (0) 2019.04.30
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

Jackson Library 검색 설치

 

http://mvnrepository.com/

 

"jackson mapper"으로 검색

jackson

https://mvnrepository.com/search?q=jackson

 

 

 

첫번째 항목 [Jackson Databind] 선택


 

 

버전번호 클릭

https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind


 

 

 

Maven항목의 dependency 정보 복사

https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.9.8


 

 

 

pom.xml 파일의 <dependencies> 태그안에 붙여넣기 하여 추가합니다.

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->

<dependency>

    <groupId>com.fasterxml.jackson.core</groupId>

    <artifactId>jackson-databind</artifactId>

    <version>2.9.8</version>

</dependency>

 

 

 

Project Explorer [Maven Dependencies]항목을 펼치면 JUnit라이브러리가 추가된 것을 확인할 있습니다.


 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

MyBatis3 주요 컴포넌트 역할

 

컴포넌트

설명

MyBatis Config File

·         MyBatis 설정파일

·         데이터베이스의 접속 주소 정보나 Mapping 파일의 경로 등의 고정된 환경정보를 설정합니다.

·         mybatis-config.xml, SqlMapConfig.xml

SqlSession FactoryBuilder

·         MyBatis 설정 파일을 바탕으로 SqlSessionFactory 생성합니다.

SqlSessionFactory

·         SqlSession 생성합니다.

SqlSession

·         핵심적인 역할을 하는 클래스로서 SQL 실행이나 트랜잭션 관리를 실행합니다.

·         SqlSession 오브젝트는 Thread-Safe 하지 않으므로 thread마다 필요에 따라 생성됩니다.

mapping File

·         매핑 파일 Mapper file

·         SQL문과 OR Mapping 설정합니다.

·         user.xml

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요

2019. 4. 30. 00:30

AOP 용어 Development/Spring


 

 

AOP 용어

용어

설명

타겟

(Target)

·         핵심기능을 담고 있는 모듈

·         타겟은 부가기능을 부여할 대상 됩니다.

어드바이스

(Advice)

·         어드바이스는 타겟에 제공할 부가기능을 담고 있는 모듈입니다.

·         Aspect 기능 자체

조인 포인트

(Join Point)

·         어드바이스가 적용될 있는 위치 말합니다.

·         Advice 적용해야 되는 부분(필드, 메소드) 의미합니다. 스프링에서는 메소드만 공통기능을 할당할 있습니다.

·         , 타겟 객체가 구현한 인터페이스의 모든 메서드는 조인 포인트가 됩니다.

 

포인트

(Pointcut)

·         Joint Point 부분으로 실제로 Advice 적용된 부분입니다.

·         어드바이스를 적용할 타겟의 메서드를 선별하는 정규표현식(Regular expression)입니다.

·         포인트컷 표현식은 execution으로 시작하고, 메서드의 Signature 비교하는 방법을 주로 이용합니다.

 

애스펙트

(Aspect)

·         애스펙트는 AOP 기본 모듈입니다.

·         공통 기능 = 부가 기능

·         Aspect = Advice  + PointCut

·         애스펙트는 싱글톤 형태의 객체로 존재합니다.

어드바이저

(Advisor)

·         어드바이저 = 어드바이스 + 포인트컷

·         어드바이저는 Spring AOP에서만 사용되는 특별한 용어입니다. AdvisorAspect 동일합니다. 애스펙트라는 용어를 주로 사용합니다.

위빙

(Weaving)

·         위빙은 포인트컷에 의해서 결정된 타겟의 조인 포인트에 부가기능(Advice) 삽입하는 과정 뜻합니다.

·         Advice 핵심기능에 적용하는 행위입니다.

·         위빙은 AOP 핵심기능(타겟) 코드에 영향을 주지 않으면서 필요한 부가기능(어드바이스) 추가할 있도록 해주는 핵심적인 처리과정입니다.

 


 


Posted by codedragon codedragon

댓글을 달아 주세요


 

오류메시지

Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'bbsService' available

 


 

<context:component-scan> 태그 통해 스캔하는 경우 getBean() 인자를 변경하여 호출해 주어야 합니다.

 

 

 

 

 

해결방법

Spring 설정 XML 등록한 BeanID Bean 클래스 타입을 인자로 하는 getBean()함수를

Bean 클래스 타입만 인자로 받는 함수로 변경해서 Lookup 합니다.

HelloService bbsService = ctx.getBean("helloService", HelloService.class);

HelloService bbsService = ctx.getBean(HelloService.class);

 

 



Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

핵심기능과 부가기능

·         업무(Biz) 로직을 포함하는 기능을 핵심 기능(Core Concerns)이라고 합니다.

·         핵심기능을 도와주는 부가적인 기능(로깅,보안 ) 부가기능 (Cross-cutting Concerns) 이라고 합니다.

·         객체지향의 기본 원칙을 적용하여도 핵심기능에서 부가기능을 분리해서 모듈화하는 것은 매우 어렵습니다. AOP 적용하면 보다 쉽게 부가기능을 분리할 있습니다.

·         AOP방법은 핵심 기능과 부가기능(공통 기능) 분리 시켜놓고, 부가 기능을 필요로 하는 핵심 기능들에서 사용하는 방식 입니다.


 



구분

설명

핵심 기능

(Core Concerns)

·         핵심관심모듈

·         업무(Biz) 로직을 포함하는 기능

 

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

·         ex) 글쓰기주문하기요금 계산 

부가기능

(Cross-cutting Concerns)

·         횡단관심모듈

·         핵심기능을 도와주는 부가적인 기능

·         공통 기능

 

·         ex) 보안로깅트랜잭션 

 

 

 

 

 

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

MyBatipse 설치 하기

MyBatipse MyBatis XML 설정파일을 쉽게 생성할 있게 해주는 플러그인입니다.

 

 

Eclipse Marketplace 실행

eclipse 메뉴: [Help] >> [Eclipse Marketplace…]


 

 

 

 

 

 

mybatis Add-On 설치

mybatis 검색 >>

[MyBatipse x.x.x] 항목의 [Install] 버튼을 클릭합니다.

 


 


 

 

 

[I accept the terms of the license agreements] 체크 >>

[Finish]


 

 

설치 ...


 

 

[Install anyway]


 

 

[Restart Now]


 

 


 

 

 

 

 

설치 확인하기

 

새로운 파일 생성시 파일 타입에 MyBatis XML Mapper 항목이 보여집니다.


 


Posted by codedragon codedragon

댓글을 달아 주세요

 

 

 

MyBatis

·         마이바티스

·         MyBatis 자바 오브젝트와 SQL문을 자동 Mapping 하는 기능을 지원하는 ORM 프레임워크입니다. (SQL Mapper)

·         SQL 별도의 파일(XML) 분리해서 관리하게 해주며 자바객체와 SQL 사이의 파라미터 Mapping 작업을 자동으로 해줍니다.

·         MyBatis Hibernate JPA(Java Persistence Api)처럼 새로운 DB 프로그래밍 패러다임을 익혀야 하는 부담없이, 개발자가 익숙한 SQL 그대로 이용하면서 JDBC 코드 작성의 불편함도 제거해주고, 도메인 객체나 VO 객체를 중심으로 개발이 가능하다는 장점이 있습니다.

·         Scala MyBatis, .NET MyBitis, mybatis-spring 별도의 라이브러리로 존재합니다.

 

 

 

http://blog.mybatis.org/

http://www.mybatis.org/


 

Posted by codedragon codedragon

댓글을 달아 주세요


 

 

RESTful Controller 어노테이션(Annotation)

·         Sprint MVC에서는 Client에서 전송한 XML이나 JSON 데이터를 Controller에서 Java Object 변환해서 받을 있는 기능(수신) 제공합니다.

·         Java  Object XML이나 JSON으로 변환해서 전송할 잇는 기능(송신) 제공하고 있습니다.

 

 

RESTful Controller 위한 핵심 어노테이션(Annotation)입니다.

Annotation

설명

@RequestBody

HTTP Request Body(요청 몸체) Java Object 전달 받을 있습니다.

 

https://codedragon.tistory.com/8929

@ResponseBody

Java Object HTTP Response Body(응답 몸체) 전송할 있습니다.

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

uptodate

https://codedragon.tistory.com/8931

 

 

 

Jackson Library 검색 설치

 

http://mvnrepository.com/

 

"jackson mapper"으로 검색

jackson mapper


 

 

첫번째 항목 선택


 

 

버전번호 클릭


 

 

 

Maven항목의 dependency 정보 복사

http://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl/1.9.13


 

 

 

Project Explorer [Maven Dependencies]항목을 펼치면 JUnit라이브러리가 추가된 것을 확인할 있습니다.


 

 


Posted by codedragon codedragon

댓글을 달아 주세요