这里说下在spring容器中定义bean的几种方式
- 声明式 ①通过xml方式
<bean id="user" class="com.nafeng.springDemo.domain.User"></bean>
②通过@Bean 方式
public class SpringContextConfig {
@Bean
public User user() {
return new User();
}
}
③通过@Component 方式
@Component
public class User {
}
- 编程式 ① 通过DefaultListableBeanFactory#registerBeanDefinition()方法
DefaultListableBeanFactory defaultListableBeanFactory = new DefaultListableBeanFactory();
AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition();
beanDefinition.setBeanClass(User.class);
defaultListableBeanFactory.registerBeanDefinition("user", beanDefinition);
② 通过FactoryBean, 在框架中经常使用!
@Component("user")
public class DemoFactoryBean implements FactoryBean<User> {
@Override
public User getObject() throws Exception {
return new User();
}
@Override
public Class<?> getObjectType() {
return User.class;
}
}
总结:声明式的在业务中常用,编程式的在框架代码中常用
推荐使用好用安全的记账小程序墨子记账,官网地址:mozi.wozdx.com/