관리 메뉴

DeseoDeSeo

ミ★ Spring Boot 01 본문

spring/Spring Boot

ミ★ Spring Boot 01

deseodeseo 2023. 10. 16. 15:05

 

설정 하고 나서

alt + f5 (update해줌)

 

springmvc10 오른쪽 클릭 >  build Path

○ static과 templates에 저장되는 파일의 종류가 다름.

   ➤ static : css, js

   ➤ templates: HTML

 

application.properties 누르고 오른쪽  > properties

⛧  앞으로는 이렇게 파일 열어야함.

(application.properties > open with >  Generic Editor- Spring Properties로 해야 자동완성 실행됨.

application.properties
# Spring Boot 환경설정하는 파일(DB,Tomcat 등)

# Tomcat Server Port 변경
server.port=8081

# Context Path 수정 
# Context Path 수정하지 않으면 기본 Context Path -> /  지금까지는 이렇게 사용함.
# Context Path -> /boot로 바꿀거임.
server.servlet.context-path=/boot
pom.xml
(버전들 바꿈)
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.7.3</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
    
    	<groupId>kr.spring</groupId>
	<artifactId>SpringMVC10</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>SpringMVC10</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>1.8</java.version>
	</properties>
Test위해서 testController만듬

HelloController.java
hello라고 요청이 들어오면 hello클래스를 실행시킴.
package kr.spring.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController //비동기방식으로 작동하려면 이게 꼭 있어야함.
public class HelloController {
	@RequestMapping("/hello")  //hello라고 요청이 들어오면
	public String hello() {
		return "Hello! spring Boot!";
	}
}

⛤ 실행할때 SprinMVC10Application.java에서 오른쪽 클릭 

주소창에 localhost:8081/boot/hello 검색 > 

이렇게 출력됨.

pom.xml 에서 오른쪽 클릭후 

 

그리고 오류가 나는 부분을 아래처럼 수정해준다.

	<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>

	</dependency>

 

DB설정
application.properties

#DB설정
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/com
spring.datasource.username=com
spring.datasource.password=com01

 

 

 

이렇게 오류가 나면 상단의 빨간 네모(정지)를 누르고 다시 Run as 하면 됨.

"Port 8081 was already in use"

JPA( Java Persistence API, 자바 ORM 기술에 대한 API 표준 명세 )

    : ORM을 사용하기 위한 인터페이스를 모아둔 것.

      ORM에 대한 자바API규격이며 Hibernate등이 JPA를 구현한 구현체.

Hibernate 

    : JPA를 사용하기 위해서 JPA를 구현한 ORM프레임워크 중 하나

Spring JPA 설정( JDBC ➜ API ) ➜ Hibernate(Spring JPA 구현체) 
Spring에서는 Mapper interface 구현시켜서 추상메서드를 구현시키는건 ➜ SQLSessionFactoryBean이 함. 
Spring JPA에서는 Hibernate : SQL Query 빌드(자동생성)

# 사용예시 
JPA클래스.save(vo)하면 insert into Board(title, content, writer
                                                        values(#{title},..)할 필요 없음.
 save라는 메서드가 다 처리해줌. 
복잡한 쿼리는 직접 만들어야한다. (간단한 SQL문은 작성을 알아서 해주는 장점이 있다.) 
JPA/Hibernate를 ORM(Object Relational Mapping, 객체관계맵핑 )방식이라고 부름
Board.java
package kr.spring.entity;

import java.util.Date;

import javax.annotation.Generated;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

import lombok.Data;

@Entity //Board VO가 Database Table로 만들 떄 설정
@Data
public class Board {  //vo가 orm을 통해서 table을 만들어줌.
	@Id //pk를 의미함. //1씩 증가하면서 넣기 -> auto_incremente와 같음
	@GeneratedValue(strategy = GenerationType.IDENTITY) //를 하면 자동으로 1씩 증가하게됨.
	private Long idx; //게시글 고유번호(호환을 long형으로 해준다.)
	
	private String title;
	
	@Column(length=2000) //길이 지정 : 길이지정 따로 안할 때 길이 255임.
	private String content;
	
	@Column(updatable = false) //수정할 때 작성자는 안 바꿔 주겠다.
	private String writer;
	
	@Column(insertable = false, updatable = false, columnDefinition = "datetime default now()")
	private Date indate;
	
	@Column(insertable = false, updatable = false, columnDefinition =  "int default 0")
	private Long count;
	
	
}

 

application.properties
제일 처음에 실행할때는 스키마 생성을 위해서 spring.jpa.hibernate.ddl-auto= create였음.
스키마 생성 후, update로 바뀜.
#JPA
# MySQL 상세지정
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
#스키마 생성(create, update)
spring.jpa.hibernate.ddl-auto=update
#JPA가 실행하고 실행된 SQL문장 보기
spring.jpa.show-sql=true
#실제 JPA구현체인 Hibernate가 동작하면서 발생하는 SQL을 포맷팅해서 출력
spring.jpa.properties.hibernate.format_sql=true

 

'spring > Spring Boot' 카테고리의 다른 글

[Spring Boot ] 로그인 구현  (0) 2023.10.23
ミ★ Spring boot 02  (1) 2023.10.20
[Spring Boot] Spring Boot Security  (0) 2023.10.20