学校校园网站建设实践选题背景,企业网站优化排名,东莞广告网站建设,服装设计方案spring AOP
AOP概述
AOP面向切面编程是对面向对象编程的延续#xff08;AOP #xff08;Aspect Orient Programming#xff09;,直译过来就是 面向切面编程,AOP 是一种编程思想#xff0c;是面向对象编程#xff08;OOP#xff09;的一种补充。#xff09;
面向切面编…spring AOP
AOP概述
AOP面向切面编程是对面向对象编程的延续AOP Aspect Orient Programming,直译过来就是 面向切面编程,AOP 是一种编程思想是面向对象编程OOP的一种补充。
面向切面编程思想是将程序中非业务代码提交事务打印日志权限验证统一异常处理提取分离出来通过代理对象帮助我们调用这些提取出来的非业务代码在业务代码中不用显示调用非业务代码最终做到了也业务代码与非业务代码的分离降低了耦合度。
面向切面编程是实现在不修改源代码的情况下给程序动态统一添加额外功能的一种技术AOP 采取横向抽取机制动态代理取代了传统纵向继承机制的重复性代码其应用主要体现在事务处理、日志管理、权限控制、异常处理等方面。简单的说AOP 的作用就是保证开发者在不修改源代码的前提下为系统中的业务组件添加某种通用功能。
原理动态代理模式
AOP编程思想是java中的不是spring专有的是spring使用了这一编程思想
实现
首先导入jar包 AspectJ 是一个基于 Java 语言的 AOP 框架它提供了强大的 AOP 功能,且其实
现方式更为简捷使用更为方便 而且还支持注解式开发。所以Spring 又
将 AspectJ 的对于 AOP 的实现也引入到了自己的框架中。
开启自动代理在spring文件里面开启自动代理 创建自动代理的类加入注解标签
before在运行连接点方法之前执行传入参数为在com.ffyc.spring.dao.adminDao类下面的所有的方法都是切入点..里面传入的参数不定最前面的*表示方法返回值任意。
after是在运行后执行无论前面出现没有异常 运行结果 AfterThrowing 运行时出现错误执行通过throwing可以得到异常出现的原因
AfterReturning 运行时出现异常不进行执行 around环绕通知 运行结果 spring事务管理
概述
事务管理本质上是数据库提供的一种管理机制数据库事务管理就是对一次数据库操作过程中执行的多条语句进行管理,保证一次对数据库操作过程中多条 sql 要么都执行成功,要么都不执行,从而确保数据一致性.
事务的作用就是为了保证用户的每一个操作都是可靠的事务中的每一步操作都必须成功执行只要有发生异常就回退到事务开始未进行操作的状态,这些操作要么都完成要么都取消从而保证数据满足一致性的要求
Spring事务管理是spring框架对事务提交这一功能进行封装程序员在业务开发中不需要显示提交事务。
Spring 中的事务管理分为两种形式:
编程式事务
需要程序员自己在代码里面控制事务触发和回滚
声名式事务
声名式事务底层使用了AOP思想可以为方法添加事务功能他的控制是方法级别的
Spring 框架提供事物管理实现类是 DataSourceTransactionManager.
实现
1.配置事务管理 需要提交事务的方法上面加上注解Transactional 没有出现异常的话事务会正常提交出现异常的话事务会发生回滚要么全发生要么都不发生。需要注意的事情是如果此方法加上了AfterThrowing 运行时出现错误执行通过throwing可以得到异常出现的原因 或者 加上了around环绕通知 会对Transactional事务提交造成影响他们会对异常进行捕获Transactional就不知道方法里面执行错误了还会提交错误的事务。
Transactiona可以添加在方法上面也可以添加到类上面添加到类上面此类里面所有的方法都会被提交事务所管理。
一般情况下Transactiona都添加在service层
声名事务失效场景
Transactiona用在了非public方法上面
同一包下面默认的格式可以调用 添加Transactiona注解要么全部提交要么全不提交运行结果确是提交了一条出现异常未发生回滚没有触发事务。 方法中异常被捕获了Transactiona认为方法上面没有异常 发生异常被捕获后Transactiona认为方法上面没有异常其实已经出错了事务提交也只是提交了一条数据没有全部提交 2.方法中出现编译器异常还是会提交事务 Transactional(rollbackFor Exception.class)这样就可以出现编译器异常事务就不会提交了。
编译器异常也会影响Transactiona提交事务 数据库引擎不支持提交事务 mysql中只有innodb支持提交事务
spring_web搭建
Ssm框架
早期ssmspringstrtuts2mybatis ssh
现在 ssmspringspringwebmybatis
搭建
1.导包
dependency
groupIdorg.springframework/groupId
artifactIdspring-webmvc/artifactId
version5.2.2.RELEASE/version
/dependency
2.在web.xml配置spring核心请求分发器 在spring.xml中开启web层注解
!--开启web层注解-- mvc:annotation-driven/mvc:annotation-driven
3.部署tomcat 写一个测试 Springweb运行流程 Springweb组件
前端控制器DispatcherServlet不需要程序员开发,由框架提供在web.xml 中配置。
作用统一处理请求和响应整个流程控制的中心由它调用其它组件处理用户的请求.
处理器映射器HandlerMapping(不需要程序员开发),由框架提供。
作用根据请求的 url 查找 Handler(处理器/Controller)
处理器适配器HandlerAdapter(不需要程序员开发),由框架提供。
作用按照特定规则HandlerAdapter 要求的规则去执行 Handler。
处理器Handler(也称之为 Controller需要工程师开发)。
注意编写 Handler 时按照 HandlerAdapter 的要求去做这样适配器才可
以去正确执行 Handler。
作用接受用户请求信息调用业务方法处理请求也称之为后端控制器。