오봉이와 함께하는 개발 블로그
Spring - SpringBoot 기초 본문
728x90
스프링 부트(Spring Boot)
- 스프링 프레임워크를 사용하는 프로젝트를 아주 간편하게 설정할 수 있는 스프링 프레임워크의 서브 프로젝트
- 톰캣 설치 등 여러가지 복잡한 설정하지 않아도 된다.
- 특징
- XML 기반 설정 과정 없이 간단히 프로젝트를 시작할 수 있음
- Maven의 pom.xml 파일에 의존성 라이브러리의 버전을 지정하지 않아도 된다.(스프링 부트가 권장 버전 관리)
- 단독 실행되는 스프링 애플리케이션 구현 가능
- 프로젝트 환경 구축에 필요한 서버 외적인 툴 내장되어 있어 별도 설치 필요 없음
사용할 스프링 부트 프로젝트
정보
- Maven
- Java 11
- 2.6.2
- Group : com.multi
- Artifact : boot002
- name : boot002
- Package Name : com.multi.boot002
- Packaging : War
- Dependency
- JDBC API
- MySQL Driver
- Spring Web
- MyBatis Framework
프로젝트 구조
application.properties
server.port=8080
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springDB
spring.datasource.username=root
spring.datasource.password=1234
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
# xml-location
mybatis.mapper-locations=classpath:mappers/**/*.xml
pom.xml
- 아래의 내용 추가
<!-- JSP 사용 위해 의존성 추가 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
mapper 수정
- mapper namespace 경로를 바꿔야 한다.
<mapper namespace="com.multi.product.IProductDAO">
<!-- 이하 경로 모두 변경 -->
패키지명Application.java
// 컨트롤러 빈 추가
@ComponentScan(basePackageClasses = ProductController.class)
// mapper 빈 추가
@MapperScan(basePackageClasses = IProductDAO.class)
스프링 부트 프로젝트 생성 시 자동 생성되는 파일
- Myboot01Application.java
- @SpringBootApplication
- 스프링 부트 애플리케이션으로 설정하는 어노테이션
- main() 메소드 : 스프링 부트 생성 시 자동으로 생성
- 스프링 부트 프로젝트는 반드시 main()이 있어야 함
- main()을 포함하는 java 파일이 있어야 함
- 스프링 부트 애플리케이션을 일반 자바 애플리케이션처럼 개발하려는 의도 때문
- @SpringBootApplication
- ServletInitializer.java
- SpringBootServletInitializer 클래스로부터 상속 받음
- SpringBootServletInitializer의 역할
- 스프링 부트 애플리케이션을 web.xml 없이 톰캣에서 실행하게 해줌
- 스프링 부트에는 web.xml, context.xml 설정 파일이 없음
- 스프링 부트 애플리케이션을 web.xml 없이 톰캣에서 실행하게 해줌
Spring Boot가 Spring Legacy(MVC 등)와 다른점
- pom.xml에서 스프링 프레임워크 버전 자동 설정
- 프로젝트 생성 시 dependencies 선택해서 pom.xml에 자동 삽입
- src/main/java에 패키지이름Application.java 메인 메소가 있다.
- 이 클래스 실행 시 스프링 부트 시작
- tomcat 서버 자동 시작
- 포트 충돌 시 오류 가능성 있음
- .jsp 파일을 기본 view로 하지 않으므로 추가 설정 필요
- src/main/resources 폴더 하위의 static 폴더에 리소스 파일 등 저장
- image, js, css 등
- src/main/resources 폴더 하위의 templates 폴더에 템플릿 파일(jsp 파일 외) 저장
- html
- src/main/resources 폴더 하위에 자동 생성되는 application.properties
- web.xml 등을 대신하는 설정 파일
스프링 부트에서 프로젝트 외부 경로 지정
- 패키지에 WebConfig.java 클래스 생성
- @Configration
- WebMvcConfigurer 인터페이스 구현
- 외부 경로 지정
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// "/prdImages/**" prdImages로 들어오면 file:////Users/gobyeongchae/Desktop/productImages/해당 경로에 들어가서 image 인식
registry.addResourceHandler("/prdImages/**")
.addResourceLocations("file:////Users/gobyeongchae/Desktop/productImages/");
}
}
728x90
'BE > Spring' 카테고리의 다른 글
Spring - Spring과 객체지향 (0) | 2022.05.27 |
---|---|
Spring - 파일 업로드 / 파일 다운로드 (5) | 2022.01.12 |
Spring - RESTController (0) | 2022.01.12 |
Spring - 간단한 예제 + 중복 체크 + 검색 (0) | 2022.01.11 |
Spring - 간단한 예제 + 중복 체크 (0) | 2022.01.11 |
Comments