spring的Ioc和AOP

 springIoc(控制反转和依赖注入) 

控制反转:就是由容器控制程序之间的(依赖)关系,并不是传统实现中,由程序代码直接操控   

     依赖注入:组件之间的依赖关系由容器在运行期决定 ,由容器动态的将某种依赖关系注入到组件之中 。


AOP:面向切面,是一种编程思想,OOP的延续。将系统中非核心的业务提取出来,进行单独处理。比如事务、日志和安全等。这个简单来说就是可以在一段程序之前或者之后做一些事。

比如:很多方法都可能会抛异常,你要记录这个异常到日志中去,可以写个拦截器,在这个类中记录日志,在spring.xml中配置一个记录这些日志的方法的拦截器,在这个方法执行后调用这个拦截器,记录日志。这样就不用每次抛异常都要手动记录日志。

spring的事务管理用到的就是AOP这样也可以提高程序的内聚性。



在以往的JDBCTemplate中事务提交成功,异常处理都是通过Try/Catch 来完成,而在Spring中。Spring容器集成了TransactionTemplate,她封装了所有对事务处理的功能,包括异常时事务回滚,操作成功时数据提交等复杂业务功能。这都是由Spring容器来管理,大大减少了程序员的代码量,也对事务有了很好的管理控制。hibernate中也有对事务的管理,hibernate中事务管理是通过SessionFactory创建和维护Session来完成。而SpringSessionFactory配置也进行了整合,不需要在通过hibernate.cfg.xml来对SessionaFactory进行设定。这样的话就可以很好的利用Sping对事务管理强大功能。避免了每次对数据操作都要现获得Session实例来启动事务/提交/回滚事务还有繁琐的Try/Catch操作。这些也就是Spring中的AOP(面向切面编程)机制很好的应用。一方面使开发业务逻辑更清晰、专业分工更加容易进行。另一方面就是应用Spirng  AOP隔离降低了程序的耦合性使我们可以在不同的应用中将各个切面结合起来使用大大提高了代码重用度

Spring中有哪三种依赖注入的方式?

spring有三种注入方式:

1)根据属性注入也叫set方法注入

2)根据构造方法注入

3)根据注解进行注入(推荐)



Spring的AOP和IOC都是为了解决系统代码耦合度过高的问题,使代码重用度高,易于维护。

posted @   silentmuh  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
Live2D
欢迎阅读『spring的Ioc和AOP』
  1. 1 Walk Thru Fire Vicetone
  2. 2 爱你 王心凌
  3. 3 Inspire Capo Productions - Serenity
  4. 4 Welcome Home Radical Face
  5. 5 粉红色的回忆 李玲玉
粉红色的回忆 - 李玲玉
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

夏天夏天悄悄过去留下小秘密

压心底 压心底 不能告诉你

晚风吹过温暖我心底 我又想起你

多甜蜜 多甜蜜 怎能忘记

不能忘记你 把你写在日记里

不能忘记你 心里想的还是你

浪漫的夏季 还有浪漫的一个你

给我一个粉红的回忆

喔 夏天夏天悄悄过去依然怀念你

你一言 你一语都叫我回忆

就在就在秋天的梦里 我又遇见你

总是不能忘记你

夏天夏天悄悄过去留下小秘密

压心底 压心底 不能告诉你

晚风吹过温暖我心底 我又想起你

多甜蜜 多甜蜜 怎能忘记

不能忘记你 把你写在日记里

不能忘记你 心里想的还是你

浪漫的夏季 还有浪漫的一个你

给我一个粉红的回忆

喔 夏天夏天悄悄过去依然怀念你

你一言 你一语都叫我回忆

就在就在秋天的梦里 我又遇见你

总是不能忘记你

不能忘记你 把你写在日记里

不能忘记你 心里想的还是你

浪漫的夏季 还有浪漫的一个你

给我一个粉红的回忆

喔 夏天夏天悄悄过去依然怀念你

你一言 你一语都叫我回忆

就在就在秋天的梦里 我又遇见你

总是不能忘记你

点击右上角即可分享
微信分享提示