반응형

Spring을 사용한 제어 및 의존성 주입의 역전 소개

1. 개요 이 예제에서는 IoC(Inversion of Control) 및 DI(Dependency Injection)의 개념을 소개하고 이러한 개념이 Spring 프레임워크에서 어떻게 구현되는지 살펴봅니다. 2. 제어 역전이란 무엇입니까? 제어 역전은 개체 또는 프로그램의 일부에 대한 제어를 컨테이너 또는 프레임워크로 이전하는 소프트웨어 엔지니어링의 원칙입니다. 우리는 객체 지향 프로그래밍의 맥락에서 그것을 가장 자주 사용합니다. 사용자 지정 코드가 라이브러리를 호출하는 기존 프로그래밍과 달리 IoC는 프레임워크가 프로그램의 흐름을 제어하고 사용자 지정 코드를 호출할 수 있도록 합니다. 이를 가능하게 하기 위해 프레임워크는 추가 동작이 내장된 추상화를 사용합니다. 자체 동작을 추가하려면 프레임워크의 클..

Java 2022.10.31

Spring Controller의 JUnit 테스트를 위한 ApplicationContext를 로드하지 못했습니다.

1. 개요 Spring Boot 애플리케이션에서 빈 의 하이브리드 정의는 어노테이션 기반 및 XML 기반 구성 을 모두 포함하는 것 입니다. 이 환경에서는 테스트 클래스에서 XML 기반 구성을 사용할 수 있습니다 . 그러나 때때로 이 상황에서 " Failed to load ApplicationContext "라는 애플리케이션 컨텍스트 로드 오류가 발생할 수 있습니다 . 이 오류는 애플리케이션 컨텍스트가 테스트 컨텍스트에 로드되지 않았기 때문에 테스트 클래스에 나타납니다. 이 예제에서는 XML 애플리케이션 컨텍스트를 Spring Boot 애플리케이션의 테스트에 통합하는 방법에 대해 설명합니다. 2. "ApplicationContext 로드 실패" 오류 Spring Boot 애플리케이션에 XML 기반 애플리..

Java 2022.10.31

Spring의 순환 의존성

1. 순환 의존성이란 무엇입니까? 순환 의존성은 빈 A가 다른 빈 B에 종속되고 빈 B도 빈 A에 종속될 때 발생합니다.Bean A → Bean B → Bean A물론 더 많은 빈을 암시할 수 있습니다.Bean A → Bean B → Bean C → Bean D → Bean E → Bean A 2. Spring에 일어나는 일 Spring 컨텍스트가 모든 빈을 로드할 때 완전히 작동하는 데 필요한 순서대로 빈을 생성하려고 시도합니다. 순환 의존성이 없다고 가정해 보겠습니다. 대신 다음과 같은 것이 있습니다.Bean A → Bean B → Bean CSpring은 bean C를 생성하고 bean B를 생성하고 (그리고 그것에 bean C를 주입) bean A를 생성하고 bean B를 주입한다.그러나 순환 의..

Java 2022.10.31

최신 버전으로 업데이트 후 @EnableSwagger2 교체 물어보다

최신 버전으로 업데이트 후 @EnableSwagger2 교체 물어보다 1. 질문(문제점): springfox-swagger2최신 버전 으로 마이그레이션 2.10.0했지만 @EnableSwagger2더 이상 사용되지 않는 것 같습니다. Swagger를 Spring Boot 프로젝트에 사용하려면 어떤 어노테이션을 사용해야 합니까? @EnableSwagger2WebMvc? 2. 해결방안: @EnableSwagger2는 swagger 2.10.x에서 제거되었지만 3.xx에서는 다시 있습니다. @EnableSwagger2WebMvc는 3.0.0+에서 더 이상 사용되지 않습니다. 웃기지만 사실입니다 :) 선택적으로 Spring 5 MVC에서 다음 의존성을 사용할 수 있습니다. io.springfox springfo..

Java 2022.10.29

@SpringBootTest가 테스트 속성을 사용하지 않음 물어보다

@SpringBootTest가 테스트 속성을 사용하지 않음 물어보다 1. 질문(문제점): Spring Boot 애플리케이션에서 application.properties를 암호화하기 위해 jasypt를 사용하고 있습니다. 내 목표는 jasypt가 테스트 암호화기 암호와 함께 사용되도록 통합 테스트를 업데이트하는 것입니다. 내 문제는 내 테스트가 테스트 속성을 무시하지 않는다는 것입니다. 의존성: com.github.ulisesbocchio jasypt-spring-boot-starter 3.0.2 org.springframework.boot spring-boot-starter-test test org.junit.jupiter junit-jupiter-api ${junit-jupiter.version} te..

Java 2022.10.29

JavaBeanExecutable HV000254 Java Enum에 대한 매개변수 메타데이터 누락 물어보다

JavaBeanExecutable HV000254 Java Enum에 대한 매개변수 메타데이터 누락 물어보다 1. 질문(문제점): 스프링 부트 애플리케이션을 1.5에서 2.3.5로 업그레이드했습니다(스프링 부트 gradle 플러그인 사용). 스프링 부트 애플리케이션이 시작되면 다음 경고가 4번 나타납니다. 2020-11-05 13:29:19.432 WARN 3931 --- [nio-8080-exec-4] ohvipjavabean.JavaBeanExecutable : HV000254: FacetField(String, int, String, String, String, int, Class)에 대한 매개변수 메타데이터 누락 , 암시적 또는 합성 매개변수를 선언합니다. 여러 매개변수에 동일한 삭제가 있는 경우..

Java 2022.10.29
반응형