热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:Java程序员自动组件注入的几种方式你会哪一种?

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java程序员自动组件注入的几种方式你会哪一种?相关的知识,希望对你有一定的参考价值。Java

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java程序员自动组件注入的几种方式你会哪一种?相关的知识,希望对你有一定的参考价值。


Java程序员自动组件注入的几种方式你会哪一种?

技术图片
Java程序员在开发的时候,一般都会遇到组件注入这个问题,回想起当年刚进入Java程序员这个行业的时候也遇到过这样的问题,那么我们今天就来讨论一下组件注入会有哪几种方式,希望能帮助大家快速攻破这个技术难点。

注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发人员无法预见最终的装配结果。

问题1:@Autowired 、@Inject 、@Resource 的区别

@Autowired

[if !supportLists]· [endif]Spring标准

[if !supportLists]· [endif]按照类型注入(ByType)

[if !supportLists]· [endif]AutowiredAnnotationBeanPostProcessor对其进行处理

[if !supportLists]· [endif]支持属性、set方法、构造方法注入,可以联合@Qualifier完成ByName,联合@Primary解决同类多 Bean冲突(不推荐,除非迫不得已)

[if !supportLists]· [endif]拥有required属性判定空

[if !supportLists]· [endif]构造函数只能有一个,构造方法注入@Autowire可以不带

[if !supportLists]· [endif]@Configuration中也可以不带@Autowire

[if !supportLists]· [endif]推荐set方法、构造方法注入

@Resource

[if !supportLists]· [endif]JSR250标准

[if !supportLists]· [endif]按照名称注入(ByName)

[if !supportLists]· [endif]CommonAnnotationBeanPostProcessor对其进行处理

[if !supportLists]· [endif]不支持@Qualifier、@Primary

[if !supportLists]· [endif]不支持required属性判定空

@Inject

[if !supportLists]· [endif]JSR330

[if !supportLists]· [endif]按照名称注入(ByType)

[if !supportLists]· [endif]支持@Qualifier、@Primary

[if !supportLists]· [endif]不支持required属性判定空

[if !supportLists]· [endif]需要依赖


javax.inject
javax.inject
1

问题2:下面代码有没有问题?

@Configuration

public class WorkerConfiguration {

@Autowired
Environment environment;
public WorkerConfiguration(){
System.out.println(environment.getProperty("os.name"));
}
@Bean
public Dept dept() {
System.out.println("dept>>>>>>>>>>>>>>>>>>>");
return new Dept();
}

}


推荐阅读
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了[从头学数学]中第101节关于比例的相关问题的研究和修炼过程。主要内容包括[机器小伟]和[工程师阿伟]一起研究比例的相关问题,并给出了一个求比例的函数scale的实现。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
author-avatar
mobiledu2502909217
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有