AOP是啥?
举个例子,你想给你的网站加上鉴权
对某些url,你认为不需要鉴权就可以访问
对于某些url,你认为需要有特定权限的用户才能访问
如果你依然使用OOP,面向对象,那你只能在那些url对应的Controller代码里面,一个一个写上鉴权的代码
而如果你使用了AOP呢?那就像使用Spring Security进行安全管理一样简单(ps:Spring Security的拦截是基于Servlet的Filter的,不是aop,不过两者在使用方式上类似)
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/static","/register").permitAll()
.antMatchers("/user/**").hasRoles("USER", "ADMIN")
这样的做法
对原有代码毫无入侵性,这就是AOP的好处了
把和主业务无关的事情,放到代码外面去做
所以当你下次发现某一行代码经常在你的Controller里出现,比如方法入口日志打印,那就要考虑使用AOP来精简你的代码了.