➕ Web/Spring
4. SpringBoot 기본기능 소개
Ardor924
2025. 5. 29. 17:29
SpringBoot 기본기능 소개
🔶Spring Boot BasicApplication
@SpringBootApplication
3개의 annotation이 합쳐진 기능
◻1. @SpringBootConfiguration
- 전반적으로 spring boot의 환경설정을 담당
◻2. @EnableAutoConfiguration
- 사용하고자 하는 라이브러리를 경로상에 두기만하면(pom.xml) 필요한 객체들을 자동으로 생성하고 사용 - DB정보만 작성하면 HikariCP 등 bean 객체를 생성
◻3. @ComponetScan - 자동으로 객체들을 Container에 등록
🔶 Spring Boot
◻ 톰캣서버 내장
◻ 프로젝트를 파일로 바꾸면 배포가능
🔶 로그인 컨트롤러 예시
@Controller
public class MemberController {
// 로그인 기능
@PostMapping(value = "login.do")
public String login(@RequestParam String email, @RequestParam String pw) {
return "login";
}
}
◻ DB접근을 위해 JPA의 repository 생성(=Mybatis의 Mapper역할)
◻ repository에 있는 메소드를 활용하여 sql문장을 실행
◻ 의존성 주입을 위해 Repository를 @autowired
🔶 JPA
◻ DB연결을 위해 JPA사용
- Boot 에서는 JPA 사용 권장
◻ java 개발자는 Java 코드만 작성
◻ sql 실행 문장을 메소드로 작성
◻@Repository에서 구현(interface)
- interface에 @Repository 달아주기
- 테이블이 있는 객체 생성
- JpaRepository 인터페이스 상속받기!
- 상속받으면<T,ID> 작성요구
- T : 테이블 -> 테이블이 있는 객체 이름 (엔티티명)
- ID : 테이블이 있는 객체명에 ID컬럼의 자료형 (PK의 자료형)
- Entity 패키지와 Entity클래스 생성
- jpa annotation 활용
- entity를 table로 활용
- Entity 클래스에 @Entity 달아주기
- jpa는 필수적 으로 PK가 필요
- @ID로 PK지정
- @GeneratedValue(strategy = GenerationType.IDENTITY)옵션으로 PK자동증가설정
- @Column(nullable = false, unique = true) 로 유니크값 설정
- JPA에서 기본적으로 CRUD지원
- save(entity)
🔶 JPA 쿼리
◻ save(entity) Insert문
ㄴ insert into TABLE명 values (EntityVal)
◻ delete(매개변수)
ㄴ delete from TABLE명 where pk = 매개변수
◻ findAll()
ㄴ select * from TABLE명
◻ findById(PK)
ㄴ select * from TABLE where PK컬럼명 = PK값
◻ 커스텀메소드
![[JPA_CUSTOM.png]]
- select -> findBy로 시작
- select * from TABLE명 where email = ? and pw = ?
- where 절에 들어가는 컬럼명들은 카멜표기법 으로 작성
- 예) findByEmail
- @Query("select * from ")
🔶 Repository
◻ SQL문을 실행하기위한 메서드 를 생성
◻ 생성된 메서드로 커스텀SQL을 사용할수있다.
🔶Timeleaf 템플릿
◻ Spring Boot에 HTML에서 Java 코드(th식)를 사용할수 있게 도와주는 기능
◻ 사용방법
xmlns:th="http://www.thymeleaf.orgf를 html에 속성에 추가
<html lang="ko" xmlns:th="http://www.thymeleaf.org">