Spring Bean实例化的三种方式(在spring里面通过配置文件创建对象)

第一种  使用类的无参构造

<bean  id="user" class="com.qianchen.bean.User"></bean>

如果类中没有无参构造会出现异常 nosuchmethod

public class Testioc {

@Test

public void testUser(){

//加载spring配置文件  创建对象

ApplicationContext  context = new ClassPathXmlApplicationContext("bean1.xml");

//得到配置文件中的对象

User user = (User) context.getBean("user");

user.add();

扫描二维码关注公众号,回复: 2522018 查看本文章

System.out.println(user);

}

}

第二种  静态工厂

创建静态方法,返回类的对象

<!-- 使用静态工厂创建对象 -->

 <bean id="user2"  class="com.qianchen.bean.BeanFactory"   factory-method="getUser"></bean>

 public class BeanFactory {

//静态方法 返回user

public static User getUser(){

return new User();

}

}

public class Testioc {

@Test

public void testUser(){

//加载spring配置文件  创建对象

ApplicationContext  context = new ClassPathXmlApplicationContext("bean1.xml");

//得到配置文件中的对象

User user = (User) context.getBean("user2");

user.add();

System.out.println(user);

}

}

第三种  实例工厂

创建不是静态的方法,返回类的对象

<!-- 实例工厂创建对象 -->

 <!-- 非静态方法不能直接调用,首先创建工厂类对应的对象 -->

 <bean id="beanFactory"  class="com.qianchen.bean.BeanFactory"></bean>

 <bean id="user3"  factory-bean="beanFactory"  factory-method="getUser"></bean>

public class Testioc {

@Test

public void testUser(){

//加载spring配置文件  创建对象

ApplicationContext  context = new ClassPathXmlApplicationContext("bean1.xml");

//得到配置文件中的对象

User user = (User) context.getBean("user3");

user.add();

System.out.println(user);

}

}

备注:开发中主要用第一种方式。

猜你喜欢

转载自blog.csdn.net/qq_18119793/article/details/81324635