spring의 List타입 bean 원하는 순서로 주입하려면

intro spring을 늘 쓰지만 자주 접하지 않는 상황에선 설정이 헷갈릴 때가 있다. 얼마 전 한 프로젝트의 bean 설정을 확인하다가 아래 코드와 같이 List타입과 List 내부에 있는 객체 타입 (편의상 List<T> 타입과 T 타입 이라고 하겠다) 의 설정이 둘 다 있는 경우를 마주했다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 @Bean List<Cake> availableCakes() { return List.of( lemonCake(), chocolateCake(), strawberryCake() ); } @Bean Cake chocolateCake() { return new Cake("초코"); } @Bean Cake strawberryCake() { return new Cake("딸기"); } @Bean Cake lemonCake() { return new Cake("레몬"); } List<Cake> 을 주입받아 사용하는 코드: ...

2024년 11월 24일 · 1584 단어 · Mihyang Gu

토비의 스프링 7장 정리 - 스프링 핵심기술의 응용

Spring의 3대 핵심기술인 IoC/DI, 서비스 추상화, AOP를 애플리케이션 개발에 활용하여 새로운 기능을 만들어본다. 이를 통해 스프링의 개발철학과 추구하는 가치, 스프링 사용자에게 요구되는 것을 살펴본다. 7.1 SQL과 DAO의 분리 앞에서 했던 UserDao에서 마지막으로 개선할 점 : SQL을 Dao에서 분리하기 운영 중에 DB의 테이블or필드이름orSQL문이 변경될 수 있는데, 그 때마다 Dao를 수정해서 다시 컴파일하기에는 무리가 있기 때문. 어떻게 SQL을 Dao에서 분리할까? XML 설정을 이용한 분리: SQL을 xml설정파일의 프로퍼티 값으로 정의해서 DAO에 주입함 개별 SQL프로퍼티 방식 1 2 3 4 public class UserDaoJdbc implements UserDao { private String sqlAdd; ... } 1 2 3 <bean id="userDao" class="~~"> <property name="sqlAdd" value="insert into ~~" /> ... SQL 맵 프로퍼티 방식 SQL이 점점 많아지면 그때마다 DAO에 DI용 프로퍼티를 주입하기 귀찮으니까, SQL들을 맵에 담아두자. ...

2021년 3월 7일 · 3402 단어 · Mihyang Gu

토비의 스프링 8장 정리 - 스프링이란 무엇인가

8.1 스프링의 정의 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 애플리케이션 프레임워크 일반적인 라이브러리, 프레임워크는 특정 업무 분야나 한가지 기술에 특화된 목표를 가지고 만들어진다. (ex. 로깅, ORM라이브러리 등등) ↔ 애플리케이션 프레임워크는 특정 계층이나, 기술, 업무 분야에 국한되지 않고 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크. 스프링의 기원: Rod Johnson의 J2EE기술서적에서 J2EE(Java2 Enterprise Edition) 애플리케이션 설계 개발 전략에 대한 예제코드. ‘항상 프레임워크 기반으로 접근하라’ - 프레임워크를 만들고 그것을 이용하는 코드 → 예제수준으로 두기에 아깝다 → 오픈소스 프로젝트 시작 ...

2021년 2월 27일 · 1696 단어 · Mihyang Gu