자바에서 static개념

- 객체지향프로그램인 자바는 객체,변수등이 필요할때 메모리에 올려야한다.

- static은 프로그램으로 객체생성이전 JVM에 클래스가 로딩될때 메모리에 올라온다.

- 변수,메소드,내부클래스에서 static을 사용가능하다.

- 변수,메소드에서 자주사용한다.

- 변수에 static이 붙게 되면 Class로 접근 가능하다.

- 전역변수가 필요할때 static을 사용한다.

- 메소드에 static이 붙게되면 Class로 접근가능하다.

- 대표적인예제 public static void main(String[] args)


abstract와 Interface의 차이

SuperClass와 subClass로 구성된건 같다.

서브클래스는 슈퍼클래스의 큰 영향을 받는다.


abstactClass

- 슈퍼클래스가 어느정도 구현되어있고 나머지를 서브클래스에서 구현해야할때사용한다.

- single inheritance이다.(다중상속불가능)

- 모든 접근제한자에서 가능하다.

- 일반적인 변수,상수가 사용가능하다.

- abstractMethods,concreteMethods 둘다 가능하다.


Interface

- 실질적인 구현이없는 abstractMethods만있는 빈깡통클래스

- 일종의 규약을 위해 생성한다.

- 상속이아닌 구현으로 다중구현이 가능하다.

- public만 가능하다.

- 오직 상수만이 가능하다.

- abstractMethods만가능하다.

Mybatis Mapper 인터페이스란?


Mapper 인터페이스란?

여러 Mapper 인터페이스 작성시 설정한다.


Mapper 인터페이스란?

- 매핑파일에 기재된 SQL을 호출하기 위한 인터페이스이다.

- Mybatis 3.0부터 생겼다.

- 매핑파일에 있는 SQL을 인터페이스로 호출한다.


Mapper 사용하지않았을시?

- session.selectOne("userNS.selectUserById", id); 형식 이였다.

- 네임스페이스+"."+SQL ID 로 지정해야한다.

- 문자열로 작성하기때문에 버그가 생길 수 있다.

- IDE에서 제공하는 code assist를 사용할 수 없다.


Mapper 사용했을때

- Mapper 인터페이스 개발자가 직접작성한다.

- 패키지 이름+"."+인터페이스이름+"."+메서드이름이 네임스페이스+"."+SQL의 ID를 설정해야 한다.

- 네임스페이스 속성에는 패키지를 포함한 Mapper 인터페이스 이름 형식이다.

- SQL ID 에는 매핑하는 메서드 이름을 지정하는 것.


Mapper 인터페이스 작성

반드시 인터페이스로 선언해주어야한다.

네임스페이스 명은 패키지포함 인터페이스이름으로 작성. 

ex)<mapper namespace="myspring.user.dao.UserMapper">

메서드명은 SQLID와 동일하게작성.


사용하는법

-bean 추가

-xml네임스페이스 설정


-DAO에 autowired



-Mapper인터페이스 메소드명은 네임스페이스 ID랑 맞출것.

인터페이스

XML


여러개의 Mapper 설정 방법

- MapperScannerConfigurer사용한다.

- 위에 org.mybatis.spring.mapper.MapperFactoryBean 을 이용시 Mapper등록시 갯수가 많아지면일일이 정의해야하는 단점이 있다.

- DI컨테이너에 등록된다.

- MapperScannerConfigurer 이용하면 지정한 패키지 아래 모든 인터페이스가 Mapper 인터페이스로 간주된다.

dao등 인터페이스도 등록되어 에러가 생길 수 있다.


다른 인터페이스는 등록안되게 하는법

빈에 등록하기


annotation파일생성


기존 Mapper에 어노테이션 등록



'개발 소발 > 개발 Spring' 카테고리의 다른 글

SpringMVC란?  (0) 2018.01.11
MVC패턴이란?  (0) 2018.01.11
Mybatis 셋팅이란?  (0) 2017.12.21
MyBatis란?  (0) 2017.11.27
AOP어플리케이션 작성 (annotation)이란?  (0) 2017.11.27

+ Recent posts