Spring(二):初始值赋值
依赖注入
1.构造器注入
见spring简介最后一大点。
2.Set方式注入
依赖注入:Set注入
依赖:bean对象的创建依赖于容器。
注入:bean对象的所有属性,由容器注入。
bean ,里面属性的注入见下文xml
- package com.rzp.pojo;
-
- import java.util.*;
-
- public class Student {
- private String name;
- private Address address;
- private String[] books;
- private List<String> hobbys;
- private Map<String,String> card;
- private Set<String> games;
- private String www;
- private Properties info;
-
- @Override
- public String toString() {
- return "Student{" +
- "name='" + name + '\'' +
- ", address=" + address +
- ", books=" + Arrays.toString(books) +
- ", hobbys=" + hobbys +
- ", card=" + card +
- ", games=" + games +
- ", www='" + www + '\'' +
- ", info=" + info +
- '}';
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public Address getAddress() {
- return address;
- }
-
- public void setAddress(Address address) {
- this.address = address;
- }
-
- public String[] getBooks() {
- return books;
- }
-
- public void setBooks(String[] books) {
- this.books = books;
- }
-
- public List<String> getHobbys() {
- return hobbys;
- }
-
- public void setHobbys(List<String> hobbys) {
- this.hobbys = hobbys;
- }
-
- public Map<String, String> getCard() {
- return card;
- }
-
- public void setCard(Map<String, String> card) {
- this.card = card;
- }
-
- public Set<String> getGames() {
- return games;
- }
-
- public void setGames(Set<String> games) {
- this.games = games;
- }
-
- public String getWww() {
- return www;
- }
-
- public void setWww(String www) {
- this.www = www;
- }
-
- public Properties getInfo() {
- return info;
- }
-
- public void setInfo(Properties info) {
- this.info = info;
- }
- }
-
xml
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- https://www.springframework.org/schema/beans/spring-beans.xsd">
-
- <bean id="address" class="com.rzp.pojo.Address"/>
- <bean id="student" class="com.rzp.pojo.Student">
- <!--普通值注入-->
- <property name="name" value="rzp"/>
- <!--也可以把value写在两个标签中间
- <property name="name">
- <value>rzp</value>
- </property>-->
-
-
- <!--bean注入-->
- <property name="address" ref="address"/>
- <!--数组注入-->
- <property name="books">
- <array>
- <value>红楼梦</value>
- <value>西游记</value>
- <value>水浒传</value>
- <value>三国演义</value>
- </array>
- </property>
-
- <!--List-->
- <property name="hobbys">
- <list>
- <value>听歌</value>
- <value>代码</value>
- </list>
- </property>
-
- <!--Map-->
- <property name="card">
- <map>
- <entry key="学生卡" value="0010"/>
- <entry key="校园卡" value="0012110"/>
- </map>
- </property>
-
- <!--Set-->
- <property name="games">
- <set>
- <value>MHW</value>
- <value>DMC</value>
- </set>
- </property>
- <!--null-->
- <property name="www">
- <null/>
- </property>
-
- <!--Properties-->
- <property name="info">
- <props>
- <prop key="kclassname">1班</prop>
- <prop key="name">rzp</prop>
- </props>
- </property>
- </bean>
-
- </beans>
3.拓展方式注入
c命名空间和p命名空间:
要在beans标签中加入:
- xmlns:p="http://www.springframework.org/schema/p"
- xmlns:c="http://www.springframework.org/schema/c"
- <?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:p="http://www.springframework.org/schema/p"
- xmlns:c="http://www.springframework.org/schema/c"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- https://www.springframework.org/schema/beans/spring-beans.xsd">
-
- <!--p命名空间,参数注入-->
- <bean id="user" class="com.rzp.pojo.User" p:name="rzp" p:age="18"/>
- <!--c命名空间,构造器注入-->
- <bean id="user2" class="com.rzp.pojo.User" c:name="rzp1" c:age="1"/>
-
-
- </beans>
-
p命名空间就是对参数注入。
c命名空间就是使用构造器注入,必须要有构造器。
Spring(二):初始值赋值的更多相关文章
- LongAccumulator类的BUG——reset方法并不能保证初始值正确赋值
LongAccumulator.reset方法并不能重置重置LongAccumulator的identity:初始值正确,使其恢复原来的初始值.当初始值为0是不会发生这个问题,而当我们设置初始值如1时 ...
- 你好,C++(11)如何用string数据类型表示一串文字?根据初始值自动推断数据类型的auto关键字(C++ 11)
3.5.2 字符串类型 使用char类型的变量我们可以表示单个字符,那么,我们又该如何表示拥有多个字符的字符串呢? 我们注意到,一个字符串是由多个字符串连起来形成的.很自然地,一种最简单直接的方法就 ...
- [转载]vs2012中使用Spring.NET报错:Spring.Context.Support.ContextRegistry 的类型初始值设定项引发异常
学习使用Spring.NET中的时候,写了一个Demo,在运行时报了一个错误:Spring.Context.Support.ContextRegistry 的类型初始值设定项引发异常. 重新整理思绪, ...
- C#会对于未赋值的变量/成员变量,给予一个初始值吗?
如果我有程序如下: C# code ? 1 2 3 4 5 6 7 public class My { public bool b; public ...
- Java未赋值变量的默认初始值
在 Java 程序中,任何变量都必须经初始化后才能被使用.当一个对象被创建时,实例变量在分配内存空间时按程序员指定的初始化值赋值,否则系统将按下列默认值进行初始化: 数据类型 初始值 byte 0 s ...
- 简单模拟IOC容器:为添加了@Autowired的属性赋值(初始值)
创建@Autowired注解 package com.zzj.test; import java.lang.annotation.ElementType; import java.lang.annot ...
- (二)用控制器controller给模型数据赋初始值
之前博客,非常easy的就实现了模型数据和页面显示的自己主动绑定.如今我们使用控制器,给模型赋初始值. 假设使用jquery来实现变量赋初值,须要在页面载入完毕后运行$("#target&q ...
- java 八种基本数据类型之初始值、取值范围、对应的封装类
CreateTime--2017年12月6日10:03:53 Author:Marydon 一.java数据类型之基本数据类型 (二)八种基本数据类型的特征 import java.math.Bi ...
- C#3.0新特性:隐式类型、扩展方法、自动实现属性,对象/集合初始值设定、匿名类型、Lambda,Linq,表达式树、可选参数与命名参数
一.隐式类型var 从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型var.隐式类型可以替代任何类型,编译器自动推断类型. 1.var类型的局部变量必须赋予初始值,包括匿名 ...
随机推荐
- css中:如何让一个图片(不知道宽高,宽高可能比父元素div大),在父元素div内部水平垂直居中,并且不溢出父元素div,且图片不拉伸变形(可等比例缩小)?
欢迎进入:http://www.jscwwd.com/article/list/%E5%85%A8%E9%83%A8 效果图: 不管父元素的宽高怎么变化,图片都是水平垂直居中的,并且不溢出父元素. 注 ...
- vue 父子组件 基础应用scrollball v-model sync
# 组件之间通信 可以通过 v-model 子组件可以通过 改变数据来改变父组件的数组 * v-model 子组件需要接受value属性,需要出发this.$emit("input&qu ...
- 聊聊count(*)
count(*) 的实现方式 MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高 InnoDB 引擎就麻烦了,它执行 count(*) 的时候 ...
- 五分钟了解Consul
Hi,大家好,我叫consul,翻译成中文叫做“领事”,其实我更喜欢叫自己为中介,因为我觉得自己做的事情和房产中介非常像.比如说想要卖房的房东到我这边登记,我将房屋信息登录到我的表格中(服务注册),有 ...
- kerberos系列之kerberos安装
最近搞了一下kerberos,准备写一个系列,介绍kerberos的安装,和常用组件kerberos配置,今天进入第一篇:kerberOS安装 具体kerberos是什么东西,大家可以百度查一下,这里 ...
- asp.net core 3.1 引用的元包dll版本兼容性问题解决方案
自从.netcore 3.1出来后,大家都想立马升级到最新版本.我也是如此,微软也对.netcore 3.1的官方组件不断升级,几乎每隔几天就会有部分元包可以升级.每次打开Nuget包管理器,“更新” ...
- 数据库表结构查询SQL
今天给大家送上两个SQL查询的方法,也许在项目中你都用过,但是,没关系,仅仅记录下,以便后面不用去查找.针对与经常写SQL的同行来说,应该是非常简单的. 查询表结构数据 SELECT t.COLUMN ...
- Mol Cell Proteomics. | Mapping Spatio-temporal Microproteomics Landscape in Experimental Model of Traumatic Brain Injury Unveils a link to Parkinson’s Disease
期刊:Molecular & Cellular Proteomics 发表时间:June 16, 2019 通讯作者:Michel Salzet,Isabelle Fournier 一. 概 ...
- MySQL数据备份与恢复(二) -- xtrabackup工具
上一篇介绍了逻辑备份工具mysqldump,本文将通过应用更为普遍的物理备份工具xtrabackup来演示数据备份及恢复的第二篇内容. 1. xtrabackup 工具的安装 1.1 安装依赖包 ...
- Python 趣题
如何优雅判断list为空 list_temp = [] if list_temp: # 存在值即为真 else: # list_temp是空的 在Python中,False,0,'',[],{},() ...