今天我想来说说如何通过xml配置来实例化bean,其实也很简单。
使用xml配置来实例化bean共分为三种方式,分别是普通构造方法创建、静态工厂创建、实例工厂创建,ok,那么接下来我们来分别看看这几种方式。
普通构造方法创建
这种创建方式使我们使用最多的一种创建方式,直接配置bean节点即可,比如我有一个user类,如下:
|
1
2
3
4
5
|
public class user {
public void add() {
system.out.println("add()---------");
}
}
|
然后通过简单配置一个bean节点就可以获取实例了,如下:
|
1
|
<bean class="org.sang.user" id="user"/>
|
ok,我们通过如下代码进行一个简单的测试:
|
1
2
3
|
applicationcontext context = new classpathxmlapplicationcontext("applicationcontext.xml");
user user = (user) context.getbean("user");
system.out.println(user);
|
运行输出结果如下:
静态工厂创建
除了通过普通的构造方法创建之外,我们也可以通过静态构造方法来创建一个bean的实例,假设我有一个类叫做user2,如下:
|
1
2
3
4
5
|
public class user2 {
public void add() {
system.out.println("add2()---------");
}
}
|
我给它创建一个静态工厂,如下:
|
1
2
3
4
5
|
public class user2factory {
public static user2 getinstance() {
return new user2();
}
}
|
该工厂中有一个静态方法,该静态方法返回一个user2的实例,在spring的配置文件中,我们看看如何生成user2的实例:
<bean id="user2" class="org.sang.user2factory" factory-method="getinstance"/>
还是bean节点,只是多了一个factory-method属性,该属性指明该类中的静态工厂方法名为getinstance,这样spring框架就知道调用哪个方法来获取user2的实例了,测试代码如下:
|
1
2
3
4
5
6
|
@test
public void test2() {
applicationcontext context = new classpathxmlapplicationcontext("applicationcontext.xml");
user2 user = (user2) context.getbean("user2");
user.add();
}
|
测试结果如下:
值得强调的是,这种方法并不常用。
实例工厂创建
小伙伴们看了静态工厂创建bean实例肯定都觉得很麻烦,事实上还有比静态工厂更麻烦的写法,那就是通过实例工厂来创建bean实例。实例工厂,顾名思义,就是我们工厂中的方法不是静态的,比如说,我有一个实体类叫做user3,如下:
|
1
2
3
4
5
|
public class user3 {
public void add() {
system.out.println("add3()---------");
}
}
|
然后我还有一个工厂方法,如下:
|
1
2
3
4
5
|
public class user3factory {
public user3 getuser3() {
return new user3();
}
}
|
小伙伴们看到,在user3factory类中有一个getuser3的方法,该方法返回一个user3类的实例,但是该方法不是静态的,那么我们在spring的配置文件中要进行怎样的配置才能获取user3的一个实例呢?如下:
|
1
2
|
<bean class="org.sang.user3factory" id="user3factory"/>
<bean id="user3" factory-bean="user3factory" factory-method="getuser3"/>
|
第一个bean用来获取user3factory的实例,第二个bean则根据user3factory的实例,然后指定factory-method,通过getuser3方法来获取user3的实例。
测试代码如下:
|
1
2
3
4
5
6
|
@test
public void test3() {
applicationcontext context = new classpathxmlapplicationcontext("applicationcontext.xml");
user3 user = (user3) context.getbean("user3");
user.add();
}
|
测试结果如下:
ok,以上就是bean实例化的三种方式,最最常用的是第一种。
本文案例github地址https://github.com/lenve/javaeetest/tree/master/test28-spring1
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。
原文链接:http://blog.csdn.net/u012702547/article/details/56021922
相关文章
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
-
2025-05-29 51
-
2025-05-27 51
-
2025-05-29 50
-
2025-06-04 98
-
2025-05-29 21




