Spring
IoC(控制反转)
调用类中的方法不是通过new它的对象来实现,而是通过Spring配置来创建对象,然后交给IOC容器来管理我们的对象,使用时去找IOC容器要,根本就不用去管我们需要的这个对象时怎么创建的、什么时候被销毁。
这样一来,类和类之间的关系就变弱了,因为我们没有在一个类中new另一个对象,对象之间的调用、联系都是通过这个IOC容器来获取的,使每一个对象都相对比较独立。
IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。
特性
习惯优于配置
(Convention Over Configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量、获得简单的好处,而又不失灵活性。
内嵌容器
内嵌servlet容器,可以直接执行运行项目的main函数。
自动装配
Spring Boot Starter 中有两个核心组件∶ 自动配置代码和提供自动配置模块及其它有用的依赖。也就意味着当我们项目中引入某个 Starter,即拥有了此软件的默认使用能力,除非我们需要特定的配置,一般情况下我仅需要少量的配置或者不配置即可使用组件对应的功能。
会根据我们项目中的类路径的jar包,为jar包的类进行自动装配bean。
AOP
Aspect Oriented Programming,面向切面,AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。是提供另一种角度来思考程序的结构,来弥补面向对象编程的不足。
通俗点讲就是提供一个为一个业务实现提供切面注入的机制,通过这种方式,在业务运行中将定义好的切面通过切入点绑定到业务中,以实现将一些特殊的逻辑绑定到此业务中。
举个栗子,项目中有记录操作日志的需求、或者流程变更是记录变更履历,无非就是插表操作,很简单的一个save操作,都是一些记录日志或者其他辅助性的代码。一遍又一遍的重写和调用。不仅浪费了时间,又将项目变得更加的冗余,实在得不偿失。