重拾Spingmvc之路---------《4》--------bean实例化的管理(xml方式)
程序员文章站
2022-05-23 15:05:31
...
一、bean实例化的方式:
在Spring里面可以通过配置文件的方式创建对象。
可以有三种方式实现::
1.使用类里面的无参构造实现(常用)
2.静态工厂的方式:创建静态的方法,返回类的对象:
3.实例工厂创建:创建不是静态的方法:
<bean id="user" class="ioc.User"/>
<--默认会找类User的无参构造-->
//写了有参构造:
public class User {
private String user;
public User(String user) {
this.user = user;
}
public void add(){
System.out.println("addioc========");
}
public static void main(String[] args) {
User u=new User("小谢");
u.add();
}
}
则会产生异常:
//静态工厂创建类对象
public class Bean2 {
public void add(){
System.out.println("===="+"add");
}
}
//静态工厂:
public class Bean2Factory {
//静态方法,返回Bean2对象
public static Bean2 getBeanFactory(){
return new Bean2();
}
}
<!-- 使用静态工厂创建对象 这里不是写bean2的全路径,而是写工厂的全路径 -->
<bean id="bean2" class="bean.Bean2Factory" factory-method="getBeanFactory"></bean>
@Test
public void testBean(){
//加载Spring配置文件,创建对象
ApplicationContext context=new ClassPathXmlApplicationContext("mapper/spring.xml");
Bean2 bean2=(Bean2) context.getBean("bean2");
System.out.println("======"+bean2);
bean2.add();
}
这样就实现用静态工厂创建对象了;
public class Bean3 {
public void add(){
System.out.println("===="+"add");
}
}
public class Bean3Factory {
//写一个普通的方法
public Bean3 getBean3(){
return new Bean3();
}
}
<!-- 使用实例工厂来创建 -->
<!-- 先要创建工厂的对象 -->
<bean id="bean3Factory" class="bean.Bean3Factory"/>
<bean id="bean3" factory-bean="bean3Factory" factory-method="getBean3"></bean>
@Test
public void testBean3(){
//加载Spring配置文件,创建对象
ApplicationContext context=new ClassPathXmlApplicationContext("mapper/spring.xml");
Bean3 bean3=(Bean3) context.getBean("bean3");
System.out.println("======"+bean3);
bean3.add();
}
上一篇: Spring事务管理
下一篇: JavaScript-面向对象与原型