当前位置: 首页 > 知识库问答 >
问题:

@aspect与@component注释如何在引擎盖下工作

席安康
2023-03-14

@Component表示给定的类将是给定上下文中的单例,@aspect表示在运行时/编译期间,一个方面类的内容将以某种方式编织到目标类中--例如,这个目标类不是单例而是原型。我最后的结局是什么?

共有1个答案

冯浩旷
2023-03-14

Spring AOP不执行编译时编织,也不修改建议目标的代码。相反,它使用围绕连接点编织的代理。这就是为什么Spring AOP方面被用作(单例)组件,将其字段自动连线,等等,就像任何其他Spring代理一样。

这也是为什么Spring AOP方面只用于公共方法执行,而不用于字段访问等的原因。

文档编写得非常好,可以根据需要提供更多(或更少)细节:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html

 类似资料:
  • Java的switch语句是如何工作的?它如何将所使用变量的值与案例部分中给出的值进行比较?它是否使用或,还是完全是其他原因? 我主要对1.7之前的版本感兴趣。

  • 但我对西农在台面下是如何工作仍有一些疑问。我想我是在说Sinon,但这个问题可能适用于所有其他设计为mock/stub/spy的库。 在过去的几年里,我工作最多的语言是Java。在Java中,我使用Mockito来模拟/存根依赖项和依赖项注入。我曾经导入这个类,用注释这个字段,并将这个mock作为param传递给被测试的类。对我来说,很容易看出我在做什么:模仿一个类,并将模仿作为param传递。

  • 除了阅读github中的代码之外,是否有关于signalr.redis包如何工作的白皮书类型的文档?具体地说,我想知道它为Redis添加了哪些键、更新/删除策略等。当查看Redis内部时,我只看到以下调用中指定的一个键(即“signalr.Redis.sample”): 这把钥匙好像是Redis的柜台。我假设正在创建其他键并迅速删除,以方便连接到Redis的每个应用服务器之间的消息。

  • 我的spring应用程序有点小问题。下面是我的代码: (存储库) 下面是我的简单服务类: 更新:配置

  • 新的Java17型模式匹配开关如何在引擎盖下工作?由于该功能相当新,本问题不讨论它。 提醒:要使此代码在Java 17下工作,需要启用预览功能 使用javap-c对上述代码进行了反汇编: 鉴于这一关键点: 看起来Java在自动生成的int-typeSwitch(object,int)方法中将对象转换为int,我看不到生成的代码。这种转换的目标是能够在int值上使用常规的切换表。 起初,我认为使用了

  • 问题内容: 在阅读了戴夫·切尼(Dave Cheney)关于Go的地图的博客文章之后,对我来说,还有几件事尚不清楚。 TLDR: 为什么它们无序? 实际值存储在哪里? 深入研究运行时程序包后,我发现基本的映射结构如下: -是存储区数组,其中索引是键的哈希值的低位,其中存储区为: ..好吧,这只是每个项目是键的哈希值的第一个字节的数组。键值对存储为(每个存储桶八对)。但是到底在哪里?考虑到映射可能包