1. JdbcTemplate이란? Spring Framework로 앱을 제작할 때 Data Access Layer에서 사용하는 기술은 크게 3가지입니다. 1. JPA (구현체로 Hibernate를 많이 사용합니다.) 2. MyBatis (구 iBatis) 3. JdbcTemplate 요즘은 JPA가 많이 사용된다고 알고 있습니다. 뭐.. 그래도.. 지금 보고있는 Spring Framework 입문 책에서 JdbcTemplate 객체를 가지고 Data Access를 처리하고, 또 Spring Framework 초창기부터 존재해왔다니 나름의 역사도 있는 JdbcTemplate 클래스를 공부할 필요는 있는 것 같습니다. 먼저 Java로 가장 Low하게 Data Access를 처리하기 위해선 java.sql.*..
Proxy 객체 다음 구조의 클래스 파일이 있다. Calculator.java public interface Calculator { public long factorial(long num); } ImpeCalculator.java (핵심 기능 구현 객체) public class ImpeCalculator implements Calculator { public long factorial(long num) { long result = 1; for (long i = 1; i
1. Component Scan이란? 아래와 같은 설정 클래스가 있습니다. @Configuration public class FirstConfiguration { @Bean public MemberRegisterService memberRegSvc() { return new MemberRegisterService(); } @Bean @Qualifier("printer") public MemberPrinter memberPrinter() { return new MemberPrinter(); } @Bean public VersionPrinter versionPrinter() { VersionPrinter versionPrinter = new VersionPrinter(); versionPrinter.setM..
@Autowired 애노테이션은 자동으로 주입할 빈 객체가 존재하지 않으면 익셉션을 발생시킨다. 그런데 그냥 null인 상태로의 처리 로직도 존재한다면 굳이 자동으로 주입할 빈이 없다고해서 익셉션을 발생시킬 필요가 없다. 아래 코드는 주입할 빈이 있으면 있는대로 처리하고, 없으면 없는대로 처리한다. public class MemberPrinter { private DateTimeFormatter dateTimeFormatter; public void print(Member member) { if (dataTimeFormatter == null) { System.out.printf("회원 정보: 아이디=%d, 이메일=%s, 이름=%s, 등록일=%tF\n", member.getId(), member.getE..
1. @Autowired Annotation이란? Spring Framework를 이용해서 앱을 개발하다보면 수십~수백개 이상의 빈을 설정하게 될텐데, 당연히 이러한 설정을 클래스 파일 하나에 다 담아야 하는 것은 아닙니다. 영역별로 설정 파일을 나누면 관리하기도 쉽고 가독성도 좋아집니다. 나누어진 설정 클래스를 가지고 @Autowired와 @Import를 살펴보겠습니다. Spring MVC는 한 개 이상의 설정 파일을 이용해서 컨테이너를 생성할 수 있습니다. 다음은 첫 번째 설정 클래스입니다. @Configuration public class AppConf1 { // 메서드명은 해당 빈의 이름이고, 생성되어 반환되는 객체가 바로 Bean 객체입니다. @Bean public MemberDao member..