Spring 属性输入和实例化操作_总结
Spring 之 applicationContext.xml 配置
默认实例化(无参构造)
//被实例化对象
package cn.ibbidream.Bean; public class Bean1 {
//3.1.1 默认无参构造 public Bean1() {
System.out.println("无参构造启动了");
}
} //配置文件
<bean id="bean1" class="cn.ibbidream.Bean.Bean1">
<!--
默认无参构造器:
要求:必须有一个无参的构造器
-->
</bean> //测试代码
public void bean1(){
//加载配置文件
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); //初始化对象
Bean1 bean1 = (Bean1) applicationContext.getBean("bean1");
}
静态工厂实例化(不常用)
//被实例化对象
package cn.ibbidream.web; public class bean2 {
public bean2() {
System.out.println("Bean2 初始化");
}
} //创建静态工厂类
package cn.ibbidream.web; public class BeanFactory {
public static bean2 getBean2(){
System.out.println("静态方法执行了");
return new bean2();
}
} //xml 配置文件
<!-- 静态工厂方法实例化bean:
factory-method:通过该静态工厂中的方法创建bean
-->
<bean id="bean2" class="cn.ibbidream.web.BeanFactory" factory-method="getBean2"></bean> //测试代码
@Test
public void bean2(){
//加载配置文件
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); //初始化对象
bean2 bean2 = (bean2) applicationContext.getBean("bean2");
}
属性注入值-无参构造注入
<bean id="serviceHello" class="cn.ibbidream.quickstart.impl.HelloServiceimpl">
<!--
property:给对象注入属性
name:属性的名称
value:属性的值
-->
<property name="name" value="张三"></property>
</bean>
属性注入值-有参构造注入
<!-- 有参构造注入属性 -->
<bean id="car1" class="cn.ibbidream.Test.Car">
<!--
index:通过索引号注入,表示注入的是第几个属性
type:通过属性的类型注入
name:通过属性名称注入
value:属性的值
--> <constructor-arg index="0" value="比亚迪 秦100"></constructor-arg>
<constructor-arg index="1" value="220000"></constructor-arg>
</bean>
属性注入值-set注入
<!--
set方法注入普通属性
property:通过set方法注入属性
-->
<bean id="car2" class="cn.ibbidream.Test.Car2">
<!--
name:属性的名称,需要和set方法上的名称对应而不是成员变量的名称
value:属性值
-->
<property name="name" value="奥迪 A4"></property>
<property name="price" value="180000"></property>
</bean>
属性注入值-set注入对象
<!--
set方法注入一个对象
-->
<bean id="user1" class="cn.ibbidream.Test.User1">
<!--
name:属性名称
value:属性值
ref:引入一个bean作为属性进行注入,可以是id,也可以是name
-->
<property name="name" value="张三"></property>
<property name="car2" ref="car2"></property>
</bean>
属性注入值-p标签注入
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<!-- 注意一定要引入P标签 --> xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--
使用p名称空间进行属性的注入
p:name:name属性的值
p:price:price属性的值
-->
<bean id="car3" class="cn.ibbidream.Test.Car2" p:name="奔驰" p:price="800000"></bean>
<!--
使用p名称空间进行属性的注入
p:name:name属性的值
p:car2-ref:car2属性的引用
-->
<bean id="car4" class="cn.ibbidream.Test.User1" p:name="张三" p:car2-ref="car2"></bean> </beans>
Spring 属性输入和实例化操作_总结的更多相关文章
- python类内init外声明的属性与init内声明的对象属性的访问和操作区别
python类内init外声明的属性与init内声明的对象属性的访问和操作区别(面试题) 1.在ipython中输入以下代码,其输出会是什么? In [1]: class ClassOut: ...: ...
- Javascript Jquery 中的数组定义与操作_子木玲_新浪博客
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- JavaWeb_(Mybatis框架)输入和输出参数_五
系列博文: JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一 传送门 JavaWeb_(Mybatis框架)使用Mybatis对表进行增.删.改.查操作_ ...
- java Spring系列之 配置文件的操作 +Bean的生命周期+不同数据类型的注入简析+注入的原理详解+配置文件中不同标签体的使用方式
Spring系列之 配置文件的操作 写在文章前面: 本文带大家掌握Spring配置文件的基础操作以及带领大家理清依赖注入的概念,本文涉及内容广泛,如果各位读者耐心看完,应该会对自身有一个提升 Spri ...
- Spring中Bean的实例化
Spring中Bean的实例化 在介绍Bean的三种实例化的方式之前,我们首先需要介绍一下什么是Bean,以及Bean的配置方式. 如果 ...
- Spring学习笔记 6. 尚硅谷_佟刚_Spring_Bean 之间的关系
1,继承关系 首先从简单的代码来看,有一个Address类,配置文件有两个bean (1)Address类 package com.zsq; public class Address { privat ...
- libevent (一) socket属性设置与初始化操作
socket属性设置与初始化操作 libevent是一个事件触发的网络库,适用于windows.linux.bsd等多种平台,内部使用select.epoll.kqueue等系统调用管理事件机制.著名 ...
- Spring Boot(二):数据库操作
本文主要讲解如何通过spring boot来访问数据库,本文会演示三种方式来访问数据库,第一种是JdbcTemplate,第二种是JPA,第三种是Mybatis.之前已经提到过,本系列会以一个博客系统 ...
- 关于PHP面向对象中—类的定义与对象的实例化操作以及构造、析构函数的特殊用法
类的定义与对象的实例化操作 <?php //类里面的成员是属于对象的class Hero{ public $name;//成员变量 //成员属性(存在于强类型语言中) prot ...
随机推荐
- Android定时任务
前言 我们在平常的开发中可能会遇到一些需求,比如说,每日定时提醒,定时更新数据等等,反正就是周期性任务,碰到这类需求,我们就可以叫做定时任务.以前我们可以通过使用线程Handler来实现,现在既然是在 ...
- bzoj2303
并查集+数学 这道题网上好像有两种解法. 这位写的很可读:http://blog.csdn.net/unicornt_/article/details/51901225 然后看完大概就懂了做法,但是实 ...
- 0522 json
一.概念 json依赖于js和xml,是一种数据交换格式,json对比xml的生成和处理要更加方便.因此在许多领域,json正逐步取代xml的使用. 二.使用 1.在JS当中 json在javascr ...
- thinkphp data方法
data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,可能大家不太习惯用这个方法,今天来讲解下如何用好data方法. 用法 写操作 通常情况下我们都是通过create方法或者赋值 ...
- POJ 3230 DP
f[i][j]=max(f[i][j],f[i-1][k]-a[k][j]+b[i][j]) i->第i天 j-–>到第j个城市 #include <cstdio> #incl ...
- MySQL实现递归查询
DROP FUNCTION IF EXISTS queryChildrenCaseInfo;CREATE FUNCTION queryChildrenCaseInfo(cId INT)RETURNS ...
- RabbitMQ 官方NET教程(一)【介绍】
本教程假定RabbitMQ已在标准端口(5672)上的localhost上安装并运行.如果使用不同的主机,端口或凭据,连接设置将需要调整. RabbitMQ是一个消息代理:它接受并转发消息. 您可以将 ...
- sql学习--insert
insert的四种插入方式 第一种最简单的 into 和目标列的列表是可选的 intsert [into] tableA [(col1,col2)] values(val1,val2) 第二种 ins ...
- Serializable资料整理
1. 序列化 简单的说就是为了保存 内存中各种对象的状态(是实例变量,不是方法),并且可以把保存的对象读取出来. 虽然保存 object states的方法很多,但是Java提供了一种保存对象状态的机 ...
- 九九乘法表(for循环)
九九乘法表:<br /><script>for(var i=0;i<10;i++){ for(var j=1;j<=i;j++) { var a=j*i docum ...