스프링

· 스프링
HandlerMapping dispatcher servlet으로 들어온 모든 요청을 보고 요청에 맞는 Controller를 찾아주는 기능을 수행 한다. HandlerMapping은 인터페이스를 구현해서 생성한다. Handler mapping 설정은 dispatcher servlet 설정 파일에서 함 스프링이 제공하는 HandlerMapping 전략은 총 5가지 이다. HandlerAdapter HandlerAdapter는 HandlerMapping 을 통해 찾은 Controller를 직접 실행하는 기능을 수행한다. HandlerAdapter은 인터페이스를 구현해서 생성한다. HandlerMapping으로 찾은 Controller를 등록된 HandlerAdapter들의 supports 메서드에 대입하며 지..
· 스프링
execution Advice를 적용할 메서드까지 명시할 경우 사용된다. 제일 상세하게 적을 수 있다. excution( [접근 제어자] , 리턴타입, [패키지], 메서드이름(파라미터) ) [ ]내용은 생략이 가능하다 @Pointcut("execution(public void get*(..))") // public void인 모든 get메소드 패키지 어디에 있든 메소드의 접근 제어자가 public이고 리턴타입이 void이며 메소드 명이 get으로 시작하고 매개변수가 몇개든 상관없다는 뜻이다. @Pointcut("execution(* com.example.javaAop.*.*())") // com.example.javaAop 패키지에 파라미터가 없는 모든 메소드 메서드 리턴타입이 *로 어떤 것이든 상관이 ..
· 스프링
before 메서드를 시작하기 전에 먼저 호출이 되어 실행된다. after 메서드가 예외로 끝나던 정상적으로 끝나던 기능이 완료 되면 호출되어 실행된다. after - returning 메서드가 예외없이 정상적으로 잘 끝나면 호출되어 실행된다. after - throwing 메서드 실행 도중 예외 발생 시 호출되어 실행된다. around 메소드 실행 전/후 및 예외 발생시 호출되어 실행된다. xml 적용 시 LogAop.java public class LogAop { public Object loggerAop(ProceedingJoinPoint jointPoint) throws Throwable { String signatureStr = jointPoint.getSignature().toShortStri..
· 스프링
AOP란 ? Aspect Oriented Programming의 줄임말로 직역시 관점 지향 프로그램이라 한다. 공통으로 들어가는 기능을 따로 빼서 모든 모듈의 적용하기 위한 방법이며 공통 기능과 핵심기능을 분리하여 핵심기능중 필요한 부분에 공통기능을 적용시키는 것이다. AOP 용어 Aspect - 공통기능 Advice - Aspect 의 기능 자체 Jointpoint - Advice 를 적용해야하는 부분 (스프링은 메서드만 해당) Pointcut - 실제로 Advice가 적용된 부분 Weaving - Advice를 핵심기능에 적용하는 행위 Advice 종류 - 메서드 실행전 Advice 실행 - 메서드 실행 후 Advice 실행 - 메서드 실행중 예외발생시 Advice 실행 - 메서드 실행중 예외 발생해..
· 스프링
singleton 하나의 Bean 정의에 대해서 Spring IOC Container 내에 단 하나의 객체만 존재한다. prototype 하나의 Bean 정의에 대해서 다수의 객체가 존재할 수 있다. request 하나의 Bean 정의에 대해서 하나의 HTTP request의 생명주기 안에 단 하나의 객체만 존재한다. 즉 각각의 HTTP request는 자신만의 객체를 가진다. Web-aware Spring ApplicationContext 안에서만 유효하다. session 하나의 Bean 정의에 대해서 하나의 HTTP Session의 생명주기 안에 단 하나의 객체만 존재한다. Web-aware Spring ApplicationContext 안에서만 유효하다. global session 하나의 Bean ..
· 스프링
java로 만든 객체를 xml로 관리하여 객체주입 받는 방법과 xml로 만든 객체를 @어노테이션으로 객체주입 받는 방법이 있다. Main.java public class MainClass { public static void main(String[] args) { AbstractApplicationContext ctx = new GenericXmlApplicationContext("classpath:applicationCTX.xml"); Student student1 = ctx.getBean("student1", Student.class); System.out.println("이름 : " + student1.getName()); System.out.println("나이 : " + student1.getA..
· 스프링
xml이 아닌 @을 이용하여 객체를 주입하겠다. Main.java public class MainClass { public static void main(String[] args) { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppcationConfig.class); Student student1 = ctx.getBean("student1", Student.class); System.out.println("이름 : " + student1.getName()); System.out.println("나이 : " + student1.getAge()); System.out.println("취미 : " + stud..
· 스프링
xml로 객체주입을 하면 좋으점 자바코드를 하나도 고치지 않고도 xml에서 어떤 객체를 주입하냐에 따라 다른 기능을 사용할 수 있다. (현재는 작은 프로젝트라 번거로울 수 있지만 큰 프로젝트에선 이게 효율적일 수 있다고 함) 먼저 main에서 xml을 통한 객체주입을 받겠다는 코드와 객체주입을 받은걸 얻어오는 코드를 작성한다. public class MainClass { public static void main(String[] args) { String configLocation = "classpath:applicationCTX.xml"; AbstractApplicationContext ctx = new GenericXmlApplicationContext(configLocation); StudentIn..