Spring 11

[Spring Error] Error creating bean with name 'jpaAuditingHandler':

0. 개요@WebMvcTest를 활용해서 컨트롤러에 대한 테스트 코드를 작성하고 실행 중, 아래와 같은 오류가 발생했다.이번 포스팅에서는 이 오류의 원인과 해결 방법을 공유하려고 한다.Error creating bean with name 'jpaAuditingHandler': Cannot resolve reference to bean 'jpaMappingContext' while setting constructor argument1. 문제해당 오류는 jpaAuditingHandler 빈을 생성하는 동안 jpaMappingContext 빈을 찾을 수 없다는 BeanCreationException이다. 이 문제는 Spring Data JPA에서 발생하며, 보통 @EnableJpaAuditing을 활성화하지 ..

Spring 2025.05.01

[Spring Boot] DB 연결하기 - MySQL, H2, Redis

1. MySQL(0) MySQL 로컬 서버 활성화/종료# 서버 활성화mysql.server start# 서버 종료mysql.server stop (1) 터미널로 연결하기로컬에 설치된 MySQL 서버에 root 사용자로 접속하는 명령어.mysql -u root -p MySQL 원격 접속을 위한 명령어.-h: 호스트. 111.111.111.111은 MySQL 서버의 IP 주소.-P: 포트 번호.-u: 사용자 이름.-p: 비밀번호 입력을 요청.mysql -h 111.111.111.111 -P 3306 -u nhn_exam_17 -p (2) Spring Boot 에서 properties 파일로 연결하기의존성 추가. com.mysql mysql-connector-j runtime 2. pr..

Spring 2024.11.30

[Spring Boot] 01. Spring Boot Core (4) - Test와 Logging

10. Spring Boot TestTesting 이란?테스팅의 종류Spring Boot Testing11. 로깅10. Spring Boot TestTesting 이란?Java로 작성된 SW의 각 부분이 제대로 동작하는지 확인하는 과정.일바적으로 SW가 동작하길 기대하는 방식을 Given/When/Then 패턴으로 작성.Given: 어떠한 데이터가 주어질때.When: 어떠한 기능을 실행하면.Then: 어떠한 결과를 기대한다. 테스팅의 종류단위 테스트 (Unit Testing)함수나 메소드의 기능을 검증하는 테스트이다.각 기능이 독립적으로 올바르게 동작하는지 확인하기 위해 사용.통합 테스트 (Integration Testing)단위 테스트를 통과한 개별 Component나 Class가 서로 올바르게 협력하..

Spring 2024.11.24

[Spring Boot] JDK Proxy vs CGLIB Proxy

JDK Proxy인터페이스 기반 프록시JDK Proxy는 자바 리플렉션과 인터페이스를 기반으로 프록시 객체를 생성한다. 따라서 대상 객체가 반드시 인터페이스를 구현해야 한다.리플렉션 사용.더보기Proxy.newProxyInstance를 보면 Reflection을 사용하고 있다.InvocationHandler를 구현해서 사용.public class JdkGreeting implements Greeting { Greeting proxy; public JdkGreeting(KoreanGreeting koreanGreeting) { proxy = (Greeting) Proxy.newProxyInstance(Greeting.class.getClassLoader(), ..

Spring 2024.11.24

[Spring Boot] 서비스 추상화 (Portable Service Abstraction)

1. 서비스 추상화 (PSA, Poratble Service Abstraction)개발자가 특정 환경이나 기술에 종속되지 않고, 일관된 방식으로 서비스를 사용할 수 있도록 추상화를 제공.Interface로 사용하고, Interface의 구현부(implements)만 수정해서 사용.2. Spring Boot Application의 내장 Web Server를 Tomat -> Jetty로 변경하기(1) spring-boot-starter 에서 tomcat 관련 라이브러리를 제거.(2) jetty 관련 라이브러리를 추가. pom.xml 4.0.0 org.springframework.boot spring-boot-starter-parent 3.2.5 ..

Spring 2024.11.09

[Spring Boot] 01. Spring Boot Core (3) - AOP(관점 지향 프로그래밍) *

8. 관점 지향 프로그래밍 (AOP)AOPSpring AOP 활성화AOP 주요 용어 정리Spring AOP 문법 - Point CutPointcut - Designator(지시자) 옵션Pointcut - 표현식 예제Spring AOP 문법 - AdviceAdvice - 사용Advice - JoinPoint 활용8. 관점 지향 프로그래밍 (AOP)AOP프로그램 구조를 다른 방식으로 생각하게 함으로써 OOP를 보완.OOP에서 모듈화의 핵심 단위는 Class 이지만, AOP에서 모듈화의 핵심 단위는 Aspect.관점(Aspect)는 다양한 타입과 객체에 걸친 관심(Concern)을 모듈화 할 수 있게 한다.관심사를 분리하여, 관점별로 각각의 기능을 모듈화.설정을 추가하여 Weaving함.(Weaving: Ad..

Spring 2024.11.08

[Spring Boot] @ConfigurationProperties 활성화시 @Profile 무시 에러

1. 에러 발생의도문제문제 원인 파악문제가 발생한 코드2. @ConfigurationProperties란?Externalized Configuration (외부 구성) Externalized Configuration 사용 (바인딩)@ConfigurationProperties3. 해결Bean 등록 방법 2가지@Configuration + @Bean@Component4. 결론1. 오류 발생의도Profile에 따라서 다른 Bean이 동작하게 하고 싶었다.@Profile 기능을 이용해서 아래 코드처럼 eng Profile이 활성화되면 해당 클래스가 구현되게 하고 싶었다.(profile에 따라서 서로 다른 클래스 구현)문제@ConfigurationProperties("eng"), @Profile("eng"), ..

Spring 2024.11.08

[Spring Boot] 01. Spring Boot Core (2) - 자동 구성과 외부 구성

5. Spring Boot 코드 살펴보기Spring Boot 동작 원리 알기 - 자동 생성 코드 살펴보기6. 자동 구성과 조건maven에 라이브러리 추가하기Auto Configuration(자동 구성) 동작 원리라이브러리 추가시 자동 구성Auto Configuration 에서 제외@Conditional@ConditionalOnXXX7. 외부 구성Externalized Configuration 사용 (바인딩)Spring Profile5. Spring Boot 코드 살펴보기Spring Boot 동작 원리 알기 (1) 자동 생성 코드 살펴보기 - pom.xmlspring-boot-starter-parentspring-boot 버전별로 지원하는 라이브러리 의존성 목록.spring-boot 버전을 업그레이드하면 ..

Spring 2024.11.06

[Spring Boot] Lombok

1. LombokJava Library.반복되는 메소드를 Annotation을 사용해서 자동으로 작성해주는 라이브러리.생성자, Getter, Setter, Builder, Logger 등 다양한 코드를 작성하는 과정을 제거해준다.  2. 자주 사용하는 Annotation Lombok 의존성 추가더보기더보기Lombok 의존성 추가 org.projectlombok lombok 1.18.34 @Getter해당 클래스의 각 필드에 대해 getter 메소드를 생성./* getName(), getAge() 자동 생성 */@Getterpublic class Example { private String name; private int age;} @Setter해당 클래스의 각 필드에 대해 setter 메..

Spring 2024.11.06

[Spring Boot] 01. Spring Boot Core (1) - Spring Boot 소개, IoC, DI

1. Spring Boot 소개Spring BootSpring FrameworkSpring Framework ModulesSpring Framework 특징Spring Boot 목표Spring Boot 시작Spring Boot 기능Spring Boot vs Spring Framework2. Spring Boot 프로젝트 생성 및 실행Spring Boot 프로젝트 생성Spring Boot 프로젝트를 실행하는 여러가지 방법3. Spring IoCIoC: Inversion of Control (제어 역전)Bean FactoryApplicationContextSpring BeanBean 등록Stereotype AnnotationSpring Bean 객체의 생명주기 설정4. 의존성 주입 (Dependency In..

Spring 2024.11.05