空枝|大佬把Spring框架总结的「无比详细」,看完还说不懂别学了
1、IOC和DIIOC: 控制反转即控制权的转移 , 将我们创建对象的方式反转了,以前对象的创建时由我们开发人员自己维护,包括依赖关系也是自己注入 。 使用了spring之后 , 对象的创建以及依赖关系可以由spring完成创建以及注入 , 反转控制就是反转了对象的创建方式 , 从我们自己创建反转给了程序创建(spring)
DI: Dependency Injection 依赖注入spring这个容器中 , 替你管理着一系列的类 , 前提是你需要将这些类交给spring容器进行管理 , 然后在你需要的时候 , 不是自己去定义 , 而是直接向spring容器索取 , 当spring容器知道你的需求之后 , 就会去它所管理的组件中进行查找 , 然后直接给你所需要的组件.实现IOC思想需要DI做支持注入方式: 1.set方式注入 2.构造方法注入 3.字段注入注入类型: 1.值类型注入 2.引用类型注入
好处:
1.降低组件之间的耦合度 , 实现软件各层之间的解耦.
2.可以使容器提供众多服务如事务管理消息服务处理等等 。 当我们使用容器管理事务时 , 开发人员就不需要手工 控制事务 , 也不需要处理复杂的事务传播
3.容器提供单例模式支持 , 开发人员不需要自己编写实现代码.
4.容器提供了AOP技术 , 利用它很容易实现如权限拦截 , 运行期监控等功能
5.容器提供众多的辅佐类 , 使这些类可以加快应用的开发.如jdbcTemplate HibernateTemplate
2.applicationContext 表示对拦截的方法进行放行//若注释proceedingJoinPoint.proceed()则不会执行被AOP匹配的方法proceedingJoinPoint.proceed();//环绕方法执行后 }AOP注解解析:
@Before 前置通知(Before advice) :在某连接点(JoinPoint)——核心代码(类或者方法)之前执行的通知 , 但这个通知不能阻止连接点前的执行 。 为啥不能阻止线程进入核心代码呢?因为@Before注解的方法入参不能传ProceedingJoinPoint , 而只能传入JoinPoint 。 要知道从aop走到核心代码就是通过调用ProceedingJionPoint的proceed()方法 。 而JoinPoint没有这个方法 。这里牵扯区别这两个类:Proceedingjoinpoint 继承了 JoinPoint。 是在JoinPoint的基础上暴露出 proceed 这个方法 。 proceed很重要 , 这个是aop代理链执行的方法 。 暴露出这个方法 , 就能支持 aop:around 这种切面(而其他的几种切面只需要用到JoinPoint , 这跟切面类型有关) ,能决定是否走代理链还是走自己拦截的其他逻辑 。 建议看一下 JdkDynamicAopProxy的invoke方法 , 了解一下代理链的执行原理 。 这样你就能明白 proceed方法的重要性 。
@After 后通知(After advice) :当某连接点退出的时候执行的通知(不论是正常返回还是异常退出) 。
@AfterReturning 返回后通知(After return advice) :在某连接点正常完成后执行的通知 , 不包括抛出异常的情况 。
@Around 环绕通知(Around advice) :包围一个连接点的通知 , 类似Web中Servlet规范中的Filter的doFilter方法 。 可以在方法的调用前后完成自定义的行为 , 也可以选择不执行 。 这是aop的最重要的 , 最常用的注解 。 用这个注解的方法入参传的是ProceedingJionPoint pjp , 可以决定当前线程能否进入核心方法中——通过调用pjp.proceed();
@AfterThrowing 抛出异常后通知(After throwing advice) : 在方法抛出异常退出时执行的通知 。
8、spring整合jdbcspring中提供了一个可以操作数据库的对象 , 对象封装了jdbc技术 ————JDBCTemplate JDBC模板对象 , 而JdbcDaoSupport则对JdbcTemplate进行了封装 , 所以要操作JdbcTemplate , 或只需要继承JdbcDaoSupport即可 。
推荐阅读
- 笑看尘世|Spring4基础二二-AOP篇-通知(2)-通知详解
- 一味宠爱|Springboot整合K8s读取ConfigMap刷新配置
- 小熊科技|从零学ELK系列(十):SpringBoot接入ELK升级版
- 空枝|一个漂亮的开源HTML5音乐播放器——APlayer
- 空枝|这台手机,我整整等了三年,终于要发布
- 澄澈的眼|这Spring注入对象处理过程也太细了,收藏了,什么神仙
- 空枝|华为云手机革新概念、与我书中未来手机革新概念同理
- 草莓味的棉花糖|震碎认知!将原理融会贯通到顶点的SpringBoot实战项目
- 空枝|1368元 6GB+128GB+5000毫安电池四摄拍照手机
- 小熊科技|SpringCloud在K8s上的最佳实践—高可用 混沌工程