一: 创建bean的方法:
1: 如果不采用构造注入:默认调用bean的无参构造函数,因此该类必须要提供无参构造函数,用无参构造函数用反射创建bean。
: 如果采用构造注入:则使用 <constructor-arg>配置一个构造函数。
2:用静态工厂方法创建bean: factory-method = "xxxxx"
// 要在bean内部定义一个静态工厂。//注意: 这里的class是工厂类 //静态工厂类(由静态方法创建bean) public class PersonServiceBeanFactory {
3: 工厂实例被创建:
public static PersonService createPersonService(){ return new PersonService(); } }
二:不含有无参构造函数的类,可以用反射实例化吗?
可以: 如下两种方法都可以,第二种就是调用有参数构造函数,但是要清楚构造函数的参数是什么。
// 调用newInstance方法创建Person类对象,
Classcls = Person.class; Person p = cls.newInstance(); System.out.println(p); // 使用构造器类创建Person类对象 Constructor con = cls.getConstructor(String.class, int.class); Person person = con.newInstance("lili", 12); System.out.println(person);