spring
lalalal
菜得只能自己玩泥巴
这个作者很懒,什么都没留下…
展开
-
spring处理事务实例
创建数据库表创建实体类创建接口创建异常类创建servicespring配置文件测试结果购买商品项目,模拟用户下订单,向订单表添加销售记录,从商品表减少库存创建数据库表sale销售表goods商品表添加商品数据创建实体类分别创建Goods和Sale的实体类,代码略创建接口SaleDaopublic interface SaleDao { //增加销售记录 @Insert("insert into sale(gid,num) values(#{gid},#{num}).原创 2020-10-18 22:05:34 · 566 阅读 · 0 评论 -
Spring处理事务
spring处理事务实现步骤声明事务管理器对象说明事务类型spring处理事务不同的访问数据库方式有不同的事务处理机制、对象、方法。而spring提供了一种处理事务的统一模型,能使用统一步骤、方式完成多种不同数据库访问计数的事务处理。实现步骤spring处理事务的模型、步骤都是固定的。声明事务管理器对象事务内部提交,回滚事务,使用的都是事务管理器对象,代替我们完成commit,rollback。事务管理器对象,是一个接口和他的众多实现类接口:PlatformTransactionMana.原创 2020-10-17 22:59:46 · 167 阅读 · 0 评论 -
spring集成Mybatis
mybatis使用步骤,对象使用ioc集成Mybatis和spring,像一个框架把Mybatis框架中的对象交给spring同一创建,开发人员从spring中获取对象。开发人员就不用同时面对两个或多个框架,只需要 面对一个spring。mybatis使用步骤,对象1、定义dao接口,StudentDao2、定义mapper文件 StudentDao.xml3、定义Myubatis的主配置文件mybatis.xml4、创建dao的代理对象StudentDao dao=SqlSession..原创 2020-10-15 22:14:56 · 111 阅读 · 0 评论 -
spring的cglib代理
有接口的是proxy的动态代理,没有接口的是cglib代理没有接口spring自动应用cglibpackage org.example;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;@Componentpublic class Hello { @Value("yasuo") private String na..原创 2020-10-14 19:57:03 · 298 阅读 · 0 评论 -
AspectJ通知
前置通知后置通知后置通知修改目标方法返回值环绕通知前置通知@Before 前面已经实例过了,略后置通知后置通知方法实现切面功能:1.公共方法2.方法没有返回值3.方法名称自定义4.方法可以有参数,推荐是Object,参数名称自定义@AfterReturning后置通知属性:1、value切入点表达式2、returning自定义的变量,表示目标方法的返回值的自定义变量名必须和通知方法的形参一样特点:1、在目标方法后执行2、能够获取到目标方法的返回值,可以根据这个返回值做不同.原创 2020-10-13 17:18:02 · 689 阅读 · 0 评论 -
AspectJ简单实现
AspectJ的实现在spring中的基本实现步骤第一步:导入aspectj依赖第二步:创建目标类AspectJ的实现在spring中的基本实现步骤创建目标类:接口和他的实现类(要做的是给类中的方法增加功能)创建切面类:普通类1)在类上面加入@Aspect2)在类中定义方法,方法就是切面要执行的功能代码。在方法上面加入aspectj中的通知注解例如@Before有需要指定切入点表达式execution()创建spring的配置文件:声明对象,把对象交给容器同一管理,可以用<bean.原创 2020-10-10 23:56:40 · 2507 阅读 · 1 评论 -
AspectJ简介
@TOC切面的执行时间执行时间在规范中叫做Advice(通知,增强),在aspectJ框架中使用注解表示,主要有5种@Before@AfterReturning@Around@AfterThrowing@After切面的执行位置使用的时AspectJ的切入点表达式表达式的原型举例execution(public * * (. .))表示:任意公共方法第一个表示任意返回类型 第二个表示任意方法名 (. .)参数也是任意的execution(* set*(. .))表示原创 2020-10-10 22:59:32 · 1171 阅读 · 0 评论 -
aop面向切面编程
AOP简介AOP面向切面编程AOP简介AOP(Aspect Orient Programming),面向切面编程。从动态角度考虑程序运行过程AOP底层就是采用动态代理模式实现的。采用了两种代理:JDK的动他i代理,与CGLIB的动态代理动态代理:- jdk动态代理,使用jdk中的Proxy,Method,i床vocationHandler创建代理对象。jdk动态代理要求目标类必须实现接口- cglib动态代理:第三方的工具库,创建代理对象,原理是继承。通过继承目标类,创建子类。子类就是代理对象.原创 2020-10-08 22:58:23 · 135 阅读 · 0 评论 -
动态代理的简单实现
前言例如:假设对于一个类,有方法sayHello@Componentpublic class Hello implements HelloInterface{ @Value("cjl") private String name; public void setName(String name) { this.name = name; } public void sayHello(){ System.out.println("p原创 2020-09-28 12:38:42 · 133 阅读 · 0 评论 -
基于注解的DI
基于注解的DI简单类型的属性赋值引用类型赋值spring中其他创建对象的注解基于注解的DI使用spring-aop依赖,加入spring-context依赖的同时,就间接加入了spring-aop的依赖在类上使用Component注解(org.springframework.stereotype.Component)value就是类的名称,相当于bean的id,是唯一的如果不指定对象名称,默认为类名的首字母小写 比如这个类的对象就是hello@Component(value = "hello".原创 2020-09-25 19:53:22 · 190 阅读 · 0 评论 -
XML依赖注入与多文件
DIDIdi: 依赖注入,标识创建对象给属性赋值实现方式有两种: 一种是xml实现,一种是注解语法分类:1、set注入(设置注入),调用类的set方法2、构造注入,用带参构造方法原创 2020-09-23 22:01:38 · 116 阅读 · 0 评论 -
Spring简介
Spring简介核心功能IOC核心功能IOCIOC(Inversion of Control): 控制反转,把对象的创建,赋值,管理工作都交给代码之外的容器(服务器软件、框架spring)实现控制: 创建对象,对象的属性赋值,对象之间的关系管理正转: 开发人员再代码中,使用new构造方法创建对象,开发人员主动管理对象反转: 把原来开发人员管理,创建对象的权限转移给代码之外的容器实现。由容器代替开发人员管理对象。创建对象,给对象赋值使用IOC的目的: 解耦合,减少对代码的改动,也能实现不同的功能原创 2020-09-23 20:01:07 · 129 阅读 · 0 评论