spring实例化javabean的三种方式分享
程序员文章站
2023-12-21 14:54:28
第一种:直接配置javabean文件
bean.xml复制代码 代码如下:
<bean id="sayhello" class="test.service.impl.hellobean"/>
persondao.java
package springdao;
public class persondao {
private string name;
private string dep;
public string getname() {
return name;
}
public void setname(string name) {
this.name = name;
}
public string getdep() {
return dep;
}
public void setdep(string dep) {
this.dep = dep;
}
public void test(){
system.out.println("hello,spring");
}
}
springtest.java
第二种:xml配置+factory类,使用静态工厂方法实例化
<bean id="productcreator" class="serviceimpl.productcreator" factory-method="createpersondao"></bean>
productcreator.java
package serviceimpl;
import springdao.persondao;
public class productcreator {
public static persondao createpersondao(){
return new persondao();
}
public persondao productacreate(){
return new persondao();
}
}
persondao,java同方法一中文件
<bean id="productcreator" class="serviceimpl.productcreator"/>
<bean id="productacreate" factory-bean="productcreator" factory-method="productacreate"/>
springtest.java
persondao pe=(persondao)ctx.getbean("productacreate");//通过配置实例工厂方法来实例化bean文件
pe.test();
productcreator.java和persondao.java文件同上
第一种:直接配置javabean文件
bean.xml
复制代码 代码如下:
<bean id="sayhello" class="test.service.impl.hellobean"/>
persondao.java
复制代码 代码如下:
package springdao;
public class persondao {
private string name;
private string dep;
public string getname() {
return name;
}
public void setname(string name) {
this.name = name;
}
public string getdep() {
return dep;
}
public void setdep(string dep) {
this.dep = dep;
}
public void test(){
system.out.println("hello,spring");
}
}
springtest.java
public static void main(string[] args) {
// todo auto-generated method stub
applicationcontext ctx = new classpathxmlapplicationcontext(new string[]{"beans.xml"});
persondao pe=(persondao)ctx.getbean("persondao");//通过配置javabean
}
第二种:xml配置+factory类,使用静态工厂方法实例化
bean.xml
复制代码 代码如下:
<bean id="productcreator" class="serviceimpl.productcreator" factory-method="createpersondao"></bean>
productcreator.java
复制代码 代码如下:
package serviceimpl;
import springdao.persondao;
public class productcreator {
public static persondao createpersondao(){
return new persondao();
}
public persondao productacreate(){
return new persondao();
}
}
springtest.java
persondao pe=(persondao)ctx.getbean("productcreator");
pe.test();
persondao,java同方法一中文件
@note:红色部分必须使用static关键字定义
3.xml配置+factory类,使用实例工厂方法实例化
bean.xml
复制代码 代码如下:
<bean id="productcreator" class="serviceimpl.productcreator"/>
<bean id="productacreate" factory-bean="productcreator" factory-method="productacreate"/>
springtest.java
复制代码 代码如下:
persondao pe=(persondao)ctx.getbean("productacreate");//通过配置实例工厂方法来实例化bean文件
pe.test();
productcreator.java和persondao.java文件同上