1、pom.xml依赖
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.6.RELEASE</version> </dependency>
2、实体类
import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor @AllArgsConstructor public class Person { private int id; private int age; private String name; }
3、实现
import com.it.vo.Person; import org.springframework.beans.factory.FactoryBean; public class PersonFactoryBean implements FactoryBean<Person> { @Override public Person getObject() throws Exception { return new Person(1, 23, "张三"); } @Override public Class<?> getObjectType() { return Person.class; } @Override public boolean isSingleton() { return true; } }
import com.it.service.PersonFactoryBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class PersonConfig { @Bean public PersonFactoryBean personFactoryBean() { return new PersonFactoryBean(); } }
4、测试
import com.it.config.PersonConfig; import com.it.vo.Person; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class PersonTest { public static void main(String [] args) { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(PersonConfig.class); Object personFactoryBean = applicationContext.getBean("personFactoryBean"); if (personFactoryBean instanceof Person) { Person person = (Person) personFactoryBean; System.out.println(person); } } }
//结果:Person(id=1, age=23, name=张三)