Spring配置文件使用@Value注解注入值的方法,以及AOP切面在Spring+SpringMVC中的不生效解决

以后碰到新的坑都做个日志记录下来.希望能对自己有更大的提高!

今天做安全问题的时候,想要实现一个账户在一定时间内登陆N次就被锁定的功能,当然最好是可以做成一个可以配置次数以及解锁时间等信息的方式,然后直接用属性上加@Value的方法,发现出现了Could not resolve placeholder的异常.查了下是发现@Value需要在下面添加属性的get方法,而且属性必须只能用String类型接收.还有一种方法,也可以不使用get方法,在@Value里面添加上configBean的id值.就是下面的写法.

然后实现锁定的功能,这个当然要使用到切面了.准备在后置通知里面对Session做一个判断,如果有值就不做处理,没有值就在数据库中对此用户名的loginFailedTimes加一.然后使用环绕通知,在登陆操作前,判断此用户是否已经超出设定的次数,超出直接就不执行后面的方法,往前端抛出用户已被锁定的信息.

既然说到这了,就开始动手,直接动手

先拿到request中的username进行打印.小测一下.发现切面根本没生效.检查Spring的ApplicationContext配置文件,已经开启了aspectj自动代理.而且类上也注解了@Aspect,@Component.

查了下有说是要将<aop:aspectj-autoproxy />放入到SpringMVC的配置文件中,修改了下,发现开始出现类型错误:BeanNotOfRequiredTypeException: Bean named '****' is expected to be of type '****' but was actually of type 'com.sun.proxy.$Proxy.是重复进行代理的问题.所以改回去.挺懵的.最后是误打误撞.给SpringMVC的配置文件里面也加了一个切面自动代理才成功使切面生效.估计 又是和以前扫包出现事务无法回滚类似的问题.明天继续做.冲鸭~~~

总结下:有必要抽空的时候好好了解下Spring父子容器之间的关系.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值