Spring基础知识(二)

文章介绍了Spring框架中的核心概念,包括SpringBean的定义,Spring提供的XML、注解和JavaAPI三种配置方式,Bean的scope(单例、原型等),Bean的生命周期,以及Spring的自动装配机制和其局限性。此外,还讲解了基于注解的配置方式和如何启动注解装配。
摘要由CSDN通过智能技术生成

目录

1.Spring Bean是什么

2.Spring提供的配置方式

3.Spring bean中的scope

4.Spring bean容器的生命周期

5.Spring的内部bean

6.Spring装配是什么

7.自动装配模式

8.自动装配的局限性

9.基于注解配置容器

10.如何启动注解装配


1.Spring Bean是什么

Spring官方文档对于bean的解释为:

In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans. A bean is an object that is instantiated, assembled, and otherwise managed by a Spring IoC container.

翻译过来就是:在Spring中,形成你的应用程序的主干,并且被Spring IoC容器管理的对象叫做bean;一个bean就是被Spring IoC容器实例化、装配并且管理的对象。
 

2.Spring提供的配置方式

基于xml配置

        在xml文件中设置<bean>标签来配置

基于注解配置

        在类或方法上使用注解进行配置

基于Java API配置

        使用@Bean和@Configuration实现

3.Spring bean中的scope

Spring bean支持五种scope:

Singleton:Spring IoC仅有一个单实例

Prototype:每次请求都会产生一个新的实例

Request:每次Http请求都会产生一个新实例,该bean仅在当前Http请求内有效

Session:每次Http请求都会产生一个新的bean,该bean仅在当前Http session中有效

Global-session:仅在 全局portlet Session的生命周期范围内有效

4.Spring bean容器的生命周期

* 第一步:实例化

    * 通过反射/工厂模式

* 第二步:依赖注入:即为属性赋值

* 第三步:初始化:需要自定义init_method

* 第四步:销毁:需要自定义destroy_method

    * 要想销毁,需要使用configurable ApplicationContext才能调用close

    * configurableApplicationContext是ApplicationContext的子接口,其中扩展了刷新和关闭容器的方法
补充:在生命周期初始化前后,后置处理器会添加额外的操作;此时在ioc容器中配置后,会对每一个bean起作用(了解)

5.Spring的内部bean

        将一个bean A 作为另一个bean B 的属性时,该bean A 被成称为内部bean

6.Spring装配是什么

        装配即将bean在Spring容器中组合在一起

        前提:Spring容器知道需要什么bean以及容器如何使用依赖注入将bean绑定,同时装配bean

7.自动装配模式

        no:默认设置;表示没有自动装配

        byName:根据bean的名称注入对象的依赖项;匹配并装配属性和xml文件中相同名称定义的bean

        byType:根据类型注入对象依赖项;属性的类型和xml文件中的bean名称匹配则装配属性

详细自动装配模式见:

Spring的重点知识_perseveregz的博客-CSDN博客

 代码示例:

<!--
    基于xml进行自动装配的步骤:
    1.存在一个目标接口和目标实现类
        注意:调用类时需要实现set方法,因此基于xml的ioc管理bean是通过set方法进行依赖注入的
    2.在bean标签中的autowire属性进行设置
        a>byType:通过类型进行自动装配
        b>byName:通过属性名进行自动装配
-->
 
    <bean id="userController" class="com.gz.spring.controller.UserController" autowire="byType"></bean>
 
    <bean id="userService" class="com.gz.spring.service.impl.UserServiceImpl" autowire="byType"></bean>
 
    <bean id="userDao" class="com.gz.spring.dao.impl.UserDaoImpl"></bean>
 
</beans>

8.自动装配的局限性

        1.基本元数据类型(字符串、类)无法自动装配

        2.自动装配可能不太精确

9.基于注解配置容器

        将类标注为@Configuration,将类中的方法标注为@Bean,从而将类配置到到容器中

10.如何启动注解装配

        默认情况下,Spring容器中没有打开注解装配;需要配置<context:annotation-config/>

<beans>
    <context:annotation-config/>
    <!-- bean definitions go here -->
</beans>

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值