_______________________________________________________________

原文链接:https://blog.csdn.net/weixin_42293662/article/details/125889917

@Lazy注解
当@Lazy 放在类上,表示在启动的时候不会创建bean对象,当使用的时候才会创建
当@Lazy 放在@Bean注解的方法上,表示在启动的时候不会创建bean对象,当使用的时候才会创建
当@Lazy 放在@Autowired注解的属性上, 并不会直接给属性赋上真正的值,只是会赋值一个代理对象,当真正使用到这个属性的时候,才回去容器中找到一个符合的对象。在使用的时候,也会先执行代理对象的逻辑,然后再是真正bean对象的逻辑
使用场景:循环依赖的时候可以在循环依赖的对象加上@Lazy注解
写在方法或者方法参数前面上,效果和写在属性上是一样的,开始注入的只是代理对象,当真正调用的时候才会调用对应对象的逻辑
写在构造方法或者构造方法参数前面上,同上。 

 

___________________________________________________________

https://blog.csdn.net/weixin_45874214/article/details/125834575

 

说到@Autowired注解肯定发和@Resource,@Qualifier,@Primary三个注解有必然的相关性

简单介绍一下这四个注解:
@Autowired是Spring的注解,提供按照类型装配,也是本次xxx的主角,在Spring的装配中若是存在多个相同类型,则会装配失败,这就有引入@Qualifier注解了,@Qualifier按照name装配是Spring为了解决按照类型装配失败而提供的注解,当然了,避免类型装配多个实例导致的失败我们也可以使用@Primary标注实例,指定默认的装配实现,局限是只能指定一个,解决根本问题还得是使用@Qualifier注解或者@Resoure注解,@Resource注解是javaee提供的注解,按照name进行装配的!

@Autowired可以使用的场景:
成员变量:

注入普通的对象如,这个没啥好说的

public class Service {
@Autowired
private ServiceMap serviceMap;
}
注入集合(重点是这个啦,标星,标星******************************************************):

public class Service {
@Autowired
private Map<String, ServiceMap> map;
@Autowired
private List<ServiceMap> list;
@Autowired
private Set<ServiceMap> set;
}
这个用法惊艳到我了,搬了两年砖,第一次在项目中遇到注入集合这种特殊对象,当时有点蒙圈,居然还可以这样使用………

简单研究了一下,这样注入集合的前提是ServiceMap的子类对象/实现类对象都交给ioc管理了,在

当前类加载时候ioc容器会初始化将这些被管理的实现类对象装入集合,注入到当前类中,注入map对象,kev是注入类的name,value是注入类对象,按照那么可以在map中获取到目标对象进行业务操作,注入set/list使用时候就需要按照字节码对象进行判断使用,这样有利于统一管理某个业务实现对象;

不过在注入集合的时候通常需要延迟加载,因为当前类加载之前,可能注入map中的实现类对象还没有被ioc扫描到,会找不到目标bean对象,使用@Lazy标注注入的集合,延迟在当前类中注入集合,确保目标bean都能被装配到集合

参数,没少:

@Autowired
public DataSource dataSource(BaseDSMsg msg){
//todo …
return (DataSource) new DruidDataSource();
}
}
方法

public DataSource dataSource(@Autowired BaseDSMsg msg){
//todo …
return (DataSource) new DruidDataSource();
}
@Autowired主机标注参数和方法实质作用是一样的,没啥好讲的,,,
————————————————
版权声明:本文为CSDN博主「楠~枫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45874214/article/details/125834575

原文地址:http://www.cnblogs.com/kelelipeng/p/16915628.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性