spring入门——3种注入方式

spring入门——3种注入方式,第1张

1. 创建 Test01 类,含一个基本数据类型的成员变量

2. 在 beans.xml 中配置

3. 测试类

针对自定义类型采用 ref 注入

创建一个 UserDao 类,String 类型的成员变量,并提供 get set 方法

3. 创建 UserService 类,创建一个成员变量 为 UserDao 类型,可以使用 set 或 构造注入

4. beans.xml 中配置注入

5. 测试

说明注入成功

在没有调用test01的情况下,也发生了注入,并创建了 test01对象

说明,只要加载了 bean.xml 核心配置文件,就会创建所有配置在文件中的 bean 对象   

6. 测试,是否所有的 bean 都是单例的

地址都一样,说明只要是来自于 spring 容器的 bean 对象,都是单例模式下创建的单例对象

只有一个对象,使用的都是同一个对象

1. Spring 容器管理的 bean 对象,必须提供无参构造,否则无法创建对象

2. 写一个 MenuService ,提供一个 String name 的属性

提供一个,有参构造函数,注意,不要写无参构造

3. 在核心配置文件中,配置这个 service 的bean 节点

4. 直接测试,发现报错

说明,没有无参构造时, spring 无法创建 MenuServcice 的 bean 对象

5. 所以,必须养成,给类提供一个无参构造的 习惯

6. 此时再测试,即可通过

感谢阅读全文。

未完。。。

我们将定义在 元素的 或 元素内部的 Bean,称为“内部 Bean”。

我们可以通过 setter 方式注入内部 Bean。此时,我们只需要在 标签下的 元素中,再次使用 元素对内部 Bean 进行定义,格式如下。

注意:内部 Bean 都是匿名的,不需要指定 id 和 name 的。即使制定了,IoC 容器也不会将它作为区分 Bean 的标识符,反而会无视 Bean 的 Scope 标签。因此内部 Bean 几乎总是匿名的,且总会随着外部的 Bean 创建。内部 Bean 是无法被注入到它所在的 Bean 以外的任何其他 Bean 的。

下面我们就通过一个实例,演示下如何使用 setter 方法注入内部 Bean。

1. 新建一个名为 my-spring-demo2 的 Java 项目。

2. 在 net.biancheng.c 包中,创建一个名为 Dept 的类,代码如下。

3. 在 net.biancheng.c 包下,创建一个名为 Employee 的类,代码如下。

4. 在 src 目录下创建 Spring 配置文件 Beans.xml,配置如下。

5. 在 net.biancheng.c 包下,创建一个名为 MainApp 的类,代码如下。

6. 执行 MainApp 中的 main() 方法,控制台输出如下。

我们可以通过构造方法注入内部 Bean。此时,我们只需要在 标签下的 元素中,再次使用 元素对内部 Bean 进行定义,格式如下。

下面我们就通过一个实例,演示下如何在通过构造方法的方式注入内部 Bean。

1. 新建一个名为 my-spring-demo3 的 Java 项目。

2. 在 net.biancheng.c 包中,创建一个名为 Dept 的类,代码如下。

3. 在 net.biancheng.c 包下,创建一个名为 Employee 的类,代码如下。

4. 在 src 目录下创建 Spring 配置文件 Beans.xml,配置如下。

5. 在 net.biancheng.c 包下,创建一个名为 MainApp 的类,代码如下。

6. 执行 MainApp 中的 main() 方法,控制台输出如下。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11866189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存