Spring:bean的配置

对于bean的配置中,主要会讲解bean基础配置,bean的别名配置,bean的作用范围配置(重点),这三部分内容:

bean基础配置

id与class配置

bean的name属性

bean的别名配置

bean作用范围scope配置

scope使用后续思考

介绍完scope属性以后,我们来思考几个问题:

  • 为什么bean默认为单例?
    • bean为单例的意思是在Spring的IOC容器中只会有该类的一个对象
    • bean对象只有一个就避免了对象的频繁创建与销毁,达到了bean对象的复用,性能高
  • bean在容器中是单例的,会不会产生线程安全问题?
    • 如果对象是有状态对象,即该对象有成员变量可以用来存储数据的,
      因为所有请求线程共用一个bean对象,所以会存在线程安全问题。
    • 如果对象是无状态对象,即该对象没有成员变量没有进行数据存储的,
      因方法中的局部变量在方法调用完成后会被销毁,所以不会存在线程安全问题。
  • 哪些bean对象适合交给容器进行管理?
    • 表现层对象
    • 业务层对象
    • 数据层对象
    • 工具对象
  • 哪些bean对象不适合交给容器进行管理?
    • 封装实例的域对象,因为会引发线程安全问题,所以不适合。

示例

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--name:为bean指定别名,别名可以有多个,使用逗号,分号,空格进行分隔-->
    <bean id="bookService" name="service service4 bookEbi" class="com.itheima.service.impl.BookServiceImpl">
        <property name="bookDao" ref="bookDao"/>
    </bean>

    <!--scope:为bean设置作用范围,可选值为单例singloton,非单例prototype-->
    <bean id="bookDao" name="dao" class="com.itheima.dao.impl.BookDaoImpl" scope="prototype"/>
</beans>

bean基础配置小结

关于bean的基础配置中,需要大家掌握以下属性:


[说明]:内容主要来源黑马程序员网上资源学习

相关推荐
学习CS的小白2 分钟前
跨域问题详解
vue.js·后端
小菜鸡ps6 分钟前
纯个人大白话--flowable多实例加签与减签
后端·工作流引擎
+VX:Fegn08956 分钟前
计算机毕业设计|基于springboot + vue作业管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
自由生长20249 分钟前
从流式系统中思考-C++生态和Java生态的区别
java·c++
王中阳Go18 分钟前
告别调包侠!2026年Go/Java程序员的AI架构师实战转型指南
后端·go
⑩-19 分钟前
SpringCloud-Feign&RestTemplate
后端·spring·spring cloud
培培说证21 分钟前
2026大专Java开发工程师,考什么证加分?
java·开发语言·python
我是谁的程序员22 分钟前
抓包工具有哪些?代理抓包、数据流抓包、拦截转发工具
后端
qq_3363139322 分钟前
java基础-方法引用
java·开发语言·算法
总是学不会.25 分钟前
【JUC编程】一、线程的基础概念
java·开发语言·jvm