11111

컨트롤 + 마우스휠 위로 : 확대

컨트롤 + 엔터

먼저 newlect선택하고 실행해줘야한다


Mybatis 라이브러리 추가

쿼리만들고 구하려는것의 반환타입만 적으면 mybatis가 도와준다


스프링의 역할은 ?

디펜던시인젝션역할

두개의 객체를 결합해준다.

 

 

B가 C를 이용, A가 C를 이용

제품과 부품

제품이 될 수도 부품이될 수도있다.

디펜던시 : 내가 만드는게 디펜던시가될수있다.

 

DI의 장점 : 기능에 대한 인터페이스가 올바르면 , 구현된 다른제품을 꽂아쓸 수있다. 

                협업용이, 다른이유로 버전업을 시켜야하거나 , 구현성능이 좋아진것으로 바꿔낄때 유용

              재사용, 부품교환이 자유롭다

 

1. A는 부품으로쓰임 / 세번째 Frame클래스가 DI 3. 스프링이 코드재배포(재작성) 개선을 위해 설정바꿔준다. 결합관계를 표시만해주면된다

 

"내가 frame하나 객체화했는데 그 이름을 f로 해줘"

"A라는 클래스도 객체화했는데 그 이름을 a로해줘"

"그 a를 Frame의 set함수에다가 넣어줘" (인젝션)"

디펜던시 설정, 디펜던시결합해줌

설정만 바꾸면 알아서 자바코드가 변경되는 식

 

내가 만든건 @Component

남이 만든 클래스는 @Component , @bean

 

기존컨테이너는 각각 써야했는데

ioc컨테이너는 결합 및 각각 쓸 수있다

위 : 일체형 A -> B- >C-> D

아래 : 결합형 D부터만들어짐 , 역순으로 객체를 생성, 부품이 결합

 


반환타입에 맞게끔 NoticeDao를 구현해서 장바구니에 담는다 

 

플랫폼을 공부목적으로..?xxx


Mybatis 역할 :

NoticeDao(@mapper)의 List<Notice>를 구현한다 . Ioc컨테이너에 담아준다. 우리는 꺼내쓰는 작업만 하면된다

 

XML 과 어노테이션

 

새로운버전때문에 설정을 바꾸면 , 

스프링에서는 

어노테이션 : 명찰역할 (훨씬 편리)

xml : 변경발생시 매번설정바꿔야함 (매번 장부작성과 비슷)

 

Responsebody : 뷰페이지를 찾는게 아니라 list()리턴값이 뷰다 ->바로 출력된다.

1.생성자 인젝션 : 가져오자마자 다른 초기화 로직이 동작하게 할 수있다. 세팅될때 더불어서 하게할수있다.

  셋팅이 나중에 바뀌면안된다면 생성자가 적합

2.세터 인젝션 : 언제든지 또 호출될 수있다.  

콘트롤러/서비스에게반환/구현체

IoC에 실린 객체들
noticeDao

noticeServiceimp

noticeController

마이바티스가 sql문을 맵핑해준다.

우리가 직접구현한다면 Jdbc 를 구현했을것..

마이바티스가 이것을 자동으로 구현해준다.

 

IoC container는 스프링에서 자유롭게 객체를 넣거나 꺼내쓸수있는 
스프링 공용 객체보관 container다

@Service

Spring에서 @Component로 다 쓰지 않고 @Repository, @Service, @Controller등을 사용하는 이유는 

또한 가독성에서도 해당 애노테이션을 갖는 클래스가 무엇을 하는지 단 번에 알 수 있다.

 

@Autowired

생성자에 @Autowired 가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어준다.

이렇게 객체 의존관계를 외부에서 넣어주는 것을 DI (Dependency Injection), 의존성 주입이라 한다.

 

@Component 

컴포넌트 스캔 원리 @Component 애노테이션이 있으면 스프링 빈으로 자동 등록된다.

@Controller 컨트롤러가 스프링 빈으로 자동 등록된 이유도 컴포넌트 스캔 때문이다.

@Component 를 포함하는 다음 애노테이션도 스프링 빈으로 자동 등록된다.

 @Controller @Service @Repository 회원 서비스 스프링 빈 등

 

+ Recent posts