IOC操作Bean管理XML方式(创建对象和set注入属性)
目录
1.什么是 Bean 管理:
(1)通过 Spring 创建对象
(2)通过 Spring 注入属性
2.IOC 操作 Bean 管理有两种方式:
(1)基于 xml 配置文件方式实现
(1.1)基于 xml 方式创建对象
(1.2)基于 xml 方式注入属性
(2)基于注解方式实现
1.什么是 Bean 管理:
Bean 管理指的是两个操作:
(1)通过 Spring 创建对象
(2)通过 Spring 注入属性
2.IOC 操作 Bean 管理有两种方式:
(1)基于 xml 配置文件方式实现
(1.1)基于 xml 方式创建对象
- 在项目中找到 xxx.xml 文件,通过使用<bean></bean> 标签,在标签内添加对应属性,就可以实现对象的创建
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd"><!--配置User对象创建-->
<bean id="user" class="com.lbj.spring5.User"></bean></beans>
- 【Bean标签基本属性的认识】
- * id 属性:唯一标识
在java 代码里,.getBean方法就是通过这个唯一的标识找到<bean>标签的id属性
- *class 属性:类的全路径
例如一个项目结构如下:
那么 User 这个类的全路径为:
com.lbj.spring5.User
*name 属性(少用,曾用于Struts1框架):与 id 属性的区别在于 name 属性内可以添加特殊符号
- 创建对象的时候,默认是执行无参数构造方法
一个类里面是有默认的一个公共无参构造方法,同样,Spring框架也是默认执行无参构造方法
例子:
在User类中添加如下代码:
package com.lbj.spring5;/*** Created by 14811 on 2020/11/25.*/
public class User {private String userName;// alt+insert 创建一个有参构造方法//此时如果不声明无参构造方法,意味着无参构造方法不存在public User(String userName) {this.userName = userName;}//创建一个普通方法等待调用public void add(){System.out.println("实现了spring");}
}
运行 TestSpring5 中的testAdd()测试方法,发现报错,原因:没有无参构造方法却调用了有参构造方法
(1.2)基于 xml 方式注入属性
DI(dependency injection):依赖注入
DI是IOC 中的一种具体实现
- 第一种注入方式:使用set方法进行注入
重新创建一个类专门演示我们在没学习Spring之前是怎样实现这个过程:
在com.lbj.spring5下创建一个 Book 类
Book类的代码如下:
package com.lbj.spring5;public class Book {//在类中创建属性:往book类中写入一个属性private String bname;//创建属性对应的set方法:set方法注入属性public void setBname(String bname) {this.bname = bname;}public static void main(String[] args) {Book book=new Book();book.setBname("红楼梦");}
}
- 接下来我们体验一下学习Spring 框架后
我们是怎样在Spring 配置文件【1】配置对象创建,【2】配置属性注入:
结构图:
第一步:在bean1.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 http://www.springframework.org/schema/beans/spring-beans.xsd"><!--配置Book对象创建--><bean id="book" class="com.lbj.spring5.Book"><!--使用property完成属性注入name:类里面的属性名称value:向属性注入的值--><property name="bname" value="红楼梦"></property></bean>
</beans>
第二步:在Book类中:
package com.lbj.spring5;public class Book {//在类中创建属性:往book类中写入一个属性private String bname;//创建属性对应的set方法:set方法注入属性public void setBname(String bname) {this.bname = bname;}public void testBook(){System.out.println(bname);}}
在测试类 TestSpring5中:
package com.lbj.spring5.testdemo;import com.lbj.spring5.Book;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestSpring5 {@Testpublic void testBook1(){//1.加载spring配置文件ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");//2.获取配置创建的对象,通过context得到对象Book book=context.getBean("book", Book.class);//3.做输出System.out.println(book);//4.通过book调用testBook()方法book.testBook();}
}
结果:
- 第二种注入方式:有参构造方法注入:
代码如下:
package com.lbj.spring5;
public class Book {//往book类中写入一个属性private String bname;//有参数的构造方法注入属性public Book(String bname) {this.bname = bname;}public static void main(String[] args) {Book book=new Book("红楼梦");}
}
(2)基于注解方式实现
详情在博客下一章
IOC操作Bean管理XML方式(创建对象和set注入属性)相关推荐
- IOC操作Bean管理XML方式(bean 的生命周期)
目录 IOC操作Bean管理XML方式(bean 的生命周期) 1.bean 的生命周期(在单例模式下的生命周期) (1)通过构造器创建 bean 的实例(执行类中无参构造方法去创建对象) (2)为 ...
- IOC操作Bean管理XML方式(bean的作用域)
目录 IOC操作Bean管理XML方式(bean的作用域) 1.在Spring 里面,设置创建 bean 实例是单实例还是多实例的方式 (1)在Spring 配置文件bean 标签里面有属性(scop ...
- IOC操作Bean管理XML方式(外部属性文件)
目录 IOC操作Bean管理XML方式(外部属性文件) 前情引入: 实验演示: 1.直接配置数据库信息 (1)配置德鲁伊连接池 (2)引入德鲁伊连接池jar包 (3)创建一个bean6.xml配置文件 ...
- IOC操作Bean管理XML方式(xml自动装配)
目录 IOC操作Bean管理XML方式(xml自动装配) 一.演示自动装配过程 (1)根据 属性名称 装配 步骤一: 步骤二: 步骤三: (2)根据 属性类型 装配 (2.1)根据 类型 自动装配产生 ...
- IOC操作Bean管理XML方式(FactoryBean)
目录 IOC操作Bean管理XML方式(FactoryBean) Spring 有两种类型的bean 第一种:是普通的 bean 第二种:工厂bean FactoryBean 第一步:创建类,让这个类 ...
- IOC操作Bean管理XML方式(注入集合类型属性)
目录 IOC操作Bean管理XML方式(注入集合类型属性) (1)首先进行环境的搭建和准备 (2)创建一个类:用来完成集合类型属性注入 (3)在Spring 配置文件进行配置 (4)编写一个测试类进行 ...
- IOC操作Bean管理XML方式(注入空值和特殊符号)
IOC操作Bean管理XML方式(注入空值和特殊符号) 目录 IOC操作Bean管理XML方式(注入空值和特殊符号) (1)通过null标签注入空值: 标签注入空值 (2)属性值中包含特殊符号: 方法 ...
- IOC操作Bean管理XML方式(有参构造注入属性)
IOC操作Bean管理XML方式 目录 有参构造注入属性 (1)步骤(创建类,定义属性,创建属性对应的有参构造方法): (2)步骤:在Spring 的xml配置文件中进行配置 (3)步骤:进行测试 结 ...
- IOC操作Bean管理XML方式(注入内部 bean 和 级联赋值)
目录 1.注入属性-内部 bean (1)一对多关系:部门和员工 (2)在实体类之间表示一对多关系 (3)在Spring 配置文件中进行配置 2.注入属性-级联赋值 (1)第一种写法类似外部bean注 ...
最新文章
- EntityFramework中实体类到表名的批量映射
- Java实现二维码QRCode的编码和解码
- qpushbutton设置居中_Qt QGridLayout自动将项目居中(移动)到中间。
- 服务部署如何做到高可用?这份“三级跳”秘籍送给你
- SAP HANA会代替BW吗?
- python基础入门:实现(无重复字符)字符串的全排列的两种方法
- 查询各个分区的数据量_分库、分表、分区的区别,傻傻分不清?
- 终于收到为广州.NET俱乐部活动准备的礼品了:)
- 论文浅尝 | 基于图注意力的常识对话生成
- 【HDOJ】4541 Ten Googol
- OpenERP 关于页码总页数
- 周末休息整理B站项目过于敏感,2h后删!
- 计算机地图制图的点状符号制作,计算机地图制图验手册汇编.doc
- 数理统计复习笔记四——区间估计
- “从0开始的FreeRTOS”系列教程第一讲
- 浅谈0-day漏洞的在野利用
- Java实现 N的阶乘
- 编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
- 【云原生 | Kubernetes 系列】----污点与容忍
- 西门子 延时 光控 声控开关 5TG0 211 -1CC1 提高 灵敏度 的方法