一、Spring IOC 控制反转
IOC容器就是Bean,Spring在启动的时候就已经将所有的bean创建成功,就是说Spring帮助我们创建和管理bean。因此我们在使用时不需要自己用new方式创建对象,可以通过依赖注入的方式获得Spring创建好的bean。
二、Spring是如何启动的?
Spring的启动流程是java规定好的,是有一个固定入口的。Spring启动是建筑在Servlet容器上的,而tomcat就是Servlet容器(Web容器)的一种。Web容器提供一个全局的上下文环境,就是ServletContext 。servlet容器有一个onStartup方法来启动,当启动时,有一个监听器contextLoaderListener监听到启动后,就会执行初始化事件,IOC容器就会进行初始化。在Web应用中,IOC容器初始化后还会初始化web.xml中配置的Servlet,就是初始化前置控制器,用来转发、匹配、处理每个servlet请求。
三、Spring通过依赖注入(DI)的方式实现控制反转(IOC)
注入,即对象初始化。
在代码中,你需要注入才可以获取到bean对象,如果不注入,还是需要自己手动创建。
依赖注入的方式有多种:
1、setter注入
2、构造器注入
3、注解注入
我使用最多的是注解注入,通过使用@Autowired注解注入,如果没有用注解,直接声明,获得的对象是null。
四、Spring AOP
面向切面编程,用来解决系统层面上的问题,比如:日志、事务、权限,拦截器也是基于AOP思想设计的。
基本概念:
1、Aspect切面
2、JointPoint连接点
3、Advice通知
4、Pointcut切入点
5、AOP代理
Spring中的AOP代理离不开Spring的IOC容器,代理的生成、管理及依赖关系都是由IOC容器负责。
五、注解是怎么启动的
被注解标记的类可以当做一个bean来处理,当Spring IOC初始化时,和普通定义的bean一起处理,注解也是被Spring IOC容器管理。
注解在默认情况下是不开启的,需要配置才可以开启使用。
大家知道,被注解标记的类里面可以有其他注解,可以看着将一个bean注入到另一个bean,与setter注入类似。