Spring容器三种注入类型
Spring注入有三种方式:
1、Set注入(使用最多)
2、构造器注入(使用不多)
3、接口注入(几乎不用)不做测试了
1、Set注入:所谓Set注入就是容器内部调用了bean的Set***方法,注意:xml文件中的名字一定要和对象中属性的名字对应
1
2
3
4
5
6
7
8
9
|
public class User { private Role role; //注意:配置文件中property中name的名字跟这个属性的名字一定要相同,不然会找不到 public Role getRole() { return role; } public void setRole(Role role) { this .role = role; } } |
配置文件配置方式
1
2
3
4
5
|
< bean id = "role" class = "com.fz.entity.Role" ></ bean > < bean name = "user" class = "com.fz.entity.User" scope = "prototype" > < property name = "role" ref = "role" ></ property > </ bean > |
2、构造器注入:
1
2
3
4
5
6
7
8
9
10
|
public class Role { private int id; private String roleName; public Role( int id, String roleName) { super (); this .id = id; this .roleName = roleName; } } |
构造方法注入需要传参数:1、使用类型传参数 2、使用索引传参数(建议)
1
2
3
4
5
6
7
8
9
10
11
|
< bean id = "role" class = "com.fz.entity.Role" > <!-- 1、使用类型给构造器传参数 --> <!-- <constructor-arg type="int" value="1"/> <constructor-arg type="java.lang.String" value="管理员"/> --> <!-- 2、使用索引给构造器传参数 --> < constructor-arg index = "0" value = "2" /> < constructor-arg index = "1" value = "超级管理员" /> <!-- 类型和索引可以结合使用,但是不能同时使用,也就是说构造器里有几个参数,这里也就有几个constructor-arg --> </ bean > |
注意:在这里<bean>标签的名称可以用id也可以用name
<bean id="user">和<bean name="user">结果都是一样的,用id和用name的唯一区别就是,name可以使用特殊字符,id则不行。
例如:
<bean name="user**" >这样写不会报错,通过getBean也可以获取到
<bean id="user**" >这样写就直接会报错
Spring容器三种注入类型的更多相关文章
- spring ioc三种注入方式
spring ioc三种注入方式 IOC ,全称 (Inverse Of Control) ,中文意思为:控制反转 什么是控制反转? 控制反转是一种将组件依赖关系的创建和管理置于程序外部的技术. 由容 ...
- Spring IOC三种注入方式(接口注入、setter注入、构造器注入)(摘抄)
IOC ,全称 (Inverse Of Control) ,中文意思为:控制反转, Spring 框架的核心基于控制反转原理. 什么是控制反转?控制反转是一种将组件依赖关系的创建和管理置于程序外部的技 ...
- Spring IOC 三种注入方式(构造器,setter,接口)
Spring的依赖注入有三种方式: 1,构造器注入 2,setter注入 3,接口注入 下面我给大家介绍一下这三种注入 1.构造器注入 构造器注入主要是依赖于构造方法去实现,构造方法可以是有参也可以是 ...
- Spring IOC 三种注入方式
1. 接口注入 2. setter注入 3. 构造器注入 对象与对象之间的关系可以简单的理解为对象之间的依赖关系:A类需要B类的一个实例来进行某些操作,比如在A类的方法中需要调用B类 ...
- Spring的三种注入方式(Setter、构造函数和自动注入)
一.Setter注入 这里我是希望在Student.java中调用Course.java中的内容. public class Course { public String name = "数 ...
- Spring的三种注入
在学习Spring的过程中,其中一个很重要的就是依赖注入DI,在此总结一下 注入方式有三种: 一.构造器注入 二.Set方式注入(重点) 三.扩展方式注入 构造器注入: a.默认使用无参构造函数创建对 ...
- spring的三种注入方式
接口注入(不推荐) 构造器注入(死的应用) getter,setter方式注入(比较常用) Type1 接口注入 我们常常借助接口来将调用者与实现者分离.如: public class ClassA ...
- Spring IOC以及三种注入方式
IOC是spring的最基础部分,也是核心模块,Spring的其他组件模块和应用开发都是以它为基础的.IOC把spring的面向接口编程和松耦合的思想体现的淋漓尽致. IOC概念 IOC(Invers ...
- Spring学习日记01_IOC_xml的三种注入方式
什么是IOC 控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理 使用IOC目的:为了耦合度降低 做入门案例就是IOC实现 IOC底层原理 xml解析 工厂模式 反射 原始方式 cla ...
随机推荐
- 使用selenium前学习HTML(3)— 属性
<!-- HTML标签可以拥有属性,属性提供元素的更多的信息: 属性总是以名称/值对的形式出现,比如:name="value". 属性总是在 HTML 元素的开始标签中规定. ...
- DevOps实践之持续集成Jenkins(最新版本测试)
一.安装Jenkins (1)下载并安装配置Java Development Kit 8 [root@localhost ~]# rpm -ivh jdk-8u161-linux-x64.rpm Pr ...
- Linux各目录缩写含义
Unix已经有35年历史了.许多人认为它开始于中世纪,这个中世纪是相对于计算机技术的产生和发展来说的.在过去的时间里,Unix和它的子分支Linux收集有许多的历史和一些完全古老的语言.在这篇技巧文章 ...
- 基于Node.js的爬虫工具 – Node Crawler
Node Crawler的目标是成为最好的node.js爬虫工具,目前已经停止维护. 我们来抓取光合新知博客tech栏目中的文章信息.访问http://dev.guanghe.tv/category/ ...
- JAVA基本常识及环境搭建
JAVA基本常识及环境搭建 常用dos命令行 dir 列出当前目录下的文件以及文件夹 md 创建目录 cd 进入指定目录 cd.. 退回到上一级目录 cd/ 退回到根目录 del 删除文件 删除单个文 ...
- 解读:Hadoop Archive
hdfs并不擅长存储小文件,因为每个文件最少一个block,每个block的元数据都会在NameNode中占用150byte内存.如果存储大量的小文件,它们会吃掉NameNode节点的大量内存.MR案 ...
- JAVA基础补漏--SET
HashSet: 1.无序集合. 2.底层是一个哈希表结构,查询速速很快. 哈希表==数据 + 链表/红黑树 特点:查询速度快. 存储数据到SET中: 1.计算数据的HASH值. 2.查看有没有相同H ...
- 源码编译nginx
[root@localhost local]# yum -y install pcre pcre-devel#解压nginx源码包[root@localhost local]# tar -zxvf / ...
- Flume在企业大数据仓库架构中位置及功能
Flume在企业大数据仓库架构中位置及功能 hadoop 数据仓库 flume 数据仓库架构 1.如下图所示,外部数据中,关系型数据库导入到HDFS用sqoop,由Nginx产生的文件实时监控用Flu ...
- Anaconda 环境中使用pip安装时候出现的一些问题
author:pprp date:18/8/12 --- 1. AttributeError: Module Pip has no attribute 'main' solution:降低pip的版本 ...