框架源码常用spring生命周期接口 1.initializingbean属性初始化接口是spring对象属性初始化后执行的接口,实现方法是afterPropertiesSet 2.factorybean工厂bean接口 3.applicationContextAware上下文接口,用来获取context
1.1什么时候使用 FactoryBean 既然Spring提供了使用注解和Xml配置的方式来创建bean,那为什么还提供这种方式呢?这就是Spring框架的强大之处,即想你之未所想。如果一个bean的创建过程涉及很多其他的bean和复杂的逻辑,用xml配置比较困难,可以考虑使用FactoryBean。 在Spring框架内部,有很多地方有FactoryBean的实现类,它们在很多应用如(Spring的AOP、ORM、事务管理)都有体现。
1、定义Student类,属性包括name,sex,age 。
public class Student {
private String name ;
private String sex ;
private int age = 10 ;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2、定义StudentFactoryBean实现FactoryBean接口
@Component
public class StudentFacotryBean implements FactoryBean{
@Override
public Student getObject() throws Exception {
Student student = new Student();
student.setName("nihaiopp");
return student;
}
@Override
public Class getObjectType() {
return Student.class;
}
@Override
public boolean isSingleton() {
return true;
}
}
实现FactoryBean接口需要重写三个方法:
getObject():需要返回的交给Spring管理的实例对象;
getObjectType():要返回对象的class对象;
isSingleton():是否是单例。