사용자 도구

사이트 도구


spring:home

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
spring:home [2018/09/02 14:02] – [AOP(Aspect Oriented Promming : 관점지향프로그래밍)] taekguspring:home [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1
줄 5: 줄 5:
     * [[spring:mvcproject|Spring MVC Project]]     * [[spring:mvcproject|Spring MVC Project]]
  
 +  - [[https://www.codeproject.com/Articles/1263860/WebControls/|Spring Boot]]
 +  - [[https://start.spring.io|Spring Boot app을 쉽게 생성하는 "Spring 초기화 해주는 자":https://start.spring.io]]
 +  - [[https://goddaehee.tistory.com/204|Spring에서 jsp view사용]]
 ==== DI(Dependency Injection)와 IOC컨테이너 ==== ==== DI(Dependency Injection)와 IOC컨테이너 ====
  
줄 193: 줄 196:
   * XML스키마기반의 AOP구현   * XML스키마기반의 AOP구현
   * @Aspect어노테이션기반의 AOP구현   * @Aspect어노테이션기반의 AOP구현
 +용어정리
   * Aspect : 공통 기능   * Aspect : 공통 기능
   * Advice : Aspect의 기능 자체   * Advice : Aspect의 기능 자체
줄 199: 줄 202:
   * Pointcut : Jointpoint의 부분으로 실제로 Advice가 적용된 부분   * Pointcut : Jointpoint의 부분으로 실제로 Advice가 적용된 부분
   * Weaving : Advice를 핵심 기능에 적용 하는 행위   * Weaving : Advice를 핵심 기능에 적용 하는 행위
 +<code xml>
 +<?xml version="1.0" encoding="UTF-8"?>
 +<beans xmlns="http://www.springframework.org/schema/beans"
 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" profile="dev"
 + xmlns:aop="http://www.springframework.org/schema/aop"
 + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 + http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
 + <!-- Root Context: defines shared resources visible to all other web components -->
 + <bean id="logAop" class="com.taekgu.ex.LogAop" />
 + <aop:config>
 + <aop:aspect id="logger" ref="logAop">
 + <aop:pointcut id="publicMethod"
 + expression="within(com.taekgu.ex.*)" />
 + <aop:around pointcut-ref="publicMethod" method="loggerAop" />
 + </aop:aspect>
 + </aop:config>
 + <bean id="serverInfo" class="com.taekgu.ex.ServerInfo">
 + <property name="serverAddress" value="localhost"></property>
 + <property name="serverPort" value="8080"></property>
 + </bean>
 +
 +</beans>
 +</code>
  
 +<code java>
 +package com.taekgu.ex;
 +
 +import org.aspectj.lang.ProceedingJoinPoint;
 +
 +public class LogAop {
 + public Object loggerAop(ProceedingJoinPoint joinpoint) throws Throwable {
 + String signatureStr = joinpoint.getSignature().toShortString();
 + System.out.println(signatureStr + "is start.");
 + long st = System.currentTimeMillis();
 + try {
 + Object obj = joinpoint.proceed();
 + return obj;
 + } finally {
 + long et = System.currentTimeMillis();
 + System.out.println(signatureStr + " is finished.");
 + System.out.println(signatureStr + " 경과시간 " + (et - st));
 + }
 +   }
 +}
 +</code>
spring/home.1535896947.txt.gz · 마지막으로 수정됨: 2025/04/15 10:05 (바깥 편집)