Spring回顾

原文链接:https://blog.csdn.net/qq_43423383/article/details/93417314

OOP(面向对象)的延伸AOP(面向切面)

Spring核心思想:

IOC/DI:控制反转/依赖注入

  IOC:Inverse Of Control 控制反转【反射创建对象.对象的生命周期全部交给Spring容器来控制处理】

  DI:Dependency Injection 依赖注入【创建对象之后给对象的属性赋值,通过set方法或者构造器的参数传递【依赖关系】进行赋值】

AOP:面向切面编程 (在不影响原有的功能基础上加上自己的东西) 常用于事务的管理,事务开启/回滚/提交
aop代理:

......

Spring注入:

Set方法注入:
1.属性是普通类型【包装类型,基本数据类型,String】使用property标签的value属性赋值。
2.属性是非普通类型的其他bean时,使用property标签的ref属性去关联另一个bean,值为另一个标签bean的id属性值

构造方法注入:
1.在配置文件中bean下有consturtor-arg标签注入
2.在java类中必须声明无参构造器

注解注入:
1.dao/仓库层 @repository
2.controller/控制层 @controller
3.service/业务层 @service
4.代替所有 @comporent(意思说每一层都可以用@comporent 方式,包括上面三个)
慢慢理解吧(原理)

1.通过传入的被代理对象获取Class对象
2.获取被代理对象实现过的所有接口
3.利用字符串拼接动态拼接一个实现类实现第二步得到所有的接口,内部持有一个被代理对象作为属性
4.重写接口所有方法,按照MyInvocationHandler的invoke方法的格式来重写所有的方法
5.输出流输出到一个java文件中
6.动态编译成class文件
7.使用类加载器加载class文件,得到class文件
8.使用反射技术创建对象
9.返回该对象:生成的实现;类的对象【代理对象】

posted @ 2023-10-20 18:10  绿色地球  阅读(4)  评论(0编辑  收藏  举报