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)基于注解方式实现

 

详情在博客下一章

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c# 结构体 4字节对齐_【专题4:平时遇到的问题】 之 【3.由结构体字节对齐引发的通信故障】...

希望本是无所谓有&#xff0c;无所谓无的&#xff0c;这正如脚下的路&#xff0c;其实地上本没有路&#xff0c;走的人多了&#xff0c;也便成了路....原创不易&#xff0c;文章会持续更新&#xff0c;感谢您的关注1.问题由来MCU给上位机发送的一帧数据中&#xff0c;总是多一个…

android 全局hook_【Hook】实现无清单启动Activity

引子Hook技术在android开发领域算是一项黑科技&#xff0c;那么一个新的概念进入视线&#xff0c;我们最关心的3个问题就是&#xff0c;它是什么&#xff0c;有什么用&#xff0c;怎么用本系列将由浅入深 手把手讲解这三大问题。本文是第三篇&#xff0c; 高级篇。前面两篇Hook…

IOC操作Bean管理XML方式(有参构造注入属性)

IOC操作Bean管理XML方式 目录 有参构造注入属性 &#xff08;1&#xff09;步骤&#xff08;创建类&#xff0c;定义属性&#xff0c;创建属性对应的有参构造方法&#xff09;&#xff1a; &#xff08;2&#xff09;步骤&#xff1a;在Spring 的xml配置文件中进行配置 &a…

python3调用java_Python3-JPype调用Java代码

原博文 2019-12-31 10:54 − ## JPype调用Java代码 ### 安装所需要的库 python pip install JPype1-py3### 准备一个jar包 #### java工程目录 ![](https://img2018.cnblogs.com/blog/1895590/201912/18955... 相关推荐 2019-12-06 14:59 − 近期在Python中使用java语言的时候有…

IOC操作Bean管理XML方式(P名称空间注入)

P名称空间注入&#xff08;用的不多&#xff0c;但是也是一种方式&#xff09; 目录 P名称空间注入&#xff08;用的不多&#xff0c;但是也是一种方式&#xff09; &#xff08;1&#xff09;使用P名称空间注入&#xff0c;可以简化基于xml 配置方式 第一步&#xff1a;添…

textview 结束后释放_等待按键释放,你的代码如何写?

今天&#xff0c;还是一个问题&#xff0c;在QQ群(300384358)里有小伙伴一直在问一个问题&#xff0c;如上图。一个按键控制电机的转动&#xff0c;按键按下后&#xff0c;电机转动&#xff0c;按键释放&#xff0c;电机停止&#xff0c;再加一个按键按下时长的检测&#xff0c…

IOC操作Bean管理XML方式(注入空值和特殊符号)

IOC操作Bean管理XML方式&#xff08;注入空值和特殊符号&#xff09; 目录 IOC操作Bean管理XML方式&#xff08;注入空值和特殊符号&#xff09; &#xff08;1&#xff09;通过null标签注入空值&#xff1a; 标签注入空值 &#xff08;2&#xff09;属性值中包含特殊符号…

麦克风增强软件_唱吧麦克风不会唱歌用它唱都好听,《向往的生活》同款麦克风...

当代年轻人的快乐&#xff0c;其实很简单。被工作狠狠虐了千百遍后&#xff0c;只要到KTV吼几嗓子放松一下&#xff0c;就又和这个世界和解了。唱歌&#xff0c;真的是一件解压又治愈的事情。就像《向往的生活》里&#xff0c;何炅、黄磊和其他嘉宾&#xff0c;饭后娱乐就是唱歌…

bert 多义词_广告行业中那些趣事系列15:超实用的基于BERT美团搜索实践

摘要&#xff1a;本篇主要学习和分析BERT在美团搜索排序中的项目实践。首先介绍了业务背景&#xff0c;主要对比了美团搜索业务场景和我们的应用场景&#xff1b;然后讲了下计算query和doc相关性的方法&#xff0c;主要包括计算字面相关性和计算语义相关性&#xff0c;重点介绍…

vba 跳到下一个循环_遍历工作薄和工作表(For Each循环的利用)

今日的内容是“VBA之EXCEL应用”的第三章“工作簿(Workbook)和工作表(Worksheet)对象(Object)”中第三节“遍历工作薄和工作表(For Each循环的利用)”。“VBA之EXCEL应用”这套教程从简单的录制宏的讲解&#xff0c;一直到窗体的搭建&#xff0c;内容丰富&#xff0c;案例众多。…

IOC操作Bean管理XML方式(注入外部bean)

目录 1..注入属性-外部 bean &#xff08;1&#xff09;创建两个类 service 类和 dao 类【分别创建两个包存放两个类】 &#xff08;2&#xff09;在 service 调用 dao 里面的方法 &#xff08;3&#xff09;&#xff08;后来做法&#xff09;在Spring 配置文件中进行配置 1…

数据增强 transform_深度学习-Pytorch框架学习之数据处理篇

前言数据是深度学习的核心&#xff0c;大部分论文里都会提到data-driven这个词&#xff0c;也就是数据驱动的意思。基本的模型搭建完成后&#xff0c;如何处理数据&#xff0c;如何将数据送给网络&#xff0c;如何做数据增强等等&#xff0c;对于提高网络的性能都十分重要&…

IOC操作Bean管理XML方式(注入内部 bean 和 级联赋值)

目录 1.注入属性-内部 bean &#xff08;1&#xff09;一对多关系&#xff1a;部门和员工 &#xff08;2&#xff09;在实体类之间表示一对多关系 &#xff08;3&#xff09;在Spring 配置文件中进行配置 2.注入属性-级联赋值 &#xff08;1&#xff09;第一种写法类似外部…

单处理机系统的进程调度动态优先_操作系统复习笔记(王道)C2.1

进程与线程一、进程特征和概念前提&#xff1a;允许多个程序并发执行。1.概念PCB(process control block)进程控制块&#xff0c;系统利用 PCB 来描述进程的基本情况和运行状 态&#xff0c;进而控制和管理进程。PCB是进程存在的唯一标志。进程是进程实体的运行过程&#xff0c…

非线性动力学_非线性科学中的现代数学方法:综述

Ch0【引言】本文是作者的一个总结&#xff0c;力图在极度繁杂的数理知识体系中摘选出那些最广泛应用的核心工具及思想。本文主要关注的问题都是非线性的、动态的。具体地讲&#xff0c;主要涉及的是&#xff1a;微分动力系统、泛函的最优化初步&#xff08;但不涉及最优控制及微…

IOC操作Bean管理XML方式(注入集合类型属性)

目录 IOC操作Bean管理XML方式&#xff08;注入集合类型属性&#xff09; &#xff08;1&#xff09;首先进行环境的搭建和准备 &#xff08;2&#xff09;创建一个类&#xff1a;用来完成集合类型属性注入 &#xff08;3&#xff09;在Spring 配置文件进行配置 &#xff0…

matlab 最小二乘法拟合_高中数学:最小二乘法与线性回归方程

1、怎样的拟合直线最好&#xff1f;——与所有点都近&#xff0c;即与所有点的距离之和最小。最小二乘法可以帮助我们在进行线性拟合时&#xff0c;如何选择“最好”的直线。要注意的是&#xff0c;利用实验数据进行拟合时&#xff0c;所用数据的多少直接影响拟合的结果&#x…

预充电电路工作原理_LED触摸调光台灯控制电路板的工作原理

一款美观实用的台灯堪称书桌上的艺术品&#xff0c;看着书桌上精致美观的台灯&#xff0c;可能还会增加一些阅读的乐趣吧。那么触摸开关台灯的工作原理到底是怎么的呢?两按键触摸调光电路板工作原理:一、两按键触摸调光电路板&#xff0c;触摸芯片工作电压2.4-5.5V。输入也可用…

IOC操作Bean管理XML方式(FactoryBean)

目录 IOC操作Bean管理XML方式&#xff08;FactoryBean&#xff09; Spring 有两种类型的bean 第一种&#xff1a;是普通的 bean 第二种&#xff1a;工厂bean FactoryBean 第一步&#xff1a;创建类&#xff0c;让这个类作为工厂bean 第二步&#xff1a;在类中实现接口里面…

python中自定义类中的self_Python类和构造方法

1.面向对象介绍描述&#xff1a;是函数的一个变种,在Python中,有函数式编程和面向对象编程,java和C#之类只能把函数写到类里,没有函数式编程,所以只有面向对象,所以在Python中有了选择,可能就变得有点麻烦,但是在Python里,函数式编程是可以完成所有的功能的,人都是想把事情变得…