Cohe

SpringBoot Project 게시판 만들기 본문

Spring, SpringBoot

SpringBoot Project 게시판 만들기

코헤0121 2024. 5. 22. 17:18
728x90

springboot project 게시판 만들기

spring boot 게시판 만들기를 시작하면서, 앞으로의 목차와 프로젝트의 기본 gradle 설정을 이야기 하고자 한다.

참고로 springboot 3.2.5 버전이다!!!

목차

  1. 게시판 만들기 : Board table에 맞춰 작성
    1. CRUD
      1. 게시글의 목록/검색/페이지 처리
      2. 게시물의 등록
      3. 게시물의 조회
      4. 게시물의 수정/삭제
      5. post 후 모달창
    2. Search
    3. reply 개수 넣기
  2. 댓글 달기 : reply
  3. 회원 정보 : member

시작하기

시작하기 앞서 해당 링크에 접속한다 https://start.spring.io/

해당 링크에서 다음과 같이 맞춰준다.

  1. 프로젝트 옵션:
    • Project: Gradle - Groovy 선택됨
    • Language: Java 선택됨
    • Spring Boot 버전: 3.2.5 선택됨
  2. 프로젝트 메타데이터:
    • Group: com.example
    • Artifact: demo
    • Name: demo
    • Description: Demo project for Spring Boot
    • Package name: org.example.demo
    • Packaging: Jar 선택됨
    • Java 버전: 17 선택됨
  3. 종속성(Dependencies):
    • Lombok: Java 애노테이션 라이브러리
    • Spring Boot DevTools: 개발 도구
    • Spring Web: 웹 개발 도구
    • Spring Data JPA: 데이터 퍼시스턴스
    • MySQL Driver: MySQL JDBC 드라이버
    • Thymeleaf: 템플릿 엔진
  4. 생성 버튼:
    • GENERATE 버튼을 클릭하여 설정된 프로젝트를 생성할 수 있습니다.

 

마지막으로 build.gradle에서 앞으로 할(?) 의존성들을 주입한다! (원래라면 하나씩 추가해야 한다..)

 

buildscript {
	ext {
		queryDslVersion = "5.0.0"
	}
}

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.2.5'
	id 'io.spring.dependency-management' version '1.1.4'
	id 'org.jetbrains.kotlin.jvm'
}

group = 'org.zerock'
version = '0.0.1-SNAPSHOT'

java {
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}


dependencies {

	//swagger UI
	implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'

	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-validation'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'


	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	// lombok setting - test에서 사용할 수 있게 설정
	testCompileOnly 'org.projectlombok:lombok'
	testAnnotationProcessor 'org.projectlombok:lombok'

	runtimeOnly 'com.mysql:mysql-connector-j'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'

	//Thymeleaf의 레이아웃 기능을 위한 추가 라이브러리
	implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:3.3.0'

	implementation "com.querydsl:querydsl-jpa:${queryDslVersion}:jakarta"

	annotationProcessor(
			"jakarta.persistence:jakarta.persistence-api",
			"jakarta.annotation:jakarta.annotation-api",
			"com.querydsl:querydsl-apt:${queryDslVersion}:jakarta"
	)

	implementation 'org.modelmapper:modelmapper:3.2.0'
	implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"

	implementation 'org.springframework.boot:spring-boot-starter-security'
	
	//ThymeLeaf에서 스프링 시큐리티 사용하기 위한 라이브러리
	// https://mvnrepository.com/artifact/org.thymeleaf.extras/thymeleaf-extras-springsecurity5
	implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.2.RELEASE'

	//OAuth2 인증...
	implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'

}

tasks.named('test') {
	useJUnitPlatform()
}
sourceSets {
	main{
		java{
			srcDirs = ["$projectDir/src/main/java", "$projectDir/build/generated"]
		}
	}
}

compileJava.dependsOn('clean')