묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
AppConfig 질문
AppConfig의 역할에 대한 질문 입니다. 기존에는 AppConfig가 구현객체를 생성하며 연결하는 역할을 맡음으로써 구현객체의 변경에 따라서 RatePolicy와 같이 AppConifg.class에서 생성하는 구현객체만 변경함으로써 기존의 구현클래스를 변경하지 않았습니다. 컴포넌트 스캔을 사용하면 기존에 있던 @Component와 @Autowired 애노테이션을 제거하기 위해 이전에 사용했던 구현클래스를 수정해야하는데 이런 수정은 기존에 말했던 역할과 상이한거 같습니다. 이렇게되면 의존관계를 외부에서 결정되는거라고 할수 있는건가요?
-
미해결스프링 핵심 원리 - 기본편
Configuration 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 강의와, 여러 질문 내용들을 종합한 결과 제가 잘 이해하고있는지 질문 드립니다.2가지 경우(1.AppConfig, 2.Auto Config)에 대해서 질문을 드리겠습니다 1.AppConfig로 빈 등록하는경우( @Configuration, @Bean 사용) 아래 제가 서술한 내용이 옳은지 확인부탁드립니다. main이나 test 에서 ,AnnotationConfigApplicationContext에 AppConfig를 파라미터로 넘기지 않아도 AppConfig에 @Configuration 이 붙어있기 때문에 스프링이 자동으로 AppConfig클래스를 탐색함-> AppConfig클래스내에 @Bean들이 있음 -> @Bean 들을 빈에 등록함 2.AutoConfig로 빈 등록하는 경우(@Configuration, @ComponentScan, @Component 사용) -아래에 제가 서술하는 내용이 옳은지 확인부탁드립니다. main이나 test 에서 ,AnnotationConfigApplicationContext에 AutoConfig를 파라미터로 넘기지 않아도 스프링이 자동으로 @Configuration을 탐색함, AutoConfig에 @Configruation이 있기때문에 AutoConfig클래스를 탐색함->Autoconfig에 @ComponentScan이 있음->@Component들을 찾아 빈으로 등록
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
BeanPropertyBindingResult 구현체가 넘어오는 과정이 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 영한님 안녕하세요. 먼저 항상 이렇게 훌륭한 강의 만들어주셔서 정말 감사드립니다. 강의 중에 BindingResult 인터페이스의 구현체로 BeanPropertyBindingResult 클래스가 들어온다고 말씀해주셨는데, BindingResult 인터페이스의 구현체 종류가 많이 있는 상태에서 어떤 구현체가 들어올지 어떻게 알 수 있는지 궁금합니다. + 여러개의 구현체를 사용해야하는 상황을 위해서 많은 클래스들을 전부 미리 빈으로 등록을 하는 것인지, 아니면 default 구현체를 autoconfiguration으로 설정해두고, 필요에 따라 bean을 추가적으로 (condition..?) 생성해내는지도 궁금합니다 + spring.factories 파일을 따라가서 springboot가 지원해주는 autoconfiguration을 따라가면서 bean으로 등록하는 위치를 찾아보는 게 맞는 방법인가요? (타고타고 가다보니 너무 파일이 방대해져서 아직 찾지못했습니다 ㅠㅠ)
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Could not find querydslplugin 문제 (해결완료)
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 아래 처럼 에러가 뜹니다.Could not find gradle.plugin.com.ewerk.gradle.plugins:querydslplugin:1.0.10 로딩이 안되네요. buildscript { dependencies { classpath("gradle.plugin.com.ewerk.gradle.plugins:querydslplugin:1.0.10") }}plugins { id 'org.springframework.boot' version '2.6.1' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java'}apply plugin: "com.ewerk.gradle.plugins.querydsl"
-
해결됨스프링 핵심 원리 - 기본편
@Configuration 적용시 클래스에 싱글톤 패턴 구현 안해도 되나요?
@Configuration 적용시 클래스에 싱글톤 패턴 구현 안해도 되나요? 실무에선 어떻게 사용되나요? 현재 DI컨테이너에다가 @Configuration해놓고 메인에 불러와서 쓰고 있는데, 어차피 빈 등록할 때 CGLIB로 싱글톤 형태로 반환해주니까, 여기(AppContext)에 등록된 Bean 클래스 안에 굳이 싱글톤 패턴 적용 안해도 괜찮을까요?
-
미해결스프링 핵심 원리 - 기본편
@Configuration 없이 @Bean만 사용할 때에 대한 질문
안녕하세요! 진짜 영한님 강의는 최고네요. 감사합니다. 듣다가 질문이 생겼는데요. `@Configuration`을 주석처리하고 `@Bean`만 남겼을 때 빈으로 등록되긴 하는데 여러개가 등록(싱글톤 X)된다고 하셨잖아요. 여기서 헷갈리는 이유는, "Bean은 스프링컨테이너에서 관리되는 싱글톤 객체이다."라는 이론적 내용과, "같은 이름의 Bean이 여러개 생성되기도 한다"라는 이 강의의 실험 결과과 충돌해서인데요. 엄밀한 정리를 하고 싶어서 질문드려요. 일단은 "같은 이름의 Bean이 여러개 생성되기도 한다"가 먼저 가능성 측면에서 맞는 얘기고, "Bean은 스프링컨테이너에서 관리되는 싱글톤 객체이다."는 정상적(일반적)인 방식으로 Bean을 등록한다면이라는 전제가 깔렸을 때 맞는 얘기일 거로 생각 됩니다. 그럼, 아래 내용중에는 무엇이 맞는 걸까요? 영한님이 보여주신 실험처럼, `@Configuration`을 누락하면 동일한 Bean이 여러번 생성되는 경우가 있는데 이 때, 1. `memberRepository`라는 메서드가 3번이나 호출되었는데, 새로 생성될 때마다 기존에 먼저 생성되었던 빈을 덮어쓰기(override)한다. 고로 생성만 N번 될 뿐이지, 결과적으로는 스프링 내에서는 싱글톤으로 존재한다.(* 만일 이게 맞다면 컴파일타임/런타임 모두 에러가 안나고, 동작 자체에는 문제가 없겠네요. 리소스는 많이 잡아먹겠지만요.) 2. `memberRepository`라는 메서드가 3번이나 호출되어 총 3개의 인스턴스가 빈으로 각각 등록되었다. 고로 이름을 같지만 3개의 빈이 실제로 모두 존재한다. (* 만일 이게 맞다면, 이 경우 빈을 사용하기 위해 주입할 때 컴포넌트 스캔 결과, ConflictingBeanDefinitionException이 뜨게 되겠네요.) --- 앗. 질문이 잘못된 부분이 있어서 수정했습니다.
-
미해결스프링 핵심 원리 - 기본편
@ComponentScan 시 Singleton방식
안녕하세요! 강사님 다름이아니라 라이브코딩 도중 의문점이 생겨서 질문 남겨봅니다! 번거로우실텐데 죄송합니다 질문1. 강의에서 본것처럼 AppConfig.class 에서 @Configuration 이 붙지않으면 스프링 컨테이너가 스프링빈들을 전부 싱글톤 방식이 아닌 계속 인스턴스생성을하여 메모리 낭비가 되는 모습까지는 이해했습니다. 근데, AutoAppConfig.class에서 @ComponentScan 시에 @Configuration 애노테이션을 안붙여도 모든 Component들이 스캔 후 알아서 싱글톤방식으로 빈이 생성되는것을 test코드를 통해 확인했습니다! AutoAppConfig에서 컴포넌트 스캔 자체가 AppConfig같은 설정정보 없이도 @Component만을 탐색해서 빈을 등록하는거까지는 이해하고는 있는데 왜 @Configuration 애노테이션을 안붙여도 자동적으로 싱글톤방식으로 빈이 생성되는지 궁금합니다! 제가 뭘 놓치고 있는걸까요???