简单介绍spring IOC/DI
IOC:控制反转,对象的创建不再由原来的程序负责,交给第三方的容器负责
DI:依赖注入,DI 本质上是实现IOC 的一种方式,对象之间的依赖关系交给Spring容器负责注入进来。
BeanFactory和ApplicationContext接口的区别:
BeanFactory:Spring容器底层(内部使用),采用延迟加载bean,功能有限;
ApplicationContext:一般使用较多,扩展了很多功能:支持消息管理,资源管理,国际化,支持aop;采用立即加载;加载多个配置文件
Spring注入的方式:
1.设值注入:通过set方法实现属性的注入
2.构造注入:通过构造方法实现属性的注入
3.自动装配:byName:按名字自动装配 byType:按类型自动装配
使用注解定义bean
@Component
@Repository
@Service
@Controller
使用注解方式实现依赖注入
@Autowired 自动注入,根据类型自动注入
@Qualifier 配合@Autowired注解使用,用来指定具体的名称
@Resource 默认根据名字注入,如果注入失败,再根据类型注入
什么是AOP?
即面向切面编程,是对OOP(面向对象)思想的补充;AOP是横向扩展;为了解决共性问题(日志、权限、事务、异常等),将共性问题的解决方案单独抽象出来,利用横切做技术切入到系统中。
好处:提高了代码的可维护性、扩展性、降低了耦合度。
术语解释
advice:通知:切面要完成的工作,包括了需要执行的逻辑代码和需要执行的时间点。
Jointpoint:连接点:指被拦截到的点,Spring中指可以被动态代理拦截目标类中的方法
Pointcut:切入点:切入点指定植入通知的位置,它是对连接点的描述,指定了通知在哪里执行
aspect:切面:切面类包含一个或多个通知和与切面关联的切点。
weaving:植入:将切面应用到目标对象并创建新的代理对象的过程。