반응형

Spring 4

왜 Spring에서는 필드 주입을 지양하나?

Spring Framework에서 의존성 주입이란 객체지향 프로그래밍에서 중요한 원칙 중 하나인 의존성 역전 원칙(Dependency Inversion Principle)을 적용하는 방법입니다. 이를 통해 객체 간의 결합도를 낮추고 코드의 유연성을 높일 수 있습니다. 이전 글에서 의존성 주입에 대한 간단한 설명을 작성했는데요. 이번에 의존성 주입 방법에 대해서 알아보겠습니다. Spring에서 의존성 주입을 하는 방법은 크게 세 가지입니다. 생성자 주입(Constructor Injection) Setter 주입(Setter Injection) 필드 주입(Field Injection) 이번 글에서는 이 세 가지 방법에 대해 자세히 알아보고 왜 필드 주입을 권장하지 않는지에 대해 살펴보겠습니다. 1. 생성자 ..

Spring 2023.07.20

Spring 프레임워크의 핵심 - DI와 IoC 이해하기

의존성 주입(Dependency Injection) 의존성 주입(Dependency Injection, DI)은 소프트웨어 엔지니어링에서 사용되는 설계 패턴 중 하나로, 객체지향 프로그래밍에서 클래스 간의 의존 관계를 관리하는 기법입니다. 코드의 결합도를 낮추고 재사용성 및 테스트 용이성을 향상시킵니다. 일반적으로 객체는 자신이 필요로 하는 의존 객체를 직접 생성하여 사용하는데, 이는 객체 간의 강력한 결합을 만들어냅니다. DI는 이러한 결합을 느슨하게 만들어주는데, 객체가 자신이 필요로 하는 의존 객체를 직접 생성하는 대신 외부에서 주입받아 사용하기 때문입니다. 예를 들어, 아래와 같은 코드가 있다고 가정해봅시다. public class CustomerService { private CustomerRe..

Spring 2023.07.19

Spring Boot profile 환경별 설정하기(YAML)

Spring Boot에서 로컬, 개발, 실서비스 같은 여러 환경을 하나의 application.yml 파일에 설정하고 사용하는 방법에 대해서 알아보자. YAML 설정 하나의 application.yml 파일에 여러 환경의 설정 정보를 저장하려면 spring.profiles 를 통해 설정하면 된다. ---로 구분 한다. # local, dev, prod 공통 설정 server: port: 8080 tomcat: uri-encoding: UTF-8 --- spring: profiles: local datasource: url: "jdbc:mysql://test-server/test" username: "dbuser" password: "dbpass" --- spring: profiles: dev dataso..

Spring 2021.05.15

JPA @EmbeddedId를 이용한 복합키 매핑하기

아래와 같이 테이블의 키가 둘 이상의 컬럼으로 구성되어 있는 복합 키일 경우 매핑하는 방법에 대해 알아보자. JPA에서는 복합 키를 지원하기 위해 @IdClass와 @EmbeddedId를 제공한다. 여기서는 @EmbeddedId를 이용해서 복합 키를 매핑하는 방법에 대해 알아보자. 아래 내용은 김영한님의 책 자바 ORM 표준 JPA 프로그래밍에서 나온 내용 중의 일부분이다. JPA 복합 키를 사용하려면 별도의 식별자 클래스를 만들어야 한다. @EmbeddedId 를 적용한 식별자 클래스는 다음 조건을 만족해야 한다. @EmbeddedId 어노테이션을 붙여줘야 한다. Serializable 인터페이스를 구현해야 한다. 기본 생성자가 있어야 한다. 식별자 클래스는 public 이어야 한다. 위 조건을 만족하..

Spring/JPA 2021.05.13
반응형