豆子自动接线在Spring中如何工作?

ng.newbie:

我最近在Spring中发现的一个非常酷且令人难以置信的令人惊奇的功能是自动自动装配bean

我指的是这样的:

class UserServiceImpl implements UserService {

    @Autowired
    UserService service;

    // other service methods...
}

我的问题如下:

  • 如何实施?

Spring如何管理这个?它是否将同一对象分配给自自动参照?像这样:

UserServiceImpl serviceImpl = new UserServiceImpl();
serviceImpl.setService(serviceImpl); // Obviously this would be done via Reflection rather than a setter.

要么

Spring会创建2个单独的对象吗?像这样:

UserServiceImpl obj1 = new UserServiceImpl();
UserServiceImpl obj2 = new UserServiceImpl();

obj1.setService(obj2);

obj1在我们提出要求时给我们RestController吗?

  • Spring Application Context中有多少个对象副本?

与上一个问题相关,该对象有多少个实际副本?

对于跨方法事务之类的事情来说,这是一个非常方便的功能,但是我想知道这里幕后到底发生了什么。

酷:

如果您使用@ Transactional,@ Cachable等注释,则不会注入UserServiceImpl。实际上会注入代理。

但是作为基础,它使用相同的实例。

从4.3开始,@ Autowired还考虑了自我引用以进行注入(即,引用回当前注入的Bean)。请注意,自我注入是一个后备。对其他组件的常规依赖始终优先。从这个意义上说,自我推荐不参与常规的候选人选择,因此特别是绝不是主要的。相反,它们总是以最低优先级结束。实际上,您应该仅将自引用用作最后的手段(例如,通过bean的事务代理在同一实例上调用其他方法)。考虑在这种情况下将受影响的方法分解为单独的委托Bean。或者,您可以使用@Resource,它可以通过其唯一名称获取返回到当前bean的代理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Spring Boot中自动接线时为空指针

在Spring中基于通用类型的自动装配。它是如何工作的?

IntelliJ“无法自动接线。” 检查Spring JPA存储库中的“ […]个以上的bean”

如何在springboot中在ConversionService中自动接线

Spring的自动布线如何工作?

Spring JUnit4手动/自动接线困境

java springboot如何在prometheus中自动接线

无法在接线器中自动接线Spring bean

Spring Boot注释自动接线的问题

Spring Boot配置。集合自动接线-成功自动接线后获得意外的价值

吃豆子:眼睛如何回到怪物的洞中?

Spring如何自动接线通用转换器?

如何仅在JUnit弹簧测试中自动接线特定的类?

如何在Spring中自动为带有注释的第三方课程接线?

如何在Spring-boot中自动接线/注入数据源?

自动接线不适用于Spring Boot中的自定义UserDetailsService

Spring Security-自动接线不起作用

Spring Boot:自动接线错误

尝试使用Spring框架自动接线时获取NPE

在Spring中如何进行条件自动接线?

如何在JUnit + Spring Test中将对象自动接线并注入一次?

在Eclipse中进行调试时,Spring无法从共享的Gradle库(自动接线Bean中的依赖项)中找到类

吃豆子游戏-如何让吃豆子自动移动

春季如何将一个豆子注入一组豆子中?

Spring Boot无法自动接线并运行

为什么这个Spring Batch Bean无法在Grails中自动接线?

Arduino接线语言如何工作?

Spring Boot构造函数自动接线异常

按名称自动接线在Spring MVC中不起作用