파일위에 달려있는 @어노테이션은 컴파일이 되기 전에 읽힌다.
== 이를 .xml 파일에 메모리에 담기전에 읽어야한다는 설정을 추가해주어야 한다.
applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd">
</beans>
<!--
메모리에 담기전에 읽어야한다고 설정하는 내용
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context/spring-context-4.2.xsd">
-->
<context:component-scan base-package="test" />
<!-- 어노테이션을 읽을 위치를 설정해주어야 사용이 가능하다. -->
@Component == .xml <bean> new 설정
이때 <bean> 태그 설정에 class 와 id 가 있었는데 어노테이션을 사용한 class 파일 명이지만.
id는 @Component("id 값") 으로 사용해야한다.
이때
IPhone apple = new IPhone();
<bean class="IPhone" id="apple"/>
@Conponent("apple")
모두 동일한 내용이다.
컴포넌트 == Bean == 모듈 == 패키지 == 위젯 == 리팩토링 결과물 == 함수화 == 메서드화
@Autowired == DI : 의존성 주입 어노테이션
만약 DI(의존성)가 여러개라면 DI(의존성)당 하나씩 어노테이션을 달아주어야 한다.
org.springframework.beans.factory.UnsatisfiedDependencyException
==> 의존성 모호성 에러
정리
1. <bean> 대신에 @Component로 객체 new
2. DI(의존주입) 기존에는 생성자, Setter
=>> @Autowired 로 주입
3. @Autowired 메모리의 자료형만 참고
==> DI 모호성 에러
4. @Qualifiter 객체명 참고
--> @Qualifiter를 사용했다는 말 자체가 개발자가 편한 것이지
성능은 매우 낮아 지기 때문에 잘 사용하지 않는다.
실무에서 컴파일에도 금액이 들어간다.
@어노테이션 이 변경된다면 추가 컴파일이 될 수 있으니 모두 작성해두고
.xml에서 <bean> 태그로 사용한다.
[오후]
패키지 명칭은
회사 -> 어떤 팀 OR 어떤 프로젝트인지 -> 앱인지 웹인지 설정
biz(비즈니스)가 있으면 핵심
== CRUD
== 핵심 관심
== 핵심 로직
biz == 서비스 == 제공하는
~~biz.common //기본
~~biz.member //테이블
jdbc 유틸을 사용하기 위해
mysql jar 파일이 필요하고 해당 설정은 pom.xml에서 mysql 설정을 추가하면 된다.
Xxx.do 이동
Fc 에서 Xxx.Action 객체 생성 >>> "서비스"
AF = XXXAction.excute();
DS이 AF를 보고 페이지를 이동
MemberService == 인터페이스
DAO를 가져다가 서비스 내용(로직)을 구현하는 C
Action >>> Service 로 부르기로 한다.
이때 Service의 내용은 실질적으로 DAO가 수행하는 것
Service == phone
DAO == Watch
Service가 가지고 있는 메서드가 DAO에 메서드 시그니처와 동일해야하는 것이 매우 중요하다.
실제 서비스를 사용할때 XxxImpl(Implement)로 생성한다.
인터페이스인 MemberSevice의 구현제(실현제)
@Autowired 의존성을 주입하기 위해 사용해준다.
//메모리 자료형(타입)만 보고 의존성을 주입한다.
@Component 어노테이션을 상속받은 어노테이션으로
@Repository 가 있는데 이 어노테이션을 DAO 류에 사용한다.
(실무에서는 DAO 라는 명칭을 안쓰기 때문에 @Repository 어노테이션이 있다면 DAO라는 것을 기억하자)
@Service("memberService") 어노테이션은 Action , C , ServiceImpl 류에 사용
-> 사용자가 써야하는 코드이기 때문에 id를 추가해준다.
Controller 는 더 이상 New 하지 않고 멤버 변수로 생성해서 사용한다.
'국비 내용 정리 > Spring' 카테고리의 다른 글
국비 61일차 내용정리 (Spring MAV) (0) | 2024.10.07 |
---|---|
jsp -> Spring까지의 복습 정리 (0) | 2024.10.07 |
Spring 복습 (0) | 2024.10.04 |
국비 59일 내용 정리(Spring 의존성, 주입) (3) | 2024.10.02 |
국비 58일 내용 정리 (Spring) (0) | 2024.10.01 |