ioc 简介:
ioc 容器来管理和容纳各种bean ,可以通过描述获取bean,通俗理解逛淘宝时淘宝有许多商品,可以通过商品名称来搜索获取,不需要在乎如何生产。
正控:当你需要一个对象时,可以使用构造函数或者反射创建一个对象,这需要一个过程,从而得到这个结果
反控:当你需要一个对象时,从spring 容器中直接拿,不需要关心对象来源以及创建过程。
ioc 优点:松耦合,功能复用,程序个体系统更灵活。
DL:依赖注入
简介:组件之间的依赖关系由容器在运行期间决定,容器动态将某个依赖关系注入到组件之中,目的只为提高复用,通过简单的配置能够搭建更灵活可扩展的平台,不需要更多的动作。
应用程序需要ioc来提供对象需要的外部资源比如对象,常量或者外部资源。所以需要依赖于ioc容器,ioc将所需对象注入给应用程序。
最常用的maven仓库 @service
@Resource:默认byName自动注入
spring将@Resource注入的名字属性解析为bean名字,默认小写bean,找不到则异常,如果指定type就从容器中找类型唯一匹配的装配。
@Autowired:默认byType自动注入
从上下文找类型唯一匹配的装配。
都可以装配beam写在字段和set方法上,推荐使用@Resource 该注解属于J2EE,减少了spring的耦合更优雅。
更详细的请参考 https://blog.csdn.net/weixin_40423597/article/details/80643990
aop 切面切点
web层级设计中,web层->网关层->服务层->数据层,每一层之间也是一个切面。编程中,对象与对象之间,方法与方法之间,模块与模块之间都是一个个切面。
aspect(切面)类似java类的声明,包含pointcut 以及相应的 advice
join point (连接点)表示程序中明确定义的点包括方法的调用对类的访问和异常处理还可以嵌套其他join point
advince (增强)定义pointcut 程序需要具体的操作,即before,after 和arount 来区别时joint point 之前还是之后执行的代码。
target (目标对象)织入advice的目标对象
weaving (织入)将aspect和其他对象连接起来并且创建advice object 对象
举个例子:例如日志 ,权限控制
贯穿整个程序,与逻辑向将会的地方叫做切点,比如注解,通过切点处理方法执行前后的操作叫做advince,而这个需要加载到切点出的对象叫做(target),这种行为被称作织入。