切面:封装通知方法的类。
通知:是针对于切面来说的。
横切关注点,是针对目标对象说的,
AOP是种思想,AspectJ注解层,是实现方式,
动态代理(InvocationHandler):JDK原生的实现方式,需要被代理的目标类必须实现接口。因 为这个技术要求代理对象和目标对象实现同样的接口(兄弟两个拜把子模式)。 cglib:通过继承被代理的目标类(认干爹模式)实现代理,所以不需要目标类实现接口。 AspectJ:本质上是静态代理,将代理逻辑“织入”被代理的目标类编译得到的字节码文件,所以最 终效果是动态的。weaver就是织入器。Spring只是借用了AspectJ中的注解。
创建一个切面,并且来进行配置:在AOP中你需要干什么,你都需要做什么:
首先,我们需要把我们非核心业务代码,也就是我们的横切关注点抽取出来,封装到一个类中,然后这个类就叫做切面,然后我们的横切关注点封装到切面之后,每一个横切关注点都是一个通知方法,我们需要把它创建为一个方法,每个方法都是一个通知,然后我们现在通知有了之后,我们说AOP你不是光要把我们非核心业务抽出来的,我们最后还是要把他给套到我们抽取出来出来的位置也就是连接点,但是连接点也就是一个概念,那我们现在要通过代码把它给定位到咱们的连接点,再把它套到连接点上,那我们需要用到一个切入点表达式。
Objcet类型:输出的是内存地址。
成员变量自动装配,赋值;类为组件,@注解,为bean组件 。
mysql中默认情况下,一个sql语句独占一个事务,且自动提交。所以要关闭事务的自动提交。
声名式事务:是不需要手动创建事务的切面,也不需要写通知的,因为在我们spring中,它为我们提供的有事务管理的切面和通知,就叫做事务管理器。
《配置事务管理器。
在spring的配置文件里面,如果你的某个属性用的值是默认值,那当前的这个属性值就会变成灰色。
三层 架构中:在service中设置事务管理,所以在Service的表中,加入@Transactional,事务控制。
控制层,业务层 持久层。 应该是表述层,业务层,持久层。
表述层:包括servlet和网页面。
我们需要在我们的控制层,去创建一个方法,这个方法里面,我们只要去设置一个参数,然后让这个参数跟我们的请求参数的名字一致,那我们就可以直接获取这个请求参数。
那我们怎么实现转发:我们在springMVC中有个东西叫做视图解析器,我们只需要去设置一个将我们当前这个控制层里的方法来设置一个字符串类型的返回值,然后这个字符串就可以直接去匹配到我们相对应的视图,来实现转发的效果。