-
[Spring boot] 스프링 부트 정리SpringBoot 2021. 9. 16. 17:06반응형
폴더구조
스프링으로 웹 프로젝트는 2가지로 나눌 수 있다.
Spring Starter ProjectSpring Boot를 이용하는 프로젝트
스프링 부트는 그 목적 자체가 최대한 간단하게 실행하고, 배포가 가능한 수준의 웹 어플리케이션을 제작하는 것
개발에 필요한 모든 환경 설정을 맞춰주고, 최소한의 개발을 해야 하는 경우 사용하는 것이 좋다.
Spring Legacy Project스프링 템플릿 프로젝트를 이용하는 프로젝트
AWS를 사용하거나, 모델2 방식에 대한 이해가 있다면 해당 프로젝트를 사용하는 것이 좋다.
또한, 조금 복잡 하기는 하나 실제 개발 업무에서 많이 사용하는 방식이다.
AWS 또는 기타 설정을 직접 해야 하기 때문에 초기 세팅에 대한 공부가 필요하다.pom.xml
스프링부트는 jsp 페이지를 로딩하는 기능을 제공하지 않기때문에 라이브러리애 추가해준다.
또한 jstl이나 json을 사용 시 필요한 jackson도 기본으로 설정해주는게 편하다
java.servlet, org.apache.tomcat.embed, org.codegaus.jackson
application.properties
WAS, DB 등의 설정을 key-value 형식으로 처리 가능한 파일,
pom.xml 설정까지 완료하면 jsp 페이지가 있는 곳의 위치를 정의해주어야 한다
preefix, suffix를 이용하여 jsp 페이지 설정 등록을 해준다. 이 properties파일은 추후 DB 설정
이라던지 security 설정 등 중요한 정보들이 작성되는 중요한 파일이다.src/main/java
클래스 파일을 모아두는 곳
src/main/resourcexml, properties를 저장하는 곳 , static, template, application.properties 파일
(3개가 생성되어져 있다. XML, properties static 파일을 모아둔 디렉토리)
staticcss, js, html 파일
template부트에서 이용하는 thymeleaf 형식 템플릿 파일 (jsp아님) 을 저장한다
JSP와 Thymeleaf의 가장 큰 차이점은 JSP와 달리 Servlet Code로 변환되지 않다는 점이다. 따라서 비즈니스 로직과 분리되어 오로지 View에 집중할 수 있다.
web.xml
해당 프로젝트를 실행하는 Tomcat이 프로젝트를 실행할 때 접근하는 파일
클라이언트의 모든 Request를 처리하는 데 중심적인 역할을 수행하는 Dispatcher Servlet에 대한 정보가 있음
Tomcat이 해당 파일의 정보를 통하여 필요한 여러 설정파일들을 로딩하여 프로젝트를 실행
servlet-context.xml
Handler Mapping 작업과 관련된 정보를 가지고 있는 파일
View Resolver에 대한 정보를 담고 있음
JSP 파일들의 위치를 지정(Prefix)
.jsp를 뒤에 붙여서 jsp 파일을 호출하도록 함url과 관련된 controller나, @(어노테이션), ViewResolver, Interceptor, MultipartResolver 등의 설정해준다
root-context.xml
servlet-context.xml 파일과 달리 view와 관련되지 않은 객체를 정의
비즈니스 로직과 관련된 설정을 수행해주는 파일.따라서 Service, Repository(DAO), DB등 비즈니스 로직 과 관련된 설정을 해준다.
Component-scan
스프링에서 위의 이미지와 같은 어노테이션을 클래스에 함께 선언하게 되면 스프링이 자동으로 해당 어노테이션이 붙은 클래스들을 스캔하여 bean으로서 생성해주는 것을 가능하게 해주는 설정이다. 이는 기존의 XML에 장황하게 bean을 생성하기 위한 설정을 작성하는 과정을 드라마틱하게 줄여주는 방법이라 할 수 있다.
<context:component-scan base-package="패키지명"/>
어노테이션
@SpringApplication.run
웹 어플리케이션을 실행하는 역할
@SpringBootApplication다음 세가지 어노테이션으로 구성
★ @EnableAutoConfiguration스프링 부트 개발에 필요한 몇 가지 필수적인 설정들이
자동으로 완료되도록 도와준다
★ @ComponentScan자동으로 컴포넌트 클래스를 검색하고 컨텍스트(ioc 컨테이너)에
Bean으로 등록 => 의존성 주입이 간편해진다.
★ @Configuration기존 XML에서 JAVA 기반 설정을 가능하게 함
@SpringBootApplication
@Configuration + @EnableAutoConfiguration + @ComponentScan 합친거
그외 잡다한 것
1. 스프링 생성시 war로 생성하면 ServletInitializer.java가 생성, (jar의 경우 없음)
2. 컨트롤러 생성시 패키지를 만들 때 @SpringBootApplication 이 설정된 패키지 하위로 생성해야 스캔한다.
하위로 두지 않고 사용할 경우, 컴포넌트 스캔을 별도로 설정해야 한다.예 ) @SpringBootApplication 의 패키지가 com.web 일경우,
나머지com.web.service , com.web.controller 이런식으로 작성해야 함
3. JSP 생성시 /src/main/webapp/WEB-INF/jsp(폴더이름)/파일이름.jsp
4. 스프링부트는 프로젝트 생성시 내장 서블릿 컨테이너인 톰캣이 자동적으로 설정되기 때문에 jsp를 servlet으로
변환하는 tomcat-embed-jasper 를 pom.xml에 추가한다.5. 스프링을 실행하면, web.xml 을 가장 먼저 읽는다. 스프링에서 루트는 webapp이다 ( jsp 의 webContent와 같다.)
반응형'SpringBoot' 카테고리의 다른 글
[Spring boot] 어노테이션 정리 (0) 2022.05.17 [Spring boot] @Scheduled 스케쥴 어노테이션 사용 (0) 2022.04.20