香辣弹簧:不同的自动接线方式

我想展示使用Spring的@Autowired批注的不同方式: ConstructorMethodField自动装配。 我展示的示例都是byType自动装配模式的一种形式( constructor自动装配模式类似于byType )。 请参阅Spring参考指南 ,以获取有关自动装配模式的更多信息。

构造器自动装配

使用从属bean作为构造函数参数创建一个构造函数,并将@Autowired批注添加到该构造函数。 构造函数自动装配的一大优点是可以将字段定为最终字段,因此构造后不得更改。

package com.jdriven;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class AutowiredCapabilityBean
{//The InjectableBean can be made finalprivate final InjectableBean injectableBean; //The InjectableBean is autowired byType and is required.//An error is thrown when no bean or multiple beans of InjectableBean exist@Autowiredpublic AutowiredCapabilityBean(InjectableBean injectableBean) {this.injectableBean = injectableBean;}
}

方法自动装配

为从属bean创建一个setter方法,并将@Autowired批注添加到setter方法。 使用方法自动装配的一个缺点是可以在生产代码中调用setter,从而意外覆盖了bean。

package com.jdriven;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class AutowiredCapabilityBean
{private InjectableBean injectableBean; //No explicit constructor is needed. The default constructor is used.//The InjectableBean is autowired byType, but is not required.@Autowiredpublic void setInjectableBean(InjectableBean injectableBean) {this.injectableBean = injectableBean;}
}

现场自动接线

为从属bean创建一个字段(成员变量),并将@Autowired批注添加到该字段。 这种自动装配方式的代码更少,但是需要使用InjectableBean的实现来测试AutowiredCapabilityBean ,因为它没有构造函数,也没有设置方法。

package com.jdriven;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class AutowiredCapabilityBean
{//The InjectableBean is autowired byType and is required.@Autowiredprivate InjectableBean injectableBean; //No explicit constructor is needed. The default constructor is used.
}

翻译自: https://www.javacodegeeks.com/2015/03/spicy-spring-different-ways-of-autowiring.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/338036.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows服务器系统免登录,Mac系统登录Windows服务器

#### 操作场景下载地址:[Microsoft Remote Desktop for Mac](https://soft.wnana.com/Microsoft_Remote_Desktop_10.3.12_installer.pkg)本节操作以“Windows Server 2012 R2 数据中心版 64位”操作系统为例,介绍如何通过Microsoft Remote Desktop for M…

android module中获取 app_Android组件化架构 - 4. 动态创建

Android 组件化中使用动态创建的作用是解耦;1. 反射机制反射有两个作用:1.反编译:.class->.java;2.通过反射机制访问java对象中的属性,方法,构造器等;实现反射,实际上是得到Class对象2. 动态…

小白适用的C语言数据类型转换及转换规则

点击上方蓝字关注我,了解更多咨询1.不同类型数据间的混合运算与类型转换:①若参与运算量的类型不同,则先转换成同一类型,然后进行运算②转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时&#x…

jax-ws和jax-rs_带有JAX-RS和PrimeFaces的RESTful图表

jax-ws和jax-rs通常,利用图表提供数据的直观表示很有用。 PrimeFaces提供制图解决方案,可轻松将数据的可视表示形式添加到Web和移动应用程序中。 如果我们将PrimeFaces图表组件的使用与RESTful Web服务数据结合在一起,我们可以创建自定义图表…

永恒之塔修改服务器,[搬运工]永恒之塔单机版7.8 德国最新服务端

有高手整整吗!搞了一天服务器启动不了啊…安装教程:1,安装【jdk-14】,切记,默认安装,不要修改路径等不出意外默认路径应该是【C:\Program Files\Java\jdk-14】2,注意:安装好【JDK】之…

udp 使用connect优点_nodejs源码分析第十九章 -- udp模块

udp不是面向连接的协议,所以使用上会比tcp简单,他和tcp一样,使用四元组来标记通信的双方(单播的情况下)。我们看看udp作为服务器和客户端的时候的流程。1 在c语言中使用udp1.1 服务器流程(伪代码&#xff0…

C语言与Java的对比,你想好选谁了吗?

点击上方蓝字关注我,了解更多咨询很多同学纠结自己应该学C语言还是学Java,本篇文章带你细致了解C语言与Java的各方面的不同之处,让你能够更全面的把握编程语言!1.Java与C语言各自的优势C语言是面向过程的语言,执行效率…

java 编程工具_Java开发工具可以促进编程!

java 编程工具Java开发人员通常尝试找到快速有效地编写高质量Java代码的方法,以使他们的编程工作变得更轻松。 由于情况发生了变化,因此出现了越来越多的工具。 因此,下面列出了大多数开发人员已经使用,将来使用或一定会使用的有用…

电梯tt服务器显示第二行啥意思,【大杂烩】〖其他〗奥的斯电梯服务调试器按键说明(TT)...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼摘要:奥的斯电梯服务调试器(下面简称服务器)的前面板由一个显示两行每行可显示16个字符的液晶显示和16个按键组成。奥的斯电梯服务调试器的16个按键分两个部分:左边部分四个分别是:MODULE 、FUNC…

C语言:初始C语言

点击上方蓝字关注我,了解更多咨询什么是C语言为什么学习C语言?第一个C语言程序什么是C语言说到语言,可能会想到汉语,英语这些人与人之间交流的语言,语言是人与人之间沟通的桥梁,通过语言,我们得…

apache camel_带有调试器的Apache Camel Eclipse工具

apache camel大约2个月前, Lars Heineman在 JBoss工具堆栈中写了关于改进的Apache Camel Eclipse工具的博客。 在即将发布的版本中,他们将Camel调试器与本机Eclipse调试器集成在一起,因此当您使用断点时,您将获得Eclipse调试体验…

服务器皮肤在哪个文件里,服务器怎么使用皮肤

服务器怎么使用皮肤 内容精选换一换在使用云服务器备份制作的整机镜像创建弹性云服务器时,创建速度很慢,或者界面提示用户:该镜像不支持快速创建云服务器功能。CSBS服务早期提供的老备份格式无法支持快速创建云服务器,因此&#x…

c语言中?:的用法

点击上方蓝字关注我&#xff0c;了解更多咨询?:是C语言中的三目运算符&#xff0c;可以用来替代 if—else 语句。?:的使用方法为&#xff1a;<表达式1>?<表达式2>:<表达式3>它是对第一个表达式作真/假检测&#xff0c;然后根据结果返回另外两个表达式中的…

字符斜杠是合法常量吗_【面试秘籍】你对String的intern方法了解吗

我们先来看个例子&#xff1a;public class StringTest { public static void main(String[] args) { String a "A"; String b new String("A"); System.out.println(a b); // false String c b.intern(); Syst…

flyway数据迁移_使用Flyway在Java EE中进行数据库迁移

flyway数据迁移任何Java EE应用程序的数据库模式都会随着业务逻辑一起发展。 这使得数据库迁移对于任何Java EE应用程序都很重要。 您是否还在执行应用程序时手动执行它们&#xff1f; 它仍然是一个锁定步骤过程&#xff0c;还是作为两个单独的脚本运行–一个用于应用程序部署…

http协议下需要服务器推送吗,HTTP/2.0 服务器推送实现

前言HTTP/2.0发布于2015年&#xff0c;作为新一代HTTP协议&#xff0c;其由于推进互联网加密技术的使用&#xff0c;所以只能作用于https连接当中。HTTP/2.0提供HTTP语义的有效序列化&#xff0c;是一个二进制协议&#xff0c;所有的框架开始一个8字节的头&#xff0c;紧跟着的…

C语言最常用的编译器

点击上方蓝字关注我&#xff0c;了解更多咨询对于大部分工科类专业的学生来说&#xff0c;如果说是需要学习c语言的话&#xff0c;那选择编译器就是我们第一个遇到的问题了&#xff0c;这一类软件有很多&#xff0c;每一个软件都有他各自的优点&#xff0c;当然了也有他各自的缺…

word一键生成ppt 分页_如何一键把Word转换为PPT?

看到评论区有人问可以一键转换吗&#xff1f;当然可以&#xff0c;比如简单好用的【迅捷PDF转换器】迅捷PDF转换器 - 多功能的PDF转换成Word|JPG|PPT转换器安装打开软件之后&#xff0c;在PDF转换栏目下&#xff0c;点击PDF转换其它&#xff0c;就可以看到文件格式转PPT&#x…

jboss4 迁移_JBoss BPM Travel Agency的微服务迁移故事

jboss4 迁移不久前&#xff0c;我们启动了一个规模较大的JBoss Travel Agency演示项目&#xff0c;以展示JBoss BPM Suite的一些更有趣的功能。 我们提供了一系列视频 &#xff0c;不仅向您展示了如何安装它&#xff0c;项目中各种规则和流程工件的含义&#xff0c;还向您介绍…

windows系统c 实现ftp服务器,windows系统c 实现ftp服务器

windows系统c 实现ftp服务器 内容精选换一换弹性云服务器卸载磁盘。弹性云服务器状态为stopped时支持系统盘(也就是/dev/sda挂载点)和用户盘的卸载&#xff0c;没有操作系统限制&#xff0c;也不需要在弹性云服务器内部安装vmtools。弹性云服务器状态为active态时有如下约束限制…