전체 글

· 스프링
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..
· 스프링
트랜젝션을 사용하는 이유 트랜젝션을 이용하는 이유는 A가 B에게 돈을 보낸다고 가정하면 A에게서 돈을 차감하고 B에게 돈을 증가시켜야 한다. 이때 만약 B에게 돈을 증가시키는 도중 예외가 발생한다면 A는 돈이 차감된 상태로 끝나버린다. 그러면 돈이 공중분해되는 상황이 만들어 진다. 따라서 어디서든 예외가 발생되어 완료하지 못했다면 작업을 하기 이전으로 돌아가 주는 트랜젝션을 이용해야 한다. 트랜젝션 환경설정 porm.xml에 Repository를 추가한다 org.springframework spring-jdbc 5.3.23 org.springframework spring-tx 5.3.23 com.zaxxer HikariCP 2.7.4 org.mybatis mybatis 3.4.6 org.mybatis m..
코드 죄수
코드 탈출기