노승현
Spring 파일 생성 및 흐름 이해 본문
스프링 파일 생성
Type Maven
Packaging War
Java Version 17
Language Java
Group 프로젝트명을 주로 쓴다
Package 뒤에 프로젝트명 붙이기
스프링 프레임워크를 넘어오고나서는
컨테이너
1 톰캣 : 서블릿 컨텐이너, 웹 서버 내장되어 있음
Servlet 클래스를 new 해줌
FrontController 등
-> web.xml
2 스프링 컨테이너 : POJO 클래스를 new 해줌
DAO, DTO, Action(Controller) 등
* 코드내에서 new 역할을 담당하는 컨테이너
-> applicationContext.xml
3 루트(최상위) 컨테이너 : .jar(라이브러리)를 관리해줌
얘도 스프링 컨테이너라고도 부름,,,
* 설정 관련 컨테이너
-> pom.xml
[pom.xml] == 설정파일 개수가 프로젝트에 사용되고 있는 라이브러리 개수를 알 수 있다
스프링 프레임워크에서는 클릭하면 해당 라이브러리들을 알아서 주입해준다.
다만 MySQL or 최신 라이브러리들은 개발자가 추가로 설정해야 할 수도 있다.
applicationContext.xml 설정
<?xm1 version="1.0" encoding= "UTF-8"?> 인코딩 해주는 코드
스키마
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation= "http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
현재 컨테이너 버전과 스키마의 버전이 같아야 실행 됨
.xml 설정들이 많아지면 개발자들에게 부담이 된다.
.xml 에 작은 에러라도 발생한다면, 프로그램이 실행 안됨
스프링에서 과도한 설정을 줄여주기 위해 @어노테이션 기능을 개발함
스프링은 .xml + @
부트는 @ 위주로 실행
@은
개발자 가독성 증가
+
.xml 로의 접근을 줄여줌
.java에 작성함
자바 코드와 설정을 한 번에 확인할 수 있음
자바 코드에만 접근하면 되니까 .xml 을 덜 열어봄(오류확률 낮아짐)
Q.@Autowired 에서 필요한 워치가 애플워치인지 어떻게 앎?
A. @Autowired 는 “메모리 자료형(타입)”을 인지하고 연결해주는 역할을 수행함
같은 타입이 여러개면 안된다
컴포넌트에 반드시 이름을 작성해준다.
@Qualifier("galaxyWatch") >> “얘네 워치가 여러개구나” 라고 생각해야된다.
DTO, DAO -> MODEL 파트
Controller
Spring 은 AOP 를 지원함!!!
CRUD(핵심기능) | 공통로직(횡당기능)
DAO의 기능을 별도로 사용하는 Service를 제작
Service가 DAO도 사용할 수 있고,Common도 사용할 수 있다.
Controller(Action) -> 직접 DAO 사용
Controller(Action) -> Service 라는 객체를 통해서 DAO 사용
Service가 DAO, 공통로직 골라서 선택적으로 사용
Watch <-> Phone 처럼, Service의 메서드 시그니처와 DAO의 메서드 시그니처가 같으면
사용에 용이하다.
'Spring' 카테고리의 다른 글
DBCP (0) | 2024.03.05 |
---|---|
Spring MVC ver.2 로 변환하기 (1) | 2024.03.05 |
ASPECT 란? (1) | 2024.03.04 |
DI 의존성 주입이란? (0) | 2024.02.28 |
Spring 이란? (1) | 2024.02.27 |