博客
关于我
Java Spring IoC与AOP 笔记
阅读量:614 次
发布时间:2019-03-13

本文共 2276 字,大约阅读时间需要 7 分钟。

Spring注解是Spring框架中核心的功能模块之一,本节将详细介绍Spring注解的基本概念和使用方法。以下内容将从多个维度展开阐述,内容涵盖注解的基本语法、生命周期管理、Aware接口、资源注解以及AOP( 面向切面编程)等核心知识点。

一、注解基本概念

Spring注解是Spring框架使用的一种元数据元语言,通过注解可以对Spring容器中的bean进行生命周期管理、依赖注入等操作。注解有以下几个核心特性:

  • 注解的元注解:@Target、@Retention、@Documented等元注解用于定义注解的作用域和表现形式
  • 注解的生命周期:@Annotation retains可以设置注解的生命周期,如SOURCE、CLASS、RUNTIME
  • 注解的备选值类型:支持基本数据类型以及String、Class、Annotation等复杂类型
  • 注解的抽象认为:JSR-250规范提供了统一的注解抽象层次
  • 二、Aware接口

    Spring框架提供了一系列以“Aware”结尾的接口,这些接口能够向bean提供Spring容器的上下文信息。以下是常见 Aware 接口的介绍:

  • ApplicationContextAware:提供ApplicationContext信息
  • ApplicationEventPublisherAware:用于事件发布
  • BeanClassLoaderAware:获取类加载器信息
  • BeanFactoryAware:访问Spring的BeanFactory
  • BootstrapContextAware:获取BootstrapContext
  • LoadTimeWeaverAware:处理加载时间调度
  • MessageSourceAware:获取消息源
  • NotificationPublisherAware:用于通知发布
  • ResourceLoaderAware:获取资源加载器
  • ServletContextAware:获取ServletContext
  • WebApplicationContextAware:目标是WebApplicationContext
  • 通过实现这些Aware接口,Bean可以获取到Spring的核心容器和相关资源,实现灵活的依赖管理。


    三、资源注解

    在Spring中,资源注解用于定义如何访问外部资源文件,常见的资源类型包括:

  • UrlResource:根据URL地址加载资源
  • ClassPathResource:从类路径加载资源
  • FileSystemResource:从文件系统加载资源
  • ServletContextResource:访问ServletContext资源
  • InputStreamResource:以输入流形式加载资源
  • ByteArrayResource:以字节数组加载资源
  • 资源注解可以通过Autowired或Resource注解实现资源的注入,支持通过名称或表达式指定资源路径。


    四、AOP(面向切面编程)

    AOP是一种动态代理技术,允许在方法执行过程中动态地插入额外的代码,常见的用途包括日志、事务管理和性能监控等。以下是AOP的核心概念和注解:

    1. AOP的核心概念

    • 切点(Pointcut):定义需要增强的方法或类
    • 通知(Advice):在切点处执行额外的逻辑
    • 切面(Aspect):将切点与通知关联在一起
    • 引入(Introduction):增加对象的新功能
    • 索引点(Indexing):优化性能

    AOP通过动态生成透明代理,实现对原有方法的增强。

    2. AOP的注解

  • @Aspect:标识一个类为切面,支持多个切点和通知
  • @Pointcut:定义一个切点,支持execution、within、this、target等表达式
    • 执行切点仅匹配特定类型的方法
    • within切点匹配特定类型的类– this切点匹配特定类型的bean引用– target切点匹配特定目标类– args切点匹配特定参数类型
  • @Before:执行前置通知
  • @After:执行后置通知
  • @Around:实现环绕通知
  • @AfterReturning:返回后置通知
  • @AfterThrowing:抛出异常后的通知
  • @Finally:执行最终通知
  • @RequestScope:定义请求级别切面
  • @SessionScope:定义会话级别切面
  • 3. AOP的具体实现

    以下是一些常见的AOP注解示例:

    @Aspectpublic class MoocAspect {    @Before("execution(* com.imooc.aop.aspectj.biz.*Biz.*(..))")    public void before() {        System.out.println("进入方法,方法名:" + Method.getName());    }}

    AOP注解可以用来实现日志记录、事务管理、缓存控制等功能,极大地提升了应用的可维护性和灵活性。


    五、注解实例总结

    上述内容涵盖了Spring注解的核心知识点,包括注解的基本语法、生命周期管理、Aware接口的应用、资源注解以及AOP的实现方式。每个注解都有具体的使用场景和应用实例,可以帮助开发者在实际项目中灵活运用Spring框架进行配置和开发。

    通过合理使用这些注解,开发者能够快速搭建测试 ApplicationContext、管理Bean的生命周期、实现依赖注入和AOP功能,从而充分发挥Spring的优势,在软件开发中提高效率。

    转载地址:http://sfhaz.baihongyu.com/

    你可能感兴趣的文章
    Ubuntu文件校验MD5
    查看>>
    windows环境tomcat8配置Solr5.5.1
    查看>>
    SpringMVC Hello World
    查看>>
    ValueError: Unexpected end of file.
    查看>>
    基于SpringMVC+Spring+MyBatis实现秒杀系统【客户端交互】
    查看>>
    webpack-相关报错-持续更新
    查看>>
    基于ios系统的ionic一些奇葩错误
    查看>>
    ckxy——并发处理——1、进程与线程
    查看>>
    struts2中配置文件的constant配置详解
    查看>>
    六、登录(二)
    查看>>
    七、删除功能和模糊查询功能
    查看>>
    第一章、基础入门(一)(SpringBoot2.x)
    查看>>
    Liferay对union的处理
    查看>>
    jQuery动画
    查看>>
    Liferay文件的上传
    查看>>
    初始微服务---Springcloud发展【第一期】
    查看>>
    RAFT 拜占庭将军 共识算法
    查看>>
    (记疑未答)变量名通过符号表联系内存,那符号表能在VS中调出来看吗
    查看>>
    UE4 错误列表 error码(只记录我遇到的情况,持续添加,未完成)
    查看>>
    利用委托与Lambada创建和调用webapi接口
    查看>>