读spring in action spring 之旅

2023-11-08

spring bean 的作用域

Spring定义了多种作用域,可以基于这些作用域创建bean,包括:
单例(Singleton):在整个应用中,只创建bean的一个实例。
原型(Prototype):每次注入或者通过Spring应用上下文获取的时候,都会创建一个新 的bean实例。
会话(Session):在Web应用中,为每个会话创建一个bean实例。
请求(Rquest):在Web应用中,为每个请求创建一个bean实例。

spring aop在书中的介绍:
鲜活的例子,就是在一个家庭中电表的记录的数值。需要向供电公司通信。我们只关心煮饭,不关心煮饭记录煮饭用了多少电量。

aop 的链接点是什么呢?
一个应用可能面对数以千计的应用通知,这些时机被称为链接点。

aop 织入目标对象:
织入是把面向切面应用到目标对象并创建新的代理对象的过程。
切面是在指定的连接点,

Spring提供了4种类型的AOP支持:
1、基于代理的经典Spring AOP;
2、纯POJO切面;
3、@AspectJ注解驱动的切面;
4、注入式AspectJ切面(适用于Spring各版本)。
在这里插入图片描述

就是说在代理类的作用相当于在目标对象上包裹一个外衣,使得目标对象被调用的时候有东西对它进行一个拦截。

但是spring aop 无法在bean 创建的时候拦截,只能在bean方法调用的时候拦截,也就是说相比较于比较细粒度的AspectJ spring aop 在这时候就无能为力了。

POJO声明一个简单的切面。

package com.example.demo.Performence;

import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class Audience {

    @Pointcut("execution(* Performence.perform(..))")
    public void function(){}

    @Before("function()")
    public void silenceSellPhone(){
        System.out.println("silence !!!");
    }

    @AfterReturning("function()")
    public void applaud(){
        System.out.println("excellent !!!");
    }

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读spring in action spring 之旅 的相关文章

  • HashMap不写入数据库

    我尝试在我的数据库中写入 但只写入发件人和消息 我不明白为什么会发生这种情况 我认为问题出在我使用 sendMessage 的地方 我认为问题是我没有什么可以做的读 写其他用户的主键 我在数据库中写入消息的活动 public class M
  • 添加动态数量的监听器(Spring JMS)

    我需要添加多个侦听器 如中所述application properties文件 就像下面这样 InTopics Sample QUT4 Sample T05 Sample T01 Sample JT7 注意 这个数字可以多一些 也可以少一些
  • 如何在spring mvc中从控制器名称+操作名称获取映射的URL?

    是否有现有的解决方案可以从 Spring MVC3 中的 控制器名称 操作名称 获取映射的 URL 例如 asp net mvc 或 Rails 中的 UrlHelper 我觉得非常有用 thx 也许 你想要这样的东西 in your Co
  • eclipse中导入项目文件夹图标

    我在 Eclipse 工作区中新导入的 Maven 项目有J and M项目文件夹顶部的图标 项目和包资源管理器 而其他导入的 Maven 项目只有一个J icon 有人可以解释其中的区别吗 该项目有J装饰器被称为 Java 项目和具有M装
  • Condition 接口中的 signalAll 与对象中的 notificationAll

    1 昨天我才问过这个问题条件与等待通知机制 https stackoverflow com questions 10395571 condition vs wait notify mechanism 2 我想编辑相同的内容并在我的问题中添加
  • Java套接字:在连接被拒绝异常时重试的最佳方法?

    现在我正在这样做 while true try SocketAddress sockaddr new InetSocketAddress ivDestIP ivDestPort downloadSock new Socket downloa
  • 在 HTTP 标头中发送 UTF-8 值会导致 Mojibake

    我想使用 servlet 发送阿拉伯语数据HTTPServletResponse给客户 我正在尝试这个 response setCharacterEncoding UTF 8 response setHeader Info arabicWo
  • 如果使用的 JVM 是 x86 或 x64,则以不同的方式解决 Maven 依赖关系?

    我设置了一个 Maven 存储库来托管一些 dll 但我需要我的 Maven 项目根据使用的 JVM 是 x86 还是 x64 下载不同的 dll 例如 在运行 x86 版本 JVM 的计算机上 我需要从存储库下载 ABC dll 作为依赖
  • 如何从 Retrofit2 获取字符串响应?

    我正在做 android 正在寻找一种方法来执行超级基本的 http GET POST 请求 我不断收到错误 java lang IllegalArgumentException Unable to create converter for
  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • Java 数组的最大维数

    出于好奇 在 Java 中数组可以有多少维 爪哇language不限制维数 但是JavaVM规范将维度数限制为 255 例如 以下代码将无法编译 class Main public static void main String args
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • Dispatcher-servlet 无法映射到 websocket 请求

    我正在开发一个以Spring为主要框架的Java web应用程序 特别使用Spring core Spring mvc Spring security Spring data Spring websocket 像这样在 Spring 上下文
  • 为什么java中的for-each循环中需要声明变量

    for 每个循环的通常形式是这样的 for Foo bar bars bar doThings 但如果我想保留 bar 直到循环结束 我可以not使用 foreach 循环 Foo bar null Syntax error on toke
  • 无法捕获 Spring Batch 的 ItemWriter 中的异常

    我正在编写一个 Spring Batch 流程来将数据集从一个系统迁移到另一个系统 在这种情况下 这就像使用RowMapper实现在传递给查询之前从查询构建对象ItemWriter The ItemWriter称为save我的 DAO 上的
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • 如何在Java中正确删除数组[重复]

    这个问题在这里已经有答案了 我刚接触 Java 4 天 从我搜索过的教程来看 讲师们花费了大量精力来解释如何分配二维数组 例如 如下所示 Foo fooArray new Foo 2 3 但我还没有找到任何解释如何删除它们的信息 从内存的情
  • 挂钩 Eclipse 构建过程吗?

    我希望在 Eclipse 中按下构建按钮时能够运行一个简单的 Java 程序 目前 当我单击 构建 时 它会运行一些 JRebel 日志记录代码 我有一个程序可以解析 JRebel 日志文件并将统计信息存储在数据库中 是否可以编写一个插件或
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • Java的-XX:+UseMembar参数是什么

    我在各种地方 论坛等 看到这个参数 并且常见的答案是它有助于高并发服务器 尽管如此 我还是找不到 sun 的官方文档来解释它的作用 另外 它是Java 6中添加的还是Java 5中存在的 顺便说一句 许多热点虚拟机参数的好地方是这一页 ht

随机推荐

  • 你是否也无法在Thebrain 11中打开旧版数据?看看正确过渡新版方式

    TheBrain是一款与众不同的思维导图软件 其所有信息通过一个又一个的节点进行联系 最终形成一个杂而不乱的网状结构 一旦你搜索并点击一个想法后 与之相关的所有关联信息将一目了然 与传统的树形思维导图相比 TheBrain更有助于整合零散的
  • Robot Framework 学习(1)- 简单网站兼容性测试

    Robot Framework 简单网站兼容性测试 0 Robot Framework 简介 Robot Framework 是一个通用的自动化测试框架 主要用于 验收测试 和 验收测试驱动开发 ATDD 会其它文章中会详细介绍ATDD 它
  • SecureCRT发送AT指令

    1 首先安装驱动 MTK提供的驱动 会在设备管理器里面显示 2 打开secureCRT 选择连接类型为serial串口 3 设置secureCRT可以输入文本 4 然后就可以输入指令测试看看了 整个过程结束 但可能在第4步时输出没反应 这是
  • VS2017配置QT5.14.2

    一 QT下载 需要注意的是VS与QT的版本对应 VS2017对应的最新的QT版本是5 14 以后的版本适应的是VS2019 本文以VS2017 QT5 14为例 QT5 14 下载地址 Index of archive qt 5 14 5
  • 单片机——蜂鸣器(生日快乐歌)

    基础知识 改变单片机引脚输出波形的频率 就可以调整控制蜂鸣器音调 产生各种不同音色 音调的声音 改变输出电平的高低电平占空比 占空比是指一个周期内高电平所占的时间 则可以控制蜂鸣器的声音大小 单片机采用的是无源蜂鸣器 需要产生一定的脉冲才能
  • Acwing-873. 欧拉函数

    欧拉函数的证明使用了容斥原理 include
  • IDA反汇编之栈帧例释

    目录 1 例释环境和预备知识 1 1 运行环境 1 2 IDA版本 1 3 预备知识 2 函数调用约定 3 函数局部变量布局 4 函数栈帧示例 5 IDA栈视图 1 例释环境和预备知识 1 1 运行环境 本示例运行环境为Windows 10
  • VLAN(虚拟局域网)的用法与配置

    一 交换机的作用 区别集线器 HUB HUB为物理层设备 只能直接转发电流 交换机为数据链路层设备 可以将电流与二进制转换 实现了以下功能 1 无限的传输距离 2 彻底解决了冲突 所有接口可以同时收发数据 3 二层单薄 物理寻址 在一个交换
  • Eigen:基础入门到使用

    文章目录 一 基础介绍 1 1 安装 1 2 框架 二 矩阵基础 2 1 矩阵和向量 2 2 动态矩阵 2 3 定义 2 4访问矩阵元素 2 5 重置矩阵大小 2 6 怎么选择固定矩阵和动态矩阵 三 矩阵的运算 3 1 加法和减法 3 2
  • android studio jvm设置,如何使用gradle和kotlin为android studio设置jvm目标?

    尝试编译用kotlin编写的单元测试时出现以下错误 任务 app compileDebugUnitTestKotlin失败 无法将使用JVM target 1 7构建的字节码内联到使用JVM target 1 6构建的字节码中 请指定正确的
  • 一款可以完美替代浏览器自带起始页的新标签页插件:Wetab

    现在打开你们的浏览器 映入眼帘的是不是一片空白的自带起始页 或者是乱七八糟布满网站快捷方式的页面 Wetab新标签页是一款没有广告并且免费使用的浏览器插件 还原一个干净纯粹的浏览器体验 一 为什么要用wetab 本人已经被那些乱七八糟的起始
  • 递归超时怎么办?递归与递推的区别?递归的优化之道

    递归超时怎么办 递归的优化之道 平时在做题的时候 我们经常都要用到递归来解题 因为递归能最快速的让计算机知道我们想让他做什么 解放了我们的思维量 但在一定程度上加重了计算机的计算量 这也是可能超时的原因所在 方便我们阅读理解和修改 这里我想
  • 算法训练营第十四天(7.26)

    目录 LeeCode102 Binary Tree Level Order Traversal LeeCode226 Invert Binary Tree LeeCode101 Symmetric Tree LeeCode102 Binar
  • 将字符串以单词为单位逆序"I am a Student" 解法

    网上有个题目 将字符串以单词为单位逆序 例如 I am a Student 要变成 Student a am I 解法大致为 先将字符串整体逆序第一个字符和最后一个交换 第二个与倒数第二个交换 一直到完成整个串逆序 即 tnedutS a
  • 什么叫做项目孵化_【热点】孵化100个项目成功95个,创新工场凭什么?

    原标题 热点 孵化100个项目成功95个 创新工场凭什么 向死而生 我修的死亡学分 李开复 本文约3500字 建议阅读时间8分钟 2016年春节过后 创新工场创始人 董事长李开复带领工场内100多名创业者 15天里拜访了26位硅谷科技大咖
  • 使用腾讯手游助手作为开发测试模拟器的方案---以及部分问题的解决方案-1

    目录 前言 一 目录结构 二 注册表研究 1 HKEY LOCAL MACHINE SOFTWARE WOW6432Node Tencent MobileGamePC 2 HKEY CURRENT USER Software Tencent
  • Qt浅谈之四十六QemuQuestAgent的应用

    一 简介 qemu ga是在虚拟机中安装的一个agent 宿主机host通过通道 unix socket 与虚拟机vm内部的agent进行通信 这样宿主机就有了一种从外部控制 获取虚拟机的手段 比如 host可以向vm下发执行修改hostn
  • RabbitMQ-延迟队列

    文章目录 前言 什么是延迟队列 实现延迟队列 使用RabbitMQ实现延迟队列 步骤1 创建RabbitMQ连接和通道 步骤2 创建延迟队列和死信队列 步骤3 发送延迟消息 死信队列 前言 随着现代应用程序对消息队列的需求不断增长 延迟队列
  • 小程序开发:Component “pages/index/index“ does not have a method “onGetOpenid(p)“ to handle event “tap“

    小程序的坑又来啦 当我们在js里面很快乐的写了一个带参数的方法 然后在页面上使用bindtap去调用时 就像我这样 不要吐槽 我是测试代码 然后就会愉快的发现 嗯 怎么解决呢 去掉括号和参数 加一个date 问号1代表你接受参数的名称 问号
  • 读spring in action spring 之旅

    spring bean 的作用域 Spring定义了多种作用域 可以基于这些作用域创建bean 包括 单例 Singleton 在整个应用中 只创建bean的一个实例 原型 Prototype 每次注入或者通过Spring应用上下文获取的时