了解什么是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的技术来完成动态代理的创建

浙公网安备 33010602011771号