분류 전체보기(89)
-
test디버깅
컨트롤 f8을 하여 브레이크 포인트를 잡아 둔다 그 후에 브레이크 포인트 ( 내가 잡은 브레이크 포인트에서 실행시에 멈춘다 ) 그다음 부터 디버깅을 진행한다. f8을 하면 ( step over) 다음 코드로 이동한다. 1. 브레이크 포인트를 잡아 둔다 . 단축키( ctrl+ F8) 2. step over 다음 코드로 이동한다. 단축키( F8) 3. step into 단축키 (F7) 안에서 실행되는 메소드를 들어가서 확인 해볼수 있다 , 그러나 이걸 잘못 사용하게 될시에 저렇게 갑자기 이상한 흐름으로 빠지게 된다 이럴때는 step out 단축키(shitf + f8 ) 해서 해당 스택에서 , 실행시키고 나오면 된다 그러면 빠져온다. 4.user에 담긴 값들을 확인 가능하다 , variables 지역 스포크에..
2023.03.26 -
@Inject어노테이션을 만들어 DI 하기
1. @Inject 어노테이션을 만들기 package hello.hellospring.di; import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) public @interface Inject { } 2.car 클래스에 carPosition 필드에 @Inject어노테이션 붙이기 package hello.hellospring.di; public class Car { public CarName carName; @Inject private CarPosition carPosition; public CarName getCarName() { return carName; } public CarPosition getCarPosition() { return..
2023.02.28 -
Reflection과 Annotation으로 프록시 만들어보기
1. 어노테이션을 만든다. @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface StringMethodInject { String value() default "method"; } 1) StringMethodInject이라는 어노테이션을 만들었다. 2) 런타임 시점에 메소드를 타깃으로 해당 어노테이션이 달려있다면 메소드에 값을 주입한다. package hello.hellospring.annotation2; import java.lang.annotation.*; @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD)..
2023.02.28 -
Ioc와 DI
IoC란 Inversion of Control의 줄임말이며, 제어의 역전이라고 한다. 스프링 애플리케이션에서는 오브젝트(빈)의 생성과 의존 관계 설정, 사용, 제거 등의 작업을 애플리케이션 코드 대신 스프링 컨테이너가 담당한다. 이를 스프링 컨테이너가 코드 대신 오브젝트에 대한 제어권을 갖고 있다고 해서 IoC라고 부른다. 따라서, 스프링 컨테이너를 IoC 컨테이너라고도 부른다. IoC 컨테이너의 가장 기초적인 역할을 오브젝트를 생성하고 이를 관리하는 것이다. 스프링 컨테이너가 관리하는 이런 오브젝트는 빈이라 부른다. 설정 메타 정보는 바로 이 빈을 어떻게 만들고 어떻게 동작하게 할 것인가에 관한 정보이다. 스프링 컨테이너는 자바 코드, XML, Groovy 등 다양한 형식의 설정 정보를 받아들일 수 있..
2023.02.28 -
autowired vs constructor injection
의존 관계 자동 주입 의존 관계 주입(DI)에는 크게 4가지 방법이 있다. 생성자 주입 수정자 주입(setter주입) 필드 주입 일반 메서드 주입 스프링 컨테이너가 하는 일 1. 스프링 빈을 등록 2. 스프링 빈에 등록된 것들에 di 의존 관계 주입을 한다. 생성자 주입 - 이름 그대로 생성자를 통해서 의존 관계를 주입 받는 방법이다 - 생성자 호출 시점에 딱 1번만 호출 되는것이 보장된다. 필수 , 불변 의존 관계에 사용 -> 값을 바꿀수 없게 생성자에 다가 값을 넣는다. final 함수를 사용해 무조건 값이 있어야 한다 . -> 만약 누군가 생성자 메서드를 지우게 되면 컴파일 에러 발생 시킨다. @Component public class OrderServiceImpl implements OrderSe..
2023.02.25 -
깃 허브 사용법
echo "# SpringCore" >> README.md ->리드미 파일을 생성한다 "SpringCore" git init -> git에 들어간다 git add README.md -> 리드미 파일 저장 git commit -m "first commit" -> 리드미 파일 커밋 메세지( 로컬저장소에 커밋) git branch -M main ->브런치를 main으로 바꾼다 ( 그이유는 main으로 바꿔야 커밋이 된다, 원격 브런치 명이랑 로컬 브런치 명이랑 같아야된다) git remote add origin https: // 주소 -> 깃 원격 지에 저장소 주소를 저장(연결) git push -u origin main -> 브런치 main으로 저장소 에다가 업데이트 한다. 이 과정인데 가장 중요한것은 ad..
2023.02.18