-
EJB : 무겁고 느림, 개발의 복잡성, 호환이 안됨
-
Spring이 EJB를 대체하기 위해 나옴
-Spring 장점
-
경량 컨테이너 - 객체의 라이프 사이클 관리, JEE 구현을 위한 다양한 API제공
-
DI(Dependency Injection) 지원
-
AOP(Aspect Oriented Programming) 지원
-
POJO(Plain Old Java Object) 지원
-
JDBC를 위한 다양한 API지원
-
Transaction처리를 위한 일관된 방법 제공
-
다양한 API와의 연동 지원
압축풀고 sql3.3 bundle -> sts실행 -> workspace (스프링 폴더 지정) -> Severs 지우기 -> editors - text editors (show editors check해주가) -> new -> spring legacy project -> mvc repository홈페이지에서 4.3.2 다운
-Maven project : build tool -> 컴파일, 실행, 배포 등의 빌드를 효과적으로 하기 위한 툴 = maven(라이브러리 관리에 효과적), gradle
C:\Users\kosta\.m2\repository 이 레퍼지토리에서 충돌이 일어남 -> 전체삭제 -> sts 재시작(reload)
pom.xml에서 <dependencty>다지우고 mvn repository홈페이지에서 4.3.2다운받은 dependency 넣기, 본래 있던 jre-repository지우고 현재 1.8.0으로 다시 만들기
src/main/resources -> new -> spring bean configuration file(xml파일 하나만들기)
xml : 순수하게 데이터를 전달하기 위한 용도 <book> - 마크업 언어 -> ajax와 함께 이기종간의 데이터를 전달하기 위한 용도, 주문서(요구할 것)
DTD -> 스키마 -> Xsd(문서포맷을 결정짓는 애) 덕분에 bean태그를 쓸 수 있음. 스키마가 정의되어 있어야 함
Namespaces -> 스키마 추가용도(context 추가)
*DI관련 주요 클래스
-
Spring Container(주방장) : 객체를 관리하는 컨테이너 (xml내용 읽어옴), 서비스객체와 DAO객체를 가짐

-의존성 주입(Dependency Injection, DI) : 제어의 역행, 느슨한 결합(변화에 유연한 대처)
-
명시적 : 직접적인 xml 연결, 자동적 : 데이터타입 기준으로 객체를 찾아옴(constructor방식, property방식)<constructor-arg ref="oracleDao"/>, <property name="dao" ref="mySQLDao"/>
**property방식 -getset메소드
Construtor방식- 생성자사용
-
자동으로 : 자바 configuration - method단위 (자동으로 객체들끼리 의존관계가 설정되도록 연결해줌)
@Autowired
public void setDao(Dao dao) {
this.dao = dao;
}
객체를 줄 때는 <ref> "bean 이름", <value> "값"
bean태그로 객체생성 dao& service객체 -> container로 들어감 ->
applicationContext.xml = 객체간의 의존관계를 연결해줌
<context:component-scan base-package="kosta.di"/>kosta.di 안의 다음과 같은 것들을 annotation해주면 연결해줌
@Controller -> MVC : Controller클래스
@Service -> Service객체
@Repository -> Dao객체
@Component ->기타 객체
@Autowired
public void setDao(Dao dao) {
this.dao = dao;
}
** dao 자동으로 주입시키기
2개의 dao객체에 @repository를 설정해주었을 때 오류뜸
expected single matching bean but found 2: mySQLDao,oracleDao (아래 두 어노테이션은 멤버변수 위에다 써줘도 됨)
@Autowired
@Qualifier("oracleDao")
public void setDao(Dao dao) {
this.dao = dao;
}
** service 자동으로 주입시키기
@org.springframework.stereotype.Service
Service service = (Service)factory.getBean("writeService");
-
자바설정파일
-
xml
***오늘의 정리
DI -> container(객체 생성, 의존관계)
->설정파일 : xml, java
-
명시적 <bean id="객체이름" class="생성클래스"/>
<constructor-arg ref="생성자"/>
<property/ name="dao" ref="생성자"> ref=객체, value=문자열
-
자동 뭉터기로<context:annotation-config/>
<context:component-scan base-package="패키지이름"/>
@Controller -> MVC : Controller클래스
@Service -> Service객체
@Repository -> Dao객체
@Component ->기타 객체
@autowired || @inject
@qualifier
-
Java File
@Bean
return new 객체
'FULLSTACK > SPRING' 카테고리의 다른 글
12/7~8 Spring Boot, JPA (0) | 2020.12.08 |
---|---|
STS기반 SPRING - 구멍가게코딩단 책과 함께합니다 (0) | 2020.11.13 |
SPRING 4차시 - AOP, TRANSACTION, FILE UP/DOWN (0) | 2020.11.13 |
SPRING 3차시 - DB연결, RESTful방식 (0) | 2020.11.13 |
SPRING 2차시 - AOP (0) | 2020.11.13 |