본문 바로가기
반응형

bean12

Lazy Bean 에 대해(lazy init / lazy loading) Spring 에서 Bean이란. 스프링이 처음 기동할때 스프링 컨테이너 안에 특정 annotation이 걸리거나 설정해둔 객체들이 올라가는데, 그 올라간것들을 Bean이라고 한다. 자세한 내용은 참고포스팅을 참고바란다. 하지만 너무 많은 Bean을 등록하게 될 경우에 Spring 기동이 오래 걸리고 자주 사용되지 않는 Bean등 몇몇의 Bean은 꼭 기동시 올라오지 않아도 되는 경우가 있다. 이럴 경우 Lazy 설정을 걸어서 나중에 등록이 되도록 할수가 있다. Lazy란 게으른. 이라는 뜻으로 말그대로 게을러서 나중에 Bean이 등록이 된다. 방법은 간단하다. 늦게 뜨길 원하는 Bean에 @Lazy annotation 을 붙여주면 된다. 그리고 만약 의존성 주입을 받는 경우라면 Autowired와 함께 .. 2023. 8. 26.
[Java] Scope란? 자바 스프링을 사용하다보면 BeanScope, singletonScope등등 단어를 보고 그안에 scope라는 단어를 많이 접하게 된다. 여기서 Scope에 대해서 설명하려고 한다. Scope라는 단어의 뜻은 '범위' 라는 의미를 갖고있다. 그리고 이 의미를 자바 스프링에 입힐때, 예를 들어 BeanScope라고 한다면 말 그대로 빈이 존재할 수 있는 범위를 뜻한다. 스프링은 다음과 같은 다양한 스코프를 지원한다. 싱글톤(Singleton) : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입(Prototype) : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프 //prototype 참고 포스팅.. 2023. 8. 23.
[error] no qualifying bean of type available: expected at least 1 bean which qualifies as autowire candidate 스프링 사용하다가 빌드를 하거나 서버 기동시 제목과 같은 에러를 만날때가 있다. no qualifying bean of type available: expected at least 1 bean which qualifies as autowire candidate 구글 번역기를 돌리면 이 뜻이다. - 사용 가능한 유형의 적격 bean 없음: autowire 후보로 적격한 최소 1개의 bean이 예상됩니다. 말 그대로 호출한 Bean이 없다는 것이다. 아래 참고 포스팅을 참고하여 Bean등록 절차를 확인하고 다시 한번 코드를 살펴보는것이 필요하다. 참고 포스팅 https://thenicesj.tistory.com/320 Spring Bean 등록(@Bean은 @Configuration 내에) 이전 포스팅에서 .. 2023. 8. 18.
@Component와 @Configuration 이전 포스팅에서 Spring Bean에 대해서 다룬적이 있다. 자세한 내용은 아래 참고 포스팅 참고 바란다. 스프링에서 Bean을 등록하기 위해서는 다양한 방법이 있는데, 그중 하나가 @Component annotation이나 @Configuration annotation을 사용하는 법이다. 비슷하게 생긴 이 두가지의 차이를 설명하려고 한다. 결론 먼저 내리면 간단히 분리를 할수 있다. @Configuration의 선언부를 보면 @Component가 정의되어 있으며, 고로 @Component가 더 큰 범위이다. @Componenet - 개발자가 직접 작성한 클래스를 Bean으로 등록하고자 할 경우 사용 - @Controller, @Service, @Repository 등의 어노테이션에서 상속 @Confi.. 2023. 8. 12.
Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed spring 개발 할 시 제목과 같은 이 에러가 날 경우 해결법이다. Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed 그대로 번역기를 돌리면 아래와 같은 내용이다. 빈 중 하나를 @Primary로 표시하거나 여러 빈을 허용하도록 소비자를 업데이트하거나 소비해야 하는 빈을 식별하기 위해 @Qualifier를 사용하는 것을 고려하십시오. 그리고 이 에러도 중요하지만 바로 위에 함께 나왔을 에러도 봐줘야한다. Description: Parameter 0 of construct.. 2023. 7. 23.
spring.main.allow-bean-definition-overriding=true 자바Bean중복 에러 spring boot 에서 아래와 같은 에러가 발생하였다. *************************** APPLICATION FAILED TO START *************************** Description: The bean 'commonFilter', defined in class path resource [/ApiConfig.class], could not be registered. A bean with that name has already been defined in file [D:\SourceEclipse-2020.06\CommonFilter.class] and overriding is disabled. Action: Consider renaming one of the b.. 2023. 7. 15.
@PostConstruct, @PreDestroy 어노테이션 오늘 소개할 어노테이션은 다음과 같다. @PostConstruct @PreDestroy 해당 메서드를 이해하려면 Bean 생명주기(Life Cycle) 에 대해서 이해를 해야한다. 예전에 스프링이 지금처럼 활발하지 않을때는 인터페이스로 빈을 관리하거나, @Bean(initMethod = "initialize", destroyMethod = "close") 이런식으로 빈을 생성하여 시작시, 종료시 행해지는 메서드들을 정의하곤 했다. 그래서 최신 기술로는 오늘 소개하는 @PostConstruct, @PreDestroy 이 두 annotation을 사용하는것이 권장된다. annotation에 대해서는 아래 참고 포스팅 참고 바란다. @PostConstruct Spring은 bean을 초기화 한 이후에 @Pos.. 2023. 6. 20.
SPRINGBOOT 에서 등록된 Bean 추출 이전 포스팅에서 applicationContext를 통해서 bean을 넣는것이랑 Bean에 대한 개념을 다룬글이 있다. 자세한 내용은 아래 참고 포스팅을 참고 바란다. 이번 포스팅은 Springboot에서 서버를 기동 시키게 될때 Spring container는 bean을 모두 등록하는데 그 리스트를 출력을 하는방법을 다뤄보려고 한다. SpringBoot 프로젝트를 starter 를 통해서 생성을 할 경우 Project명Application.java 파일이 자동으로 생성이 된다. 그 안에는 package랑 기본적인 main 메서드가 들어가있다. 아래와 같다. package com.명; import org.springframework.boot.autoconfigure.SpringBootApplication.. 2023. 6. 1.
ApplicationContext(스프링 컨테이너) ApplicationContext를 스프링 컨테이너라고 한다. ApplicationContext는 BeanFactory 인터페이스의 하위 인터페이스이고, ApplicationContext는 BeanFactory에 부가기능을 추가한 것이다. 자세한 기능에 대해서는 공식 홈페이지에 명시되어있으니 한번 확인해보는것도 좋을듯 하다. https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/ApplicationContext.html ApplicationContext (Spring Framework 6.0.7 API) Expose AutowireCapableBeanFactory functionality fo.. 2023. 3. 28.
반응형