[Spring] 실습 : DI 프로그램 만들기
DI 프로그램 만들기
📌 프로젝트 생성
① 아래 사이트 접속.
② ADD ... 클릭 후 Sprint Boot Dev Tools 선택.
③ 아래와 같이 선택 후 GENERATE 클릭.
④ 다운로드한 파일 'DependencyInjectionSample.zip'으로 이름 변경.
⑤ 압출 풀고, IntelliJ IDEA에서 파일 → 열기 → 압축 푼 폴더 선택.
📌 패키지 생성
① src/main/java/com/example/demo 우클릭, 'di.used' 패키지 생성.
② di.used 우클릭, 자바 클래스 → 인터페이스 생성. 'Greet'
③ di.used 우클릭, 자바 클래스 → 클래스 생성. 'MorningGreet', 'EveningGreet'
💡 Spring Initializr에서 스프링 부트 프로젝트를 생성하면, 기본적으로 Project Name + Application 클래스가 생성됨.
이 클래스는 @SpringBootApplication 주석이 부여됨.
💡 메인 메서드를 포함함 클래스에 @SpringBootApplication이 부여되면, 스프링 부트 애플리케이션이라고 인식됨.
📄 DemoApplication.java
package com.example.demo;
import com.example.demo.di.used.Greet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args)
.getBean(DemoApplication.class).execute();
}
@Autowired // 규칙 5 : 스프링 프레임워크에 의해 생성된 인스턴스를 이용하는 클래스에 참조받는 필드를 선언하고, 필드에 어노테이션 부여.
Greet greet;
private void execute() {
greet.greeting();
}
}
📄 Greet.java
package com.example.demo.di.used;
import org.springframework.beans.factory.annotation.Autowired;
public interface Greet {
void greeting();
}
📄 MorningGreet.java
package com.example.demo.di.used;
import org.springframework.stereotype.Component;
@Component // 규칙 3, 4 : 인스턴스를 생성하려는 클래스에 인스턴스 생성 어노테이션을 부여.
public class MorningGreet implements Greet {
@Override
public void greeting() {
System.out.println("Good Morning:)");
}
}
📄 EveningGreet.java
package com.example.demo.di.used;
public class EveningGreet implements Greet {
@Override
public void greeting() {
System.out.println("Good Evening:)");
}
}
참고
https://codingrecord2209.tistory.com/282
[Spring] DI 컨테이너
의존성 📌 의존성 ① 클래스 의존(구현 의존) ② 인터페이스 의존 DI 컨테이너 📌 의존성 주입(Dependency Injection) : 의존하는 부분을 외부에서 주입하는 것. 의존하는 부분 : '사용하는 객체' 클래
codingrecord2209.tistory.com
https://codingrecord2209.tistory.com/291
[Spring] Spring Initializr
Spring Initializr 📌 Spring Initializr : 스프링 부트에서 프로젝트를 시작할 때, 통합 개발 환경에 의존하지 않는 프로젝트를 만들 수 있음. https://start.spring.io/ 📌 사용법 Project 빌드 도구. Language 사용
codingrecord2209.tistory.com