属性依赖注入

1.依赖注入方法

  手动装配和自动装配

2.手动装配

2.1 基于xml装配

2.1.1 构造方法

<!-- 构造方法注入<constructor-arg>name:参数名type:类型value:
-->
<bean id="user" class="g_xml.constructor.User"><constructor-arg name="id" type="java.lang.Integer" value="11"></constructor-arg><constructor-arg name="username" type="java.lang.String" value="张三"></constructor-arg><constructor-arg name="age" type="java.lang.Integer" value="10"></constructor-arg>
</bean>

 

2.1.2 setter方法

<bean id="addr" class="g_xml.setter.Address" ><property name="addr" value="上海浦东"></property><property name="tel" value="138234324"></property>
</bean>
<bean id="user" class="g_xml.setter.User"><property name="id" value="1"></property><property name="username" value="张三"></property><property name="age" value="12"></property><property name="homeAddr" ref="addr"></property><property name="companryAddr" ref="addr"></property>
</bean>

2.1.3 p命名空间

  对setter方法注入进行简化,替换<property>为:

  但是需要加入schame命名空间

2.1.4 spEL

  对<property>进行了统一编程,所有的内容都是用value

<property name="" value="#{EL表达式}">

EL:

  #{123}

  #{"hello"}

  #{beanId} :另一个bean的引用

  #{beanId.propName}

  #{beanId.toString()}

  #{T(类).静态方法|字段}

2.1.5 集合注入

 

<bean id="users" class="g_xml.collections.Users"><property name="strArr"><array><value>战三</value><value>李四</value><value>王五</value></array></property><property name="list"><list><value>111</value><value>222</value><value>333</value></list></property><property name="set"><set><value>set1</value><value>set2</value><value>set3</value></set></property><property name="map"><map><entry key="key1" value="value1"></entry><entry key="key2" value="value2"></entry></map></property><property name="properties"><props><prop key="k1">value1</prop><prop key="k2">value2</prop></props></property>
</bean>

 

2.2 基于注解

   注解就是一个类,使用@注解名称,取代xml配置

2.2.1 @Component  == <bean id="" class="">

    @Component("id")

  使用注解之前,必须添加命名空间,让spring扫描带有注解的Bean

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- bean definitions here 配置所需要创建的实例对象,放入spring容器中--><!--<bean id="userService" class="a_IoC.UserServiceImp"></bean>--><context:component-scan base-package="h_annotation"></context:component-scan>
</beans>

 

2.2.2 在web开发中,提供了三个Component衍生出的注解

@Repository  DAO层

@Service       Service层

@Controller   Web层

2.2.3 依赖注入  (可以给私有属性注入,也可以给setter方法注入)

  普通值:@Value()

  引用值:

    方式1:按照类型注入-->@Autowired

    方式2:按照名称注入 -->

        @Autowired

        @Qualifier("名称")

    方式2:按照名称注入 -->

      @Resource("名称") 

 

转载于:https://www.cnblogs.com/zhuxiang1633/p/8502711.html

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

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

相关文章

windows下实现自己的第一个python脚本文件并.exe运行

前言 python可以做很多事情&#xff0c;比如知乎上的回答&#xff0c;每天来到公司都要打开AS&#xff0c; QQ和微信,为了省事决定用python写一个简单的脚本来实现。。脚本内容只有几行,python的代码真的好简洁。。。 import os os.startfile("C:\Program Files (x86)\Ten…

C++中引用()基础认识

对于习惯使用C进行开发的朋友们&#xff0c;在看到c中出现的&符号&#xff0c;可能会犯迷糊&#xff0c;因为在C语言中这个符号表示了取地址符&#xff0c;但是在C中它却有着不同的用途&#xff0c;掌握C的&符号&#xff0c;是提高代码执行效率和增强代码质量的一个很好…

linux无法访问443端口,linux – 为什么我无法在Ubuntu上ping端口443?

我通过iptables打开了端口443&#xff1a;pkts bytes target prot opt in out source destination45 2428 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/06 1009 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80141 10788 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:220 0 AC…

MediaWiki安装配置(Linux)【转】

阅读目录 2.1 本例子的安装环境如下&#xff1a;转自&#xff1a;http://blog.csdn.net/gao36951/article/details/43965527 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 目录(?)[-] 1MediaWiki简介 2MediaWiki安装21 本例子的安装环境如…

提高编程水平的一段必经之路,研读官方文档

刚才看了 论坛里 jinxfei 的十年总结&#xff08;14&#xff09;&#xff1a;从CS转向BS, 说实话&#xff0c;大部分内容我没有太仔细的看&#xff0c;不过如下的一段引起了我的注意&#xff1a; 真正让我心里有底的&#xff0c;还是在看了官方文档之后&#xff1a;http://str…

在Asp.net core返回PushStream

最近用asp.net core webapi实现了一个实时视频流的推送功能&#xff0c;在Asp.net中&#xff0c;这个是通过PushStreamContent来实现的。 基于对asp.net core的知识&#xff0c;随手写了一个&#xff08;要求控制器继承自Controller基类&#xff09; [HttpGet] public async Ta…

顺序栈的代码实现

栈是一种限定只在表尾进行插入或删除操作的线性表&#xff0c;栈也是线性表。表头称为栈的底部,表尾称为栈的顶部,表为空称为空栈。 栈又称为后进先出的线性表,栈也有两种表示:顺序栈与链式栈。顺序栈是利用一组地址连续的存储单元。依次存放从栈底到栈顶的数据元素。 #includ…

Linux5观察doc目录并截屏,linux截屏命令

linux系统我们有时需要用到截屏功能&#xff0c;下面由学习啦小编为大家整理了linux截屏命令的相关知识&#xff0c;希望对大家有帮助!linux截屏命令详解import检测&#xff1a;import --versionimprot安装&#xff1a;sudo apt-get install importimport常用命令&#xff1a;1…

eclipse+tomcat开发web程序

环境&#xff1a;windows 7Eclipse Java EE IDE for Web Developerstomcat 7.02 插件&#xff1a;tomcatPluginV321.zip 一.配置Tomcat插件 我们创建一个myplugins文件夹用于存放插件&#xff0c;myplugins位于D:/Program Files/J2EE目录下。eclipse安装路径为&#xff1a;D:/P…

LoadRunner参数包含逗号

loadrunner的参数以逗号区分&#xff0c; 如果参数本身包含逗号&#xff0c;则会报错 使用","将逗号包起来即可&#xff0c;如下图 转载于:https://www.cnblogs.com/cherrysu/p/8507649.html

软件创业见闻

今天应一位朋友的邀请&#xff0c;过去蹭了个饭吃&#xff0c;顺便坐了一个下午在聊着。这位老哥是一家软件公司的老板&#xff0c;原来是从硬件销售转型到做软件这一块。因为说到软件这一块&#xff0c;我就很想了解一下这位老哥对于2009年的大势是怎么看的&#xff0c;在2009…

如何采用设置标志的方法来区分循环队列的满和空

设立一个标志位,比如说是flag 最开始时队列为空,设flag0 当入队的时候让flag1 出队的时候flag0 然后再加上判断队头队尾指针是否重合 重合,且flag0,则为空 重合且flag1,则为满

linux内核定义的常用信号6,linux复习

(3)设定apache服务器的网页根目录&#xff1a;/home/htdocs(4)在此apache服务器上设定一个目录/home/htdocs/inside,且此目录只允许IP地址为192.168.1.5的主机访问(5)定义apache服务器以独立进程的方式运行2、某系统管理员需每天做一定的重复工作&#xff0c;请按照下列要求&am…

linux 脚本 整数 赋值,shell基础!!熟悉编程规范与变量

一、SHELL规范SHELL简单介绍Bash(/bin/bash)是目前大多数 Linux 版本采用的默认 Shell。Bash 的全称为 Bourne Again Shell&#xff0c;是最受欢迎的开源软件项目之一。SHELL脚本简单的来说&#xff0c;就是将平时使用的各种 Linux 命令按顺序保存到一个文本文件中&#xff0c;…

一维数组的定义方式

一维数组的定义方式 在C语言中使用数组必须先进行定义。 一维数组的定义方式为&#xff1a;类型说明符 数组名 [常量表达式];其中&#xff0c;类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数&#xff…

UIButton或UILabel加个下划线

UIButton ####Objective - C LXYHyperlinksButton.h interface LXYHyperlinksButton : UIButton {UIColor *lineColor; }-(void)setColor:(UIColor*)color; 复制代码LXYHyperlinksButton.m #import "LXYHyperlinksButton.h"implementation LXYHyperlinksButton- (id)…

android studio发布项目到github

点击file setting ,打开对话框&#xff0c;如下&#xff0c;判断git是否安装成功 选择GitHub&#xff0c;填写github地址及密码 发布项目&#xff1a; 转载于:https://www.cnblogs.com/haihai88/p/8514683.html

在不使用{}时,else执行到哪里结束

正常情况下,if-else语句使用{}.执行时也执行{}里面的所有语句&#xff0c;但是当语句比较简单时&#xff0c; 可以不使用{},而直接在if或else的后面写要执行的语句。 但是程序只会执行到if或else语句后的第一个“;”其余的程序不在if-else的程序范围内。

6个变态的C语言写的Hello World

下面的六个程序片段主要完成这些事情&#xff1a; 输出Hello, World混乱C语言的源代码 下面的所有程序都可以在GCC下编译通过&#xff0c;只有最后一个需要动用C的编译器g才能编程通过。 hello1.c #define _________ }#define ________ putchar#define _______ main#define …

linux系统pcb软件下载,开源PCB设计软件KiCad致力于下一个大版本的发布

KiCad仍然是PCB设计和其他功能的领先开源电子设计套件。KiCad在2018年取得了成功&#xff0c;System76甚至使用了该软件作为与Thelio台式计算机一起设计的子板PCB的一部分&#xff0c;但展望未来&#xff0c;开发人员仍在努力开发6.0版本。KiCad 6.0发布方式将采用重新设计的GT…