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 ...
随机推荐
- hdoj-1896 stones
Stones Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Sub ...
- B1789 Y型项链 贪心
想明白之后就是一道大水题,就是两两把最长公共前缀求出来,然后直接取最长的,然后就直接暴力算就行了... 题干: Description 欢乐岛上众多新奇的游乐项目让小可可他们玩的非常开心.现在他们正在 ...
- bzoj 4521 [ Cqoi 2016 ] 手机号码 —— 数位DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4521 数位DP,记录好多维状态: 写了半天,复杂得写不下去了,于是参考一下TJ... 练习简 ...
- java 关键字与保留字
Java 关键字列表 (依字母排序 共51组),所有的关键字都是小写,在MyEclipse中都会显示不同的颜色: abstract, assert,boolean, break, byte, case ...
- Python 2:str.title()(使字符串每个单词首字母大写)
name = "hello,world! hello,python!" print(name.title()) #单词首字母大写 运行结果将会是:Hello,World!Hello ...
- BZOJ 3876 有上下界的网络流
思路: 套用有上下界的网络流 就好了 (这算是裸题吧) 比如 有条 x->y 的边 流量上限为R 下限为L 那么du[x]-=L,du[y]+=L 流量上限变成R-L du[x]>0 ...
- 改善用户体验 Web前端优化策略总结
前端是庞大的,包括HTML.CSS.Javascript.Image.Flash等等各种各样的资源.前端优化是复杂的,针对方方面面的资源都有不同的方式.那么,前端优化的目的是什么? 1. 从用户角度而 ...
- 设置浏览器让js报错
ie-工具---internet选项--高级--“禁用脚本提示”前面那个框的勾去掉---“显示每个脚本错误的通知”给该项打勾 注意:此时是静态页面很容易提示出错误的行号,但是当js是动态页面的时候,浏 ...
- sql server 数据库优化--显示执行计划
刚开始用SQL Server的时候,我没有用显示执行计划来对查询进行分析.我曾经一直认为我递交的SQL查询都是最优的,而忽略了查询性能究竟如何,从而对“执行计划”重视不够.在我职业初期,我只要能获 ...
- 编译带加密功能的sqlite
以为编译wxsqlite是很难的事情,竟然这么顺利. 1.下载wxsqlite代码,解压(wxcode.sourceforge.net/components/wxsqlite3/) 2.下载Prema ...