Spring -> maven
Spring boot -> gradle 사용
Spring, Spring boot에 maven, gradle 둘 다 사용 가능하나 이번엔 위와 같은 방식으로 사용
Spring Tool Suite 3 사용
spring 특징
@(어노테이션) 으로 요청을 매핑, 객체로도 매핑 가능하다.
미리 객체를 생성해놓고 controller가 사용한다.
client에서 요청이 들어오면 해당 요청을 DispatcherServlet를 통해 매핑만 시켜주면 된다.
spring이 관리하는 sqlSession은 commit을 사용하지 않는다.
프로젝트 설정
Dynamic Web Project > configure.. convert Maven Project
JRE 라이브러리 버전 변경(11사용)
web packaging은 war로 묶는다
pom.xml 바꾼 후 Maven.. Update Project 해야 변경사항이 적용됨
프로젝트 구조
views -> jsp파일 모아논 폴더

web.xml
Java EE Tools > Generate Deployment Descriptor Stub 로 자동 생성됨
WEB-INF 폴더 밑에 있어야 함
spring이 아니라 Tomcat 에서 사용하는 파일, 서버에 올라가 가장 먼저 실행되는 파일
여기에서 가장 먼저 spring 지정 - DispatcherServlet(spring에서 모든 요청을 받는 클래스)

servlet-context.xml이 가장 먼저 실행되도록 load-on-startup 설정함
servlet-context.xml
자동 생성되는 자바 객체(bean)를 모아둔 파일
controller로부터 보내진 view의 이름을 받아 jsp를 붙이고 view를 내려보내준다.
InternalResourceViewResolver로 spring에 이미 지정된 이름인 prefix로 경로 설정, suffix로 확장자 설정

<annotation-driven/>으로 어노테이션을 인식하게 함
<beans>로 객체 생성 시
<beans:constructor-arg ref="클래스명"/> 으로 생성자를 통해 객체 injection 또는
<property name="이름" value="값"/>으로 setter를 통해 객체 injection
두 가지 방법이 있다.
<beans:bean>은 <beans><bean>을 줄여쓴 것
<bean>은 <beans>에서 아웃태그를 생략한 것
pom.xml
<dependency>태그로 API 가져옴
- 해당 API의 Maven 항목 그대로 복사해서 추가하면 됨

- maven 저장소 링크
https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client/3.1.0
BankProj/BoardProj spring으로 구현하기
@Controller @Repository @Service는 클래스 앞에 적으면 자동으로 객체를 생성해준다.
controller / dao / service에 각각 붙인다.
@Autowired는 자동으로 생성된 bean 객체에 injection 주입해서 알아서 붙여준다.
servlet-context.xml에서 <beans>로 dao, service 객체를 만들지 않고 controller에서 바로 객체 생성 후 매핑되도록 할 수 있다.

각 클래스에서 @Controller @Repository @Service로 객체 생성 후
@Autowired로 객체 주입해서 자동으로 붙일 수 있다.

spring MVC를 사용하지 않는 ajax의 경우
@ResponseBody를 사용하여 view를 내려주는 대신 data를 해당 jsp에 내려보내주게 된다.
redirect:/servlet
-> 페이지를 변경할 때 서블렛을 통해 가는 경우 사용하는 것 같다.
'Project > Spring' 카테고리의 다른 글
| Spring Security 로그인 (1) | 2024.10.25 |
|---|---|
| JPA Query DSL (3) | 2024.10.22 |
| JPA Database (6) | 2024.10.16 |
| SpringBoot(Gradle) (6) | 2024.10.14 |
| Mini Project을 Spring Frame Work로 변경하기 (1) | 2024.10.10 |