ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

spring核心概念IOC和AOP

2022-03-09 11:01:35  阅读:149  来源: 互联网

标签:依赖 spring AOP bean 数据源 IOC 我们 注入


  IOC是spring的两大核心概念之一,IOC给我们提供了一个IOCbean容器,这个容器会帮我们自动去创建对象,不需要我们手动创建,IOC实现创建的通过DI(Dependency Injection 依赖注入),我们可以通过写Java注解代码或者是XML配置方式,把我们想要注入对象所依赖的一些其他的bean,自动的注入进去,他是通过byName或byType类型的方式来帮助我们注入。正是因为有了依赖注入,使得IOC有这非常强大的好处,解耦。
  可以举个例子,JdbcTemplate 或者 SqlSessionFactory 这种bean,如果我们要把他注入到容器里面,他是需要依赖一个数据源的,如果我们把JdbcTemplate 或者 Druid 的数据源强耦合在一起,会导致一个问题,当我们想要使用jdbctemplate必须要使用Druid数据源,那么依赖注入能够帮助我们在Jdbc注入的时候,只需要让他依赖一个DataSource接口,不需要去依赖具体的实现,这样的好处就是,将来我们给容器里面注入一个Druid数据源,他就会自动注入到JdbcTemplate如果我们注入一个其他的也是一样的。比如说c3p0也是一样的,这样的话,JdbcTemplate和数据源完全的解耦了,不强依赖与任何一个数据源,在spring启动的时候,就会把所有的bean全部创建好,这样的话,程序在运行的时候就不需要创建bean了,运行速度会更快,还有IOC管理bean的时候默认是单例的,可以节省时间,提高性能。

 

 

  AOP:在工作当中会遇到很多重复性的代码,比如说事务,日志,我们需要在很多类里面把这些代码同时全部写进去,这样非常麻烦,比如说事务,我们要在所有的service层中开启事务,提交回滚。

  可以不可以不这么麻烦,AOP就给我们提供了这些方式,我们可以把这些公共有的代码切入到我们想切入的类里面,这样极大的方便了我们代码的书写,提高了代码的复用性,也是一种解耦合的思想。

  当然AOP是依赖动态代理实现的,如果要代理的一个对象他有接口,那就使用java原生的动态代理来实现动态代理的创建,如果他没有实现任何接口,他会实现一个CGLIB的技术来进行动态代理类的创建。

  在日常工作当中最常用的就是事务和日志。

标签:依赖,spring,AOP,bean,数据源,IOC,我们,注入
来源: https://www.cnblogs.com/itqinls/p/15984084.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有