➕ Web/Spring
5. Spring Boot WorkSpace 설정 방법(기본예시)
Ardor924
2025. 5. 29. 17:30
Spring Boot WorkSpace 설정 방법
◻1. application.properties설정
# .properties 형식 : k = v
spring.application.name=SpringBootBasic
# 1. port번호 수정
server.port=포트번호
# 2. DB설정(username, pw, url,driver 설정)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:포트번호/스키마명
spring.datasource.username=관리자이름(디폴트=root)
spring.datasource.password=관리자비밀번호
# 3. JPA설정(필수)
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
# 4. 콘솔에 SQL문 출력(선택사항)
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql = true
◻2. Controller 설정
◽ 1. @Controller 어노테이션 사용
◽ 2. @Autowired 어노테이션으로 레포지토리주입(=Legacy에서 Maaper역할)
◽ 3. @PostMapping @GetMapping 어노테이션으로 맵핑설정
◽ 4. @RequestParam 으로 파라미터 입력
컨트롤러 코드 예시
package com.smhrd.basic.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.smhrd.basic.SpringBootBasicApplication;
import com.smhrd.basic.entity.MemberEntity;
import com.smhrd.basic.repository.MemberRepository;
import jakarta.servlet.http.HttpSession;
@Controller
public class MemberController {
private final SpringBootBasicApplication springBootBasicApplication;
@Autowired
MemberRepository memberRepository;
MemberController(SpringBootBasicApplication springBootBasicApplication) {
this.springBootBasicApplication = springBootBasicApplication;
}
// 로그인 기능
(value = "login.do")
public String login(@RequestParam String email, @RequestParam String pw,HttpSession session) {
MemberEntity member = memberRepository.findByEmailAndPw(email, pw);
// 로그인 성공
if(member != null) {
session.setAttribute("member", member);
return "loginSuccess";
}else {
return "redirect:/";
}
}
// 회원가입 기능 구현
@PostMapping("/register.do")
public String register(
@RequestParam String email, @RequestParam String pw,
@RequestParam String tel, @RequestParam String address
){
MemberEntity entity = new MemberEntity();
entity.setEmail(email);
entity.setAddress(address);
entity.setPw(pw);
entity.setTel(tel);
memberRepository.save(entity);
return "redirect:/";
}
}
◻3. Entity 설정
◽ 1. lombok사용하여 getter,setter, 생성자등 구현
◽ 2. 사용할 테이블의 컬럼(필드)정의
◽ 3. 각 필드에 맞는 의존성 주입
- @Id : PK설정
- @GeneratedValue(strategy = GenerationType.IDENTITY) : PK자동증가 설정
- @Column(nullable = false, unique = true) : 제약조건 설정
Entity 예시코드(=Legacy의 DTO와 유사)
package com.smhrd.basic.entity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
// lombok 사용 getter/ setter 메소드 구현
@Entity
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class MemberEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) // auto_increase
private Long id;
@Column(nullable = false, unique = true)
private String email;
private String pw;
private String tel;
@Column(length = 100)
private String address;
}
◻4. Repositoy 설정
![[JPA_CUSTOM.png]]
◽설명 :
- 커스텀SQL을 작성하는 공간
- 커스텀SQL 작성시 카멜케이스 필수
- select문 : findBy로 시작
- 예시 : select * from TABLE명 where email = ? and pw = ?
Repository 예시코드 (=Legacy의 Mapper와 유사)
package com.smhrd.basic.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.smhrd.basic.entity.MemberEntity;
@Repository
public interface MemberRepository extends JpaRepository<MemberEntity, Long>{
MemberEntity findByEmailAndPw(String email,String pw);
}