spring中bean的生命周期_Spring 管理Bean的生命周期的几种方式

Spring 发展到现在,已经不是最开始简单的IOC或者 AOP容器了,而如何进行一个自定义Bean的声明和装配,也有了多种方式。简单整理如下:

922a0c043ba2fbd510ca2f466d4680b9.png

l Spring Framework 2.5 之前,大部分项目还是SSH组合

一般使用 XML 配置,无论是 Bean的声明(注册 | new)还是 Bean的装配一般都要进行对应的XML配置;对大项目来说冗长的XML实在难用。一个典型的例子如下:

  public class ExampleBean {    public void init() {      // do some initialization work      }    }

l Spring Framework 发展到 3之后,SpringMVC代替了Struts作为主角,这时引入了注解

@Component (@Controller 、@Repository 、@Service)

等注解帮助我们声明一个类, 并使用 @Autowired 进行自动装配。极大的解放了开发者。

同时,推荐基于 JSR-250的注解(@PostConstruct 、 @PreDestroy)进行生命周期管理

声明的例子:

@Component("testBean")public class TestBeanAsComponent {    @Autowired    private BeanA beanA;         @Autowired    private BeanB beanB;         public BeanA getBeanA() {        return beanA;    }         public BeanB getBeanB() {        return beanB;    }         @Bean    public C beanC() {        return new C();    }}

l 几乎没过多久,Spring支持了 @Configuration 和 @Bean注解,为声明Bean提供了更大的便利

举例:

@Configurationpublic class AppConfig { @Bean  public MessageBuilder messageBuilder() {return new MessageBuilder();  }}

@Component 和 @Bean的比较

两者各有优劣,@Bean 配合 @Configuration ,可以让一些第三方的类也同spring 的生命周期绑定起来。一些复杂的情况,也只能使用@Bean;

@Component,是将整个类作为一个bean的定义,由spring 扫包并管理

@Bean ,是方法级别,一个方法的返回即为一个Bean的定义,方法可以任意组合。

实际项目中,一般是两种混用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值