테스트 코드로 진행하겠다. 등록된 빈 보기 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SameBeanConfig.class); SameBeanConfig에 타입이 MemberRepository인 것 2개 만들기 @Configuration static class SameBeanConfig { @Bean public MemberRepository memberRepository1() { return new MemoryMemberRepository(); } @Bean public MemberRepository memberRepository2() { return new MemoryMemberRepository(); ..
spring
Test코드 진행로 진행해보겠다. 코드 전체보기 더보기 package hello.core.beanfind; import hello.core.AppConfig; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.annotation.AnnotationConfigApplicationCon..
AppConfig 스프링 기반으로 변경 // AppConfig는 애플리케이션의 실제 동작에 필요한 "구현 객체를 생성"한다. // AppConfig는 MemoryMemberRepository객체를 생성하고 그 참조값 MemberServiceImpl을 생성하면서 생성자로 전달한다. // 클라이언트인 MemberServiceImpl입장에서 보면 의존관계를 마치 외부에서 주입해주는 것 같다고 해서 DI(Dependency Injection) = 의존관계 주입 또는 의존성 주입이라고 한다. @Configuration : AppConfig에 설정을 구성 @Bean : 각 메서드에 사용. 스프링 컨테이너에 스프링 빈으로 등록 🟢🟡🟠 주의 빈 이름은 메서드의 이름을 사용하지만, 빈 이름을 직접 부여할 수도 있다.(@..
IoC, DI, 컨테이너 제어의 역전 IoC(Inversion of Control) 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성, 연결, 실행했다. 즉, 구현 객체(예를들어, Service에서 생성, 연결, 실행 다 함..)가 프로그램의 제어 흐름을 스스로 조종했다. 하지만! AppConfig를 생성한 이후에는 구현 객체는 자신의 로직을 실행하는 역할만 담당한다. 즉, 프로그램의 제어의 흐름은 AppConfig가 가져간다. 프로그램에 대한 제어 흐름에 대한 권한은 모두 AppConfig가 가지고 있다. 심지어 OrderServiceImpl 도 AppConfig가 생성한다. 그리고 AppConfig는 OrderServiceImpl 이 아닌 OrderService 인터페이스의 다른 구현 객체..
내용프로젝트명 : 직무별 채용 사이트 추천 서비스기간 : 23.08.04-23.08.25 취업에 관심이 많은 취준생으로서, IT, 기획, 엔지니어 등 분야별 채용 사이트를 추천해주는 서비스가 있으면 좋을 것 같아 채용 사이트 추천 서비스로 주제로 정했다.구직 및 이직자를 위한 직무별 구직 사이트 추천과 멘토링 서비스 등 다양한 구직 지원 서비스 사이트이다.부트텐트 잇다 웹페이지 참고 사이트와 취업후기 연결필요(사이트별 취업후기) Stackspring bootjpajwtmysql 테이블 설계users : 회원정보review : 취업후기interest : 유저관심회사리스트company : 채용 사이트job : 직종jobRecommend : 직종추천(mbti-직종 중간테이블)mentors : 멘토mentor..
요약 Spring MVC의 @RestController은 @Controller와 @ResponseBody의 조합 (@Controller + @ResponseBody = @RestController) @Controller의 역할은 Model 객체를 만들어 데이터를 담고 View를 찾는 것. @RestController는 단순히 객체만을 반환하고 객체 데이터는 JSON 또는 XML 형식으로 HTTP 응답에 담아서 전송. 차이 1. @Controller는 클래스를 Spring MVC 컨트롤러로 표시하는데 사용 @RestController는 RESTful 웹 서비스에서 사용되는 특수 컨트롤러이며 @Controller + @ResponseBody와 동일 // 아래 두 코드는 동일한 동작 // @Controller..