Spring_Annotation_AOP
3310 단어 annotation
@Component
public class UserService {
private UserDAO userDAO;
public void add(User u){
this.userDAO.save(u);
}
public UserDAO getUserDAO() {
return userDAO;
}
@Resource(name="userDAOImpl")
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
}
@Resource 자동 어셈블
둘.애플리케이션 Context 구성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"
xmlns:context="http://www.springframework.org/schema/context"
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/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- AutowiredAnnotationBeanPostProcessor , -->
<context:annotation-config/>
<!-- -->
<context:component-scan base-package="com.job"/>
<!-- aop -->
<aop:aspectj-autoproxy/>
</beans>
셋.슬라이스 클래스 작성
@Aspect
@Component
public class LogInteceptor {
@Before("execution(public void com.job.dao.UserDAOImpl.save(com.job.model.User))")
public void beforeMethod(){
System.out.println("Method start!");
}
@Pointcut("execution (public * com.job.dao..*.save(..))")
public void method(){
};
@Before("method()")
public void beforeMethod(){
System.out.println("Method start!");
}
@Around("method()")
public void around(ProceedingJoinPoint pjp) throws Throwable{
System.out.println("around before!");
pjp.proceed();
System.out.println("around after");
}
}
참고: 먼저 구성 요소@Component로 등록해야 합니다.
탄젠트 등록
@Before("execution(public void com.job.dao.UserDAOImpl.save(com.job.model.User))")
@Before는 호출 방법이 실행되기 전에 수행됨을 나타냅니다.
execution(public void com.job.dao.UserDAO Impl.save(com.job.model.User)는 특정 클래스를 실행하는 것을 나타낸다.방법
"execution (public * com.job.dao..*.save(..))"
..하위 패키지 포함
* 모든 클래스를 나타냅니다.
넷.테스트
public class UserServiceTest {
@Test
public void test(){
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService service = (UserService)ac.getBean("userService");
User u = new User();
u.setUsername("me haha ");
service.add(u);
}
}
다섯.테스트 결과
Method start!
me haha ---haha!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Semantic Segmentation】 video의 연속성을 사용하여 data의 부피 증가annotation data를 늘리려는 것이 이 논문의 메인 테마이다. optical flow를 아는 사람이라면 간단하게 이미지 할 수 있다고 생각하지만, 이미지와 Ground Truth 데이터의 pixel을 함께 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.