静态正则表达式方法匹配切面
StaticMethodMatcherPointcutAdvisor中仅能通过方法名定义切点,不够灵活
RegexpMethodPointAdvisor正则表达式匹配切面实现类
<bean id="regexpAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"
p:advice-ref="greetingAdvice">
<property name="patterns">
<list>
<value>.*greet.*</value>
</list>
</property>
</bean>
<bean id="waiter1" class="org.springframework.aop.framework.ProxyFactoryBean"
p:interceptorNames="regexpAdvisor"
p:target-ref="waiterTarget"
p:proxyTargetClass="true"/>
- 属性
- patterns
- advice
- pattern
- order
正则表达式 | 说明 |
---|---|
. | 匹配除换行符外所有单个字符 |
* | 匹配*前面的字符0次或n次 |
+ | 匹配+前面的字符1次或n次,等价于{1,} |
^ | 匹配的字符必须在最前面(^A) |
$ | 匹配最末的字符(t$ ) |
? | 匹配?前面字符0次或1次 |
x|y | 匹配x或y |
[xyz] | 字符列表,匹配列出的任一字符,可以用连字符(-)([a-c]) |
{n} | n是一个正整数,匹配前面n个字符a{n} |
{n,} | 匹配前面至少n个字符 |
{n,m} | 匹配至少n个,最多m个前面的字符a{1,3} |
\ | 将下一个字符标记为特殊字符 |
\d | 匹配一个数字字符 |
\D | 匹配一个非数字字符 |
\f | 匹配一个换页符,等价于\x0c和\cL |
\n | 匹配一个换行符,等价于\x0a和\cJ |
\r | 匹配一个回车符,等价于\xod和、cM |
\a | 匹配任何空白字符(空格,字表,换页等),等价于[\f\n\r\t\v] |
\S | 匹配任何非空白字符,等价于[^\f\n\t\t\v] |
\t | 匹配一个制表符,等价于\x09和\cL |
\v | 匹配一个垂直制表符,等价于\x0b和\cK |
\w | 匹配包括下划线的任何单词字符,等价于[A-Za-z0-9] |
\W | 匹配任何非单词字符,等价于[^A-Za-z0-9] |