[개발] Spring boot

[Spring boot] 스프링 부트, 핵심 폴더 역할 이해 및 설명

  • -
반응형

요약

application.properties: 애플리케이션 설정(서버 포트, DB 정보 등)을 관리하는 파일.

settings.gradle: 프로젝트 이름과 모듈 구성을 정의하는 파일.

src/main/java: 핵심 비즈니스 로직, 서비스, 컨트롤러, 리포지토리 등을 구현하는 Java 코드가 위치.

src/main/resources/static: CSS, JS, 이미지 등의 정적 리소스를 저장하는 폴더.

src/main/resources/templates: 템플릿 엔진을 사용하여 동적인 HTML 페이지를 생성할 때 사용하는 HTML 파일을 저장하는 폴더.

 

 

Spring Boot 프로젝트 구조 세부 설명

1. application.properties

위치: src/main/resources/application.properties

설명: Spring Boot 애플리케이션의 설정 파일로, 구동 시 필요한 다양한 환경 설정 정보를 정의하는 곳입니다.

사용 예시:

  • 서버 설정:
    server.port=8080
    server.servlet.context-path=/myapp
                
  • 데이터베이스 설정:
    spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
    spring.datasource.username=root
    spring.datasource.password=password
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
                
  • 로그 설정:
    logging.level.org.springframework=INFO
    logging.file.name=app.log
                
  • 프로파일별 설정:
    spring.profiles.active=dev
                

 

 

 

 

 

 

 

2. settings.gradle

위치: 프로젝트의 최상위 폴더

설명: Gradle 빌드 시스템의 설정 파일로, 프로젝트의 이름과 모듈 구성을 정의합니다.

주요 내용:

  • 프로젝트 이름 설정:
    rootProject.name = 'my-spring-boot-application'
  • 다중 모듈 프로젝트 설정:
    include 'module1', 'module2'

 

 

 

 

 

 

 

 

 

 

 

 

3. src/main/java

위치: src/main/java

설명: Spring Boot 애플리케이션의 메인 Java 소스 파일이 위치하며, 비즈니스 로직, 컨트롤러, 서비스, 리포지토리, 엔티티 클래스 등이 여기서 정의됩니다.

주요 내용:

  • Controller:
    @RestController
    public class MyController {
        @GetMapping("/hello")
        public String sayHello() {
            return "Hello, World!";
        }
    }
                
  • Service:
    @Service
    public class MyService {
        public String getGreeting() {
            return "Hello from the service!";
        }
    }
                
  • Repository:
    @Repository
    public interface MyRepository extends JpaRepository<MyEntity, Long> {
    }
                
  • Entity:
    @Entity
    public class MyEntity {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String name;
    }
                

 

 

 

 

 

 

 

 

 

 

 

4. src/main/resources/static

위치: src/main/resources/static

설명: 정적 파일(이미지, CSS, JavaScript 등)을 저장하는 폴더로, Spring Boot는 이 폴더의 파일을 정적 자원으로 제공합니다.

 

사용 예시:

  • src/main/resources/static/index.html에 HTML 파일을 생성하면 애플리케이션의 루트 URL에 자동으로 연결됩니다.
  • src/main/resources/static/css/style.css에 CSS 파일을 저장하여 프론트엔드 페이지에서 사용할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

5. src/main/resources/templates

위치: src/main/resources/templates

설명: 템플릿 엔진(Thymeleaf, Freemarker 등)을 사용하여 동적 웹 페이지를 생성할 때 사용하는 HTML 파일을 저장하는 곳입니다.

 

사용 예시:

  • Thymeleaf를 사용할 경우, 컨트롤러에서 반환한 데이터가 이 폴더의 HTML 파일에 매핑되어 동적으로 웹 페이지가 생성됩니다.
  •  
  • <h1 th:text="'Hello, ' + ${name}">Hello, World!</h1>

  •  
  • 컨트롤러에서의 사용:
    @Controller
    public class HomeController {
        @GetMapping("/")
        public String home(Model model) {
            model.addAttribute("name", "Spring Boot");
            return "index";
        }
    }
                

 

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.