Spring IOC 与 AOP 基础原理,一篇搞定

这篇具有很好参考价值的文章主要介绍了Spring IOC 与 AOP 基础原理,一篇搞定。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

IOC 控制反转

控制反转,一切对象交给Spring来创建于管理,将创建与使用对象的代码进行分离作用。实现代码的解耦。

为什么叫反转

因为以前的对象创建都是在程序的创建,管理。这是所谓的正转,如今的对象的创建是在IOC中,在 IOC Container中获取。这就是反转。

IOC与DI

DI,denpendecy inject。依赖注入,在应用程序中注入依赖对象。设置对象的依赖以及对象的依赖关系。

IOC 注入容器使用方式

  1. 使用xml配置文件
  2. 使用Java类配置
  3. 使用注解(主流方式),@reposity,@Service等等。

IOC 与DI 本质上是一样的,IOC 是设计思想,DI是实现方式。

IOC设计思想的好处

实现了高内聚,低耦合的思路,不用在应用程序中创建对象,一切对象由IOC容器来管理,从容器中获取。

注解解释

@Autowire
自动配置,Spring内部的注解。默认是按照类型匹配byType,如果要按照名称匹配byName。需要搭配另一个注解@Qutifity。如果这是找不到对象会抛出异常,为了不抛出异常,我们可以给注解加参数(request = false).

@Resouce
Java注解,默认按照名称来匹配byName。

@Inject
Java注解,与@Autowire 一样,默认按照类型进行匹配。

Bean

什么是Bean

Bean 是存储在IOC 容器中的对象

将一个类声明为 Bean 的注解有哪些?

● @Component :通用的注解,可标注任意类为 Spring 组件。如果一个 Bean 不知道属于哪个层,可以使用@Component 注解标注。
● @Repository : 对应持久层即 Dao 层,主要用于数据库相关操作。
● @Service : 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao 层。
● @Controller : 对应 Spring MVC 控制层,主要用于接受用户请求并调用 Service 层返回数据给前端页面。

@Component 和 @Bean 的区别是什么?

● @Component 注解作用于类,而@Bean注解作用于方法。
● @Component通常是通过类路径扫描来自动侦测以及自动装配到 Spring 容器中(我们可以使用 @ComponentScan 注解定义要扫描的路径从中找出标识了需要装配的类自动装配到 Spring 的 bean 容器中)。
● @Bean 注解比 @Component 注解的自定义性更强,有些地方我们只能通过 @Bean 注解来注册 bean。比如当我们引用第三方库中的类需要装配到 Spring容器时,则只能通过 @Bean来实现。

@Bean注解使用示例:

@Configuration
public class AppConfig {
    @Bean
    public TransferService transferService() {
        return new TransferServiceImpl();
    }
}

AOP 面向切面编程

AOP,Aspect Oriented programming,面向切面编程,主要为起到代码解耦、解决重复代码的问题,比如插入日志。事务管理、防止入侵式编程。可以灵活的使用,关联知识pointCut切点,Arount环绕通知等等。

术语

连接点:AOP要执行什么类型,比如Method,class
切入点:AOP的执行集合,切入什么执行的方法
通知类型:前置通知、后置通知,环绕通知(最强大),异常通知,最终通知。要选择最适合的,而不是最强大。
切面:AOP具体要执行什么。

AOP 与 AspectJ 的区别

AOP 是动态织入,基于动态代理,动态代理是使用JDK(proxy实现),或者cglib来实现。
Aspectj 是基于静态的,在编译时期织入。

AOP 与 Aspectj相辅相成,AOP更简单,容易,但是只能实现简单的切面编程。
Aspect 更专业,专业的AOP工具,难学,但能实现更加复杂的编程。

实现AOP

JDK动态代理
定义接口
定义实现接口的方法
定义切面类,使用注解。@Aspect,@PointCut, @Around。等来实现

Gclib
定义类方法
定义切面类,使用注解。@Aspect,@PointCut,@Around。等来实现

注意点
● 定义切面的规则:* 表示通配符,() 表示没有参数的方法,(…)表示有一个或多个参数的方法。

写作不易,有所收获,点个赞就行,我是球球,Java程序员,24届毕业生。文章来源地址https://www.toymoban.com/news/detail-812189.html

到了这里,关于Spring IOC 与 AOP 基础原理,一篇搞定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring IOC & AOP

    IOC,全程Inversion of Control(控制反转) 通过控制反转(创建对象的权限交给框架,所以叫反转)创建的对象被称为 Spring Bean ,这个Bean和用new创建出来的对象是没有任何区别的。 官方解释:Spring 通过 IoC 容器来管理所有 Java 对象的实例化和初始化,控制对象与对象之间的依赖

    2024年02月16日
    浏览(39)
  • 什么是 AOP?对于 Spring IoC 和 AOP 的理解?

    AOP(Aspect-Oriented Programming) ,即 面向切面编程, 它与 OOP( ObjectOriented Programming, 面向对象编程) 相辅相成,提供了与OOP 不同的抽象软件结构的视角 在 OOP 中, 我们以 类(class) 作为我们的基本单元 而 AOP 中的基本单元是 Aspect(切面) IOC(Inverse of Control:控制反转) 是一种设计思想,

    2024年02月12日
    浏览(47)
  • Spring核心思想之IOC和AOP

    IOC和AOP不是Spring提出的,在spring之前就已经存在,只不过更偏向于理论化,Spring在技术层次把这两个思想做了⾮常好的实现(Java)。 什么是IoC? IoC Inversion of Control (控制反转/反转控制),注意它是⼀个 技术思想 ,不是⼀个技术实现。 描述的事情 :Java开发领域对象的创建,

    2024年02月09日
    浏览(55)
  • 【Java面试】Spring中的IOC和AOP

    IOC:控制反转也叫依赖注入。利用了工厂模式 将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置文件中配置的bean都初始化好,然后在你需要调用的

    2024年02月10日
    浏览(50)
  • Spring之AOP(带你一篇文章搞定AOP)

    Spring的核心之一:AOP 用的依赖(包括上篇文章讲诉的IOC依赖): AOP:面向切面编程。利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。通俗来说就是在不修改代码的情况下添加新的功能

    2024年02月16日
    浏览(56)
  • 深入解析Spring的IOC与AOP及其在项目中的应用

    在现代的软件开发中,为了提高代码的可维护性、可扩展性以及降低代码的耦合度,使用设计模式和面向切面编程(AOP)成为了程序员们常用的技术手段。Spring作为一个优秀的Java开发框架,提供了IOC和AOP两个核心特性,极大地简化了开发工作。本文将深入探讨Spring的IOC和AO

    2024年02月13日
    浏览(52)
  • Spring02-Spring注解的使用、基于注解的IOC、纯注解配置、整合Junit、AOP入门、基于配置文件的AOP、切入点表达式、基于配置的文件环绕通知

    学习基于注解的 IOC 配置,即注解配置 和 XML 配置要实现的功能都是一样的,都是要降低程序间的耦合。只是配置的形式不一样。 关于实际的开发中到底使用xml还是注解,每家公司有着不同的使用习惯 , 所以这两种配置方式我们都需要掌握。 把 Spring 的 xml 配置内容改为使用

    2024年02月03日
    浏览(76)
  • Spring——Spring IOC原理

    IoC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试;有了IoC容器后,把创建和查找依赖对象的控制权交给了容器

    2024年02月09日
    浏览(47)
  • 【Spring框架二】——什么是Spring IOC、 什么是Spring 依赖注入

    【Spring框架一】——Spring框架简介 【Spring框架三】——Spirng IOC和DI的实现 本篇博客主要讲解的是Spring 的IOC以及DI(依赖注入)的基本概念和优势利弊,如果想知道如何实现Spring IOC与DI可以访问博主的另外一篇博客。 【Spring框架三】——Spirng IOC和DI的实现 它的核心思想是将对

    2024年02月06日
    浏览(49)
  • spring框架,以及和spring框架相关的Java面试题和spring ioc的注入方式

    目录 一.spring来源,以及介绍 1.spring诞生的背景 2.spring框架 介绍 3.spring框架在使用中的优点以及不足 3.1优点  3.2不足 3.3总结 4.为什么要使用spring  二.将spring框架部署在IDEA中  1.替换pom.xml  2.构建spring所需要的xml文件 三.spring的三种注入方式 0.定义需要的类,方法 1.方法注入

    2024年02月12日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包