[스프링부트 나만의 블로그 만들기] 01. 환경 세팅

이경민·2022년 9월 1일
2

spring

목록 보기
9/20

1. 프로젝트 실행해보기

intellij에서 기본 환경 setting 후 실행

intellij spring 환경 setting

IoC (제어의 역전)

"개발자가 아닌 스프링이 직접 new를 해준다"

spring이 수 많은 object들을 class로 만들어 놨는데 spring이 읽어서 이 객체들을 직접 띄운다. 즉, spring이 알아서 이것들을 메모리에 올려준다.

컨테이너는 보통 객체의 Life Cycle을 관리하고 제어하는 것을 말한다. 제어권이 spring framework으로 넘어오면서 DI(의존성 주입), AOP (관점 지향 프로그래밍)을 가능하게 한다.

"컴포넌트 스캔"

어떤 패키지가 있을 때 해당 패키지 이하를 전부 다 스캔해서 필요한 것들을 메모리에 로드 (IoC)

"스프링이 스캔하는 패키지"

: src > main > java 아래 com/example/goormblog 아래 파일들만 스캔.
따라서, 이 하위에 파일을 생성해야 한다. (다른 폴더 하위 파일은 scan X)

스프링이 해당 패키지 이하를 스캔해서 모든 파일을 메모리에 new하는 것은 아니고, 특정 annotation이 붙은 class 파일은 new해서 (IoC) 스프링 컨테이너에서 관리

  • 싱글톤 패턴: 객체의 인스턴스가 오직 1개만 생성되는 패턴.
  • 레퍼런스 변수: 객체를 가리키는 변수로 객체의 주소 정보를 담고 있다.
@RestController
public class BlogControllerTest {
	// http://localhost:8080/test/hello
	@GetMapping("/test/hello")
	public String hello() {
		return "<h1> hello spring boot</h1>";
	}
}

결과



2. My SQL 연동하기

application.yml 파일

server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/서버_이름?serverTimezone=Asia/Seoul&useUnicode=true&characterEncoding=UTF-8
    username: 사용자_이름
    password: 사용자_비번
    driver-class-name: com.mysql.cj.jdbc.Driver

  application:
    name: 앱_이름

build.gradle 내용

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter'
	implementation 'org.projectlombok:lombok:1.18.22'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'

	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'


	runtimeOnly 'mysql:mysql-connector-java'
}

0개의 댓글