본문 바로가기

전체 글147

[chap7] AOP 프로그래밍 7-1. 프록시 / AOP 구현한 클래스의 실행시간을 출력하려면 어떻게 해야 할까? 첫번째 방법, 메서드의 시작과 끝에 시간을 구하고 이 두 시간의 차이를 출력! ImplCalculator public class ImplCalculator implements Calculator { @Override public long factorial(long num) { **long start = System.currentTimeMillis(); // 시작시간** long result = 1; for (long i = 1; i 2022. 5. 20.
[chap6] 빈 라이프사이클과 범위 6장 빈 라이프사이클과 범위 6-1. 컨테이너 초기화와 종료 // 1. 컨테이너 초기화 AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppContext.class); // 2. 컨테이너 -> 빈 객체 구해 사용 Greeter g = ctx.getBean("greeter", Greeter.class); String msg = g.greet("스프링"); System.out.println(msg); // 3. 컨테이너 종료 ctx.close(); 컨테이너 초기화 : Bean 객체 생성, 의존 주입, 초기화 컨테이너 종료 : 빈 객체의 소멸 6-2. 스프링 빈 객체의 라이프사이클 Bean 객체 생성 의존 설정 :.. 2022. 5. 20.
[chap5] 컴포넌트 스캔 5-1. @Component : 스캔 대상 지정 클래스를 스캔 대상으로 지정 @Component public class MemberDao { ... } memberDao로 지정됨 @Component("infoPrinter") public class MemberInfoPrinter { ... } infoPrinter로 지정됨 5-2 @ComponentScan 스캔 설정(등록) @Component 를 붙인 클래스를 스캔해서 빈으로 등록 @Configuration @ComponentScan(basePackages = {"spring"}) public class AppCtx { @Bean @Qualifier("printer") public MemberPrinter memberPrinter1() { return .. 2022. 5. 20.
[chap4] 의존 자동 주입 4장 의존 자동 주입 의존 자동 주입 @Autowired : 주로 사용 @Resource 4-1. @Autowire 통한 의존 자동 주입 스프링은 타입이 일치하는 빈 객체를 찾아서 주입한다. 4-2. 일치하는 빈이 없는 경우 실행되지 않음. (에러) 4-3. 자동 주입 가능한 빈이 두 개 이상 @Qualifier 자동 주입 대상 빈을 한정할 수 있다. 사용가능한 대상 @Bean @Autowired 빈 이름으로 찾기 : 한정자 @Configuration public class chap4 { @Bean public MemberPrinter printer(){ return new MemberPrinter(); } @Bean @Qualifier("printerExam2") public MemberPrinter .. 2022. 5. 20.
[chap3] 스프링 DI 3. 스프링 DI 3-1. 의존 DI(Dependency Injection) : 의존 주입 의존 : 객체간의 의존을 의미 (Service클래스가 Dao클래스에 의존한다) 1-1. MemberService가 memberDao에 의존하는 코드 의존하는 객체를 직접 생성하는 방식 public class MemberService { private MemberDao memberDao = new MemberDao(); } 1-2. 문제점 // 의존하는 MemberDao의 객체도 함께 생성된다. MemberService memberService = new MemberService(); 2-1. DI를 통한 의존 처리 의존하는 객체를 전달받아 사용하는 방식 public class MemberService { priva.. 2022. 5. 20.
[chap2] 스프링 2-1. 스프링 프로젝트 시작하기 메이븐과 그래들 차이점 프로젝트를 생성하는 과정에서pom.xml 파일 대신 build.gradle 을 작성한단 것. 작성방식의 차이 (사용자입장) 어노테이션 @Configuration : 해당 클래스를 스프링 설정 클래스로 지정 @Bean: 해당 객체가 스프링이 관리하게 됨 @Configuration public class AppContext { @Bean public Greeter greeter() { Greeter g = new Greeter(); g.setFormat("%s, 안녕하세요!"); return g; } } public class Greeter { private String format; public String greet(String guest) { r.. 2022. 5. 20.