spring定义bean的方式有哪些

92 阅读1分钟

这里说下在spring容器中定义bean的几种方式

  1. 声明式 ①通过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 {
}
  1. 编程式 ① 通过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/