了解什么是spring的ioc和aop

ioc

ioc是spring两大核心概念之一,ioc给我们提供了一个ioc的bean容器,这样的话,ioc容器会帮我们创建对象,不需要我们自己手动的创建。

ioc有个强大的功能叫DI依赖注入,我们可以写java代码或xml配置的方式把我们想要注入对象所依赖其他bean自动的注入进去,

通过type或类型的方式注入。正因为有依赖注入,是ioc有个强大的功能解耦。举个例子:

比如我们的jdbcTemlplate或sqlSessionFactory,像这种bean,我们想要把它注入到容器里面,它需要依赖一个数据源的,

如果jdbctemplate于德鲁伊数据源强耦合在一起,会导致一个问题,我们要用jdbctemplate时必须要用德鲁伊的数据源。

那么依赖注入能帮助我们在jdbc注入的时候只需要它依赖一个DataSource的接口就行,不需要依赖具体的实现,

好处就是如果我们将来在容器中注入一个德鲁伊的数据源,他会自动注入给我们的jdbcTemplate,如果我们注入一个其他的,

也是一样的,比如说(某某数据源)。这样的话我们的jdbcTemplate与我们的德鲁伊数据源就完全像耦合了。

spring在启动的时候就给我们把所有的启动类创建好,这样的话我们程序在运行的时候就不需要创建bean,然后运行速度就会更快。

还有就是ioc里面给我们管理了很多的bean,有单例的可能也有多例的,但绝大部分是单例的。

ioc是利用反射的原理将对象创建的权利交给spring容器,spring在运行的时候根据配置文件来动态的创建对象和
维护对象之间的关系,实现松耦合的思想--->实现方式:配置文件,注解

aop

aop:意味面向切面编程,同样也是一种思想,他是对传统的oop思想的补充。在日常生活中我们会遇到一些重复性的代码,

比如说事务、日志,我们需要在很多类里面,同时要把他写进去,就会很麻烦。这时候spring的aop就会把这些重复的代码抽象出来,

然后切入到我们想要切入的类里面,这样极大的方便了我们代码的书写,提高了我们代码的复用性,aop的实现是依靠动态代理实现的,

如果我们要代理的对象有接口,我们可以用java原生的动态代理来完成这个动态代理的创建。如果他没有实现任何接口,

他会采用cglib的技术来完成动态代理的创建

posted @ 2020-11-18 23:00  别吃了,那是s  阅读(96)  评论(0)    收藏  举报