ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 无参构造器方式(建议使用这种方式) 就是前面使用的方式. ## 静态工厂方式 条件:需要有一个工厂类,在这个工厂类中还需要有一个静态方法. 配置文件: ~~~ <!--指定id,指定工厂类,指定方法--> <bean id="user" class="com.like.domain.BeanFactory" factory-method="createUser"/> ~~~ 工厂: ~~~ package com.like.domain; public class BeanFactory { public static User createUser() { return new User(); } } ~~~ 调用: ~~~ public class main { public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); User user1 = (User) applicationContext.getBean("user"); User user2 = (User) applicationContext.getBean("user"); System.out.println(user1); //这两个对象是同一个,因为是单例工厂获得到的对象. System.out.println(user2); } } ~~~ ## 实例工厂方式 ~~~ <!--指定id,指定工厂类.先有一个工厂--> <bean id="BeanFactory" class="com.like.domain.BeanFactory"/> <!--再指定工厂创建user对象--> <bean id="user" factory-bean="BeanFactory" factory-method="createUser"/> ~~~ ~~~ public class BeanFactory { public User createUser() { return new User(); } } ~~~ ~~~ public class main { public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); User user1 = (User) applicationContext.getBean("user"); User user2 = (User) applicationContext.getBean("user"); System.out.println(user1); System.out.println(user2); } } ~~~