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 ...
随机推荐
- 83.个人信息维护页面 Extjs 页面
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" ...
- 第1课 Git、谁与争锋
1-1 安装和使用Git http://git-scm.com/downloads Git的指令模式,才能够清楚地了解Git的工作细节.最后还会介绍Git Server的架设和管理,让读者能够熟练使 ...
- mysql如何查询最新插入的数据
在MySQL中,使用auto_increment类型的id字段作为表的主键,并用它作为其他表的外键,形成“主从表结构”,这是数据库设计中常见的用法.但是在具体生成id的时候,我们的操作顺序一般是:先在 ...
- 2015 多校赛 第二场 1006 (hdu 5305)
Problem Description There are n people and m pairs of friends. For every pair of friends, they can c ...
- HTML学习笔记——DOCTYPE和DTD,标准模式和兼容模式
主要涉及知识点: HTML与XHTML HTML与XHTML的区别 DOCTYPE与DTD的概念 DTD的分类以及DOCTYPE的声明方式 标准模式(Standard Mode)和兼容模式(Quirc ...
- (转)JavaScript深入之从原型到原型链
构造函数创建对象 我们先使用构造函数创建一个对象: function Person() { } var person = new Person(); person.name = 'Kevin'; co ...
- Android开发圆形ImageView实现
效果图如下 1.自定义属性,在value文件夹下新建attrs文件,声明如下属性 <declare-styleable name="CircleImageView"> ...
- three.js 流程图
用Axure做了个模型图: 第一步: Scene --模型.灯光.特效 第二步: Camera --视角 第三步: Renderer -- 渲染输出 第四步: render --渲染 ...
- 复习java第五天(枚举、Annotation(注释) 概述)
一.枚举 传统的方式: •在某些情况下,一个类的对象是有限而且固定的.例如季节类,只能有 4 个对象 •手动实现枚举类: —private 修饰构造器. —属性使用 private final 修饰. ...
- Caffe: Vs13添加CUDA支持
1. 右键工程 点击:Building Dependency 右击:Build Customizations 点击选项:CUDA 7.5 2.添加C++依赖: cudart.lib kernel32 ...