컨트롤 + 마우스휠 위로 : 확대
컨트롤 + 엔터
먼저 newlect선택하고 실행해줘야한다
Mybatis 라이브러리 추가
쿼리만들고 구하려는것의 반환타입만 적으면 mybatis가 도와준다
스프링의 역할은 ?
디펜던시인젝션역할
두개의 객체를 결합해준다.
B가 C를 이용, A가 C를 이용
제품과 부품
제품이 될 수도 부품이될 수도있다.
디펜던시 : 내가 만드는게 디펜던시가될수있다.
DI의 장점 : 기능에 대한 인터페이스가 올바르면 , 구현된 다른제품을 꽂아쓸 수있다.
협업용이, 다른이유로 버전업을 시켜야하거나 , 구현성능이 좋아진것으로 바꿔낄때 유용
재사용, 부품교환이 자유롭다
"내가 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 회원 서비스 스프링 빈 등
'2021 Newlecture > Spring Boot' 카테고리의 다른 글
Thymeleaf (0) | 2021.06.14 |
---|---|
foreach (컬렉션뽑아오기) / likeToggle/AOP/ 트랜잭션 원자성지키기 (0) | 2021.06.10 |
column flags mean in MySQL Workbench (0) | 2021.06.10 |
mapper구현하기 (0) | 2021.06.08 |
Model and View / tiles와 연결 / tiles 이용해 제목, js명 바꾸기 (0) | 2021.06.04 |
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(15강~) (0) | 2021.06.04 |
경로에 변수사용 /Tiles 라이브러리 / 페이지를 조각내고 집중화 (0) | 2021.06.03 |
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(1~14강) (0) | 2021.06.03 |