spring基础知识

一、spring bean 容器的生命周期是什么样的?
spring bean 容器的生命周期流程如下:
1、Spring 容器根据配置中的bean 定义中实例化bean。
2、Spring 使用依赖注入填充所有属性,如bean 中所定义的配置。
3、如果bean 实现BeanNameAware 接口,则工厂通过传递bean 的ID 来调用setBeanName()。
4、如果bean 实现BeanFactoryAware 接口,工厂通过传递自身的实例来调用setBeanFactory()。
5、如果存在与bean 关联的任何BeanPostProcessors,则调用preProcessBeforeInitialization() 方法。
6、如果为bean 指定了init 方法( 的init-method 属性), 那么将调用它。
7、最后 如果存在与bean 关联的任何BeanPostProcessors,则将调用postProcessAfterInitialization() 方法。
8、如果bean 实现DisposableBean 接口,当spring 容器关闭时,会调用destory()。
9、如果为bean 指定了destroy 方法( 的destroy-method 属性),那么将调用它。

二、@Component, @Controller, @Repository,@Service 有何区别?
@Component :这将java 类标记为bean。它是任何Spring 管理组件的通用构造型。spring 的组件扫描机制现在可以将其拾取并将其拉入应用程序环境中。
@Controller :这将一个类标记为Spring Web MVC 控制器。标有它的Bean 会自动导入到IoC 容器中。
@Service :此注解是组件注解的特化。它不会对@Component 注解提供任何其他行为。您可以在服务层类中使用
@Service 而不是@Component,因为它以更好的方式指定了意图。
@Repository :这个注解是具有类似用途和功能的@Component 注解的特化。它为DAO 提供了额外的好处。它将DAO 导入IoC 容器,并使未经检查的异常有资格转换为Spring DataAccessException。

三、@Required 注解有什么用?
@Required 应用于bean 属性setter 方法。此注解仅指示必须在配置时使用bean 定义中的显式属性值或使用自动装配填充受影响的bean 属性。如果尚未填充受影响的bean 属性,则容器将抛出BeanInitializationException。

四、@Autowired 注解有什么用?
@Autowired 可以更准确地控制应该在何处以及如何进行自动装配。此注解用于在setter 方法,构造函数, 具有任意名称或多个参数的属性或方法上自动装配bean。默认情况下,它是类型驱动的注入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值