blob: 70d0c07c583b96af255f019e440bc6e4b46d949c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
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">
<bean id="account" class="com.example.spring.aop.Account">
<property name="accNo" value="1000"></property>
<property name="balance" value="250.00"></property>
</bean>
<!-- Here is a bean representing the security aspect -->
<bean id="accessChecker"
class="com.example.spring.aop.security.AccessChecker2" />
<!-- This aspect can print the method signatures when methods are executed
- before, and after -->
<bean id="aopLogger"
class="com.example.spring.aop.aoplogger.Logger" />
<aop:config>
<aop:aspect id="securityAspect" ref="accessChecker">
<aop:pointcut id="deposit"
expression="execution(public * com.example.spring.aop.Account.deposit(..))" />
<aop:before pointcut-ref="deposit"
method="checkDepositPermission" />
<aop:pointcut id="withdraw"
expression="execution(public * com.example.spring.aop.Account.withdraw(..))" />
<aop:before pointcut-ref="withdraw"
method="checkWithdrawPermission" />
</aop:aspect>
<aop:aspect id="loggerAspect" ref="aopLogger">
<aop:pointcut id="bankPackageMethod"
expression="execution(public * com.example.spring.aop.**.*(..))" />
<aop:before pointcut-ref="bankPackageMethod"
method="beforMethodExecuted" />
<aop:after pointcut-ref="bankPackageMethod"
method="afterMethodExecuted" />
</aop:aspect>
</aop:config>
</beans>
|