Spring(下)

8、使用注解开发

如果要使用注解的形式,必须引入aop包
然后在配置文件当中,还得引入一个context约束
在这里插入图片描述

8.1 Bean的实现

实现开发中,Bean的注入用到的还是用的是注解,

  1. 指定扫描包是在application. xml进行配置的,记得要加上约束
    在这里插入图片描述
    2.只需要用一个@component就可以取代之前的bean的写法,把注解写在了dao上在这里插入图片描述
    3、测试
    在这里插入图片描述

8.2 属性注入

如果dao上面你不想写属性
在这里插入图片描述
在这里插入图片描述
@component包含了三个注解,也可以进行细分,分别表示了对这个类进行一个bean的注入
在这里插入图片描述
作用域
在这里插入图片描述
小结,xml更加的广泛,注解完成会比较局限化点,超过注解的范围就使用不了,开发比较方便。
如果采用xml和注解的一个形式,进行开发的话,可以不用一开始的注解扫描,但是如果不扫描包的话,就需要手动在xml进行bean注入,所以,根据需求场景进行开发。

8.3配置类

像上面dao直接用一个@component其实就已经可以进行省略xml配置,但是有个弊端,举个例子,@component直接写在dao上对mybaits一些增删改查没毛病,可以用,但是涉及一些复杂的mybatis功能,就必须用到配置类。

配置类的作用就是把xml完全java类化,相当于@configuration定义的类相当于一个xml配置文件,是非常强大的

在这里插入图片描述
和上面普通的@component相比,你会发现,@configuration定义的类好像是对这个类进行了实现具体化,可以编写更多的业务代码,算是一个dao的扩展
在这里插入图片描述
当然,也可以注入多个配置类
在这里插入图片描述

二.AOP

1.底层原理

关于aop的静态代理模式和动态代理模式这边就不做概述了,需要的话可以去设计模式上面看
在这里插入图片描述
这边还是举一个实际开发的例子巩固记忆把
在这里插入图片描述
需求,就是在增删改查前面都要增加一个日志的实现,比如实际开发中,你可以记录客户的登录时间,登录次数,登录信息等
现在就需要一个代理类实现service接口
在这里插入图片描述

在这里插入图片描述
上面就是简单的静态代理
这边直接用代码直接看下动态代理吧
用一个租房的例子
在这里插入图片描述
动态代理角色
动态代理角色
部分是可以照抄的,把看房作为前置通知,收中介费作为后置通知
在这里插入图片描述
上面只是一个例子 现在贴一个万能的动态代理,直接拿来用,target就是目标接口

public class ProxyInvocationHandler implements InvocationHandler {
    private Object target;
    public void setTarget(Object target) {
        this.target = target;
    }//生成代理类
    public Object getProxy() {
        return Proxy.newProxyInstance(this.getClass().getClassLoader(),
                target.getClass().getInterfaces(), this);
    }
    // proxy : 代理类
// method : 代理类的调用处理程序的方法对象.
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        log(method.getName());
        Object result = method.invoke(target, args);
        return result;
    }
    public void log(String methodName) {
        System.out.println("执行了" + methodName + "方法");
    }
}

测试上面的UserServiceImpl
在这里插入图片描述直接用就可以了

2.AOP实战

AOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现 程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的 一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使 得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
在这里插入图片描述
说下这个图,首先,你要自己生成切面,将切面横切进业务逻辑里面
在这里插入图片描述
在这里插入图片描述

3.使用AOP

先导包
在这里插入图片描述
还是用前面的例子
在这里插入图片描述
然后写2个增强类,也就是
在这里插入图片描述
最后去spring的文件中注册 , 并实现aop切入实现 , 注意导入约束 .
在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述
这里一般我自己是推荐用第三种方式----注解的方式来

在这里插入图片描述

3.声明式事务

事务的ACID原则是必须要会的
咱们模拟一个错误,来说明事务的重要性,为什么需要事务

在这里插入图片描述
测试
在这里插入图片描述报错:sql异常,delete写错了 结果 :插入成功! 没有进行事务的管理;我们想让他们都成功才成功,有一个失败,就都失败,我们就应该需要事务! 以前我们都需要自己手动管理事务,十分麻烦! 但是Spring给我们提供了事务管理,我们只需要配置即可;
编程式事务和声明式的区别
在这里插入图片描述
不管用说明类型的事务,头文件的约束是必须的
在这里插入图片描述
在这里插入图片描述
JDBC事务
在这里插入图片描述
配置好事务管理器后我们需要去配置事务的通知
在这里插入图片描述
配置AOP,使得mapper文件里面的所有方法都遵循上面的事务规则
在这里插入图片描述测试
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值