import java.util.Date;
class Member {
String name;
String nickname;
public Member () {}
}
public class UnderstandDI {
public static void main(String[] args) {
//날짜를 구하기 위해서는 Date 클래스에 의존해야한다.
Date date = new Date();
System.out.println(date);
}
public static void getDate(Date d) {
Date date = d;
System.out.println(date);
}
public static void memberUse1() {
//강합 결합: 직접 생성
Member m1 = new Member();
}
public static void memberUse2(Member m) {
//약한 결합: 생성된 것을 주입 받음 - 의존 주입 (Dependency Injection)
Member m2 = m;
}
}
Thu Dec 14 14:06:59 KST 2023
public 부분을 private으로 변경하면 에러가 발생함.
프라이빗이기 때문에 호출이 안된다.
약결합은 외부에 있는 거를 받아들이는 거고 new가 없음. 생성자가 여기서 쓰이지 않고 생성자가 프라이빗일지라도 약결합 같은 경우. 즉, 인수로 전달하는 경우에는 오류에 포함하지 않음
강결합이 얼마나 오류가 날 수 있는 가능성이 많은지, 약 결합에 비해서 그거를 비교해주는 것
강결합은 무조건 자기 내부에서 다른 클래스의 객체를 생성할 수 있기 때문에.
책보면서 따라해보았다.
여기서 더 추가가 됐다.
package com.study.springboot;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.study.springboot.bean.Config;
import com.study.springboot.bean.Member;
import com.study.springboot.bean.Printer;
//@SpringBootApplication
public class Ex02JavaCodeDiApplication {
public static void main(String[] args) {
//SpringApplication.run(Ex02JavaCodeDiApplication.class, args);
//코드가 안맞을때 사용하면 됨
//컨트롤+쉬프트 +O 해서 import를 자동으로 바꿈
ApplicationContext context =
new AnnotationConfigApplicationContext(Config.class);
//2. Member Bean 가져오기
Member member1 = (Member)context.getBean("member1");
member1.print();
//3.Member Bean 가져오기
Member member2 = context.getBean("hello", Member.class);
member2.print();
//4.PrinterB Bean 가져오기
Printer printer = context.getBean("printerB", Printer.class);
member1.setPrinter(printer);
member1.print();
}
}
import할때 컨트롤+쉬프트+O 를 누르면 자동으로 등록해준다
결과는

이건 실행 순서 방법임
이제는 두 객체를 비교해본다
//5. 싱글톤인지 확인
if(member1 == member2) {
System.out.println("동일한 객체입니다.");
}else {
System.out.println("서로 다른 객체입니다.");
}
}
서로 다른 객체라고 뜬다.
컴파일된 결과
바이트코드다. (기계어)
'백엔드 > 스프링부트' 카테고리의 다른 글
jsp, 스프링부트 간단한 게시판 만들기 (0) | 2023.12.27 |
---|---|
mysql 연동하기 (1) | 2023.12.22 |
스프링부트 배우기 (0) | 2023.12.15 |
스프링부트 시작 (0) | 2023.12.14 |
스프링 프레임워크와 스프링 부트 (0) | 2023.12.12 |