SSM spring Bean基础配置实例详解

 更新时间:2025年06月05日 10:28:10   作者:LB2112  
Bean是Spring框架中的一个基本单元,通常是一个普通的Java对象(POJO),但它被Spring容器管理,本文给大家介绍SSM spring Bean基础配置,感兴趣的朋友一起看看吧

在 Spring 框架中,Bean 是一个非常核心的概念。简单来说,Bean 是 Spring 容器管理的对象,它是由 Spring 容器实例化、配置和管理的。Spring 通过依赖注入(DI)将这些 Bean 组合在一起,形成一个完整的应用程序。

什么是 Bean?        

Bean 是 Spring 框架中的一个基本单元,通常是一个普通的 Java 对象(POJO),但它被 Spring 容器管理。Spring 容器负责 Bean 的生命周期,包括创建、初始化、依赖注入、销毁等。

Bean 的特点

实例化

  • Spring 容器负责创建 Bean 的实例。
  • 可以通过配置文件(XML)、注解(如 @Component@Service@Controller@Repository)或 Java 配置类来定义 Bean。

依赖注入

  • Spring 容器会自动注入 Bean 所需的依赖关系。
  • 依赖注入可以通过构造器注入(Constructor Injection)或 setter 方法注入(Setter Injection)来实现。

生命周期管理

  • Spring 容器管理 Bean 的生命周期,包括初始化、使用和销毁。
  • 可以通过实现 InitializingBean 接口或定义 @PostConstruct 注解的方法来定义初始化逻辑。
  • 可以通过实现 DisposableBean 接口或定义 @PreDestroy 注解的方法来定义销毁逻辑。

作用域

  • Bean 可以有不同的作用域,如 singleton(单例)、prototype(原型)、request(请求)、session(会话)等。
  • 默认情况下,Bean 的作用域是 singleton,即容器中只有一个实例。

基础配置

 
<?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 默认 singleton

运行如下代码

package com.itheima;
import com.itheima.dao.BookDao;
import com.itheima.service.BookService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class AppForScope {
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        BookDao bookDao1 = (BookDao) ctx.getBean("bookDao");
        BookDao bookDao2 = (BookDao) ctx.getBean("bookDao");
        System.out.println(bookDao1);
        System.out.println(bookDao2);
    }
}

输出如下:

这时应在bean对象配置里加入参数scope。

<?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>

到此这篇关于SSM spring Bean基础配置的文章就介绍到这了,更多相关SSM spring Bean配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中正则表达式的使用和详解(下)

    Java中正则表达式的使用和详解(下)

    这篇文章主要介绍了Java正则表达式的使用和详解(下)的相关资料,包括常用正则表达式和正则表达式语法,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-04-04
  • 解决myBatis generator逆向生成没有根据主键的select,update和delete问题

    解决myBatis generator逆向生成没有根据主键的select,update和delete问题

    这篇文章主要介绍了解决myBatis generator逆向生成没有根据主键的select,update和delete问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 公司一般使用的分布式RPC框架及其原理面试

    公司一般使用的分布式RPC框架及其原理面试

    这篇文章主要为大家介绍了公司一般使用的分布式RPC框架及其原理的面试问题解答,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • MyEclipse如何将项目的开发环境与服务器的JDK 版本保持一致

    MyEclipse如何将项目的开发环境与服务器的JDK 版本保持一致

    我们使用MyEclipse开发Java项目开发中,偶尔会遇到因项目开发环境不协调,导致这样那样的问题,在这里以把所有环境调整为JDK1.6 为例,给大家详细介绍MyEclipse如何将项目的开发环境与服务器的JDK 版本保持一致,需要的朋友参考下吧
    2024-04-04
  • Windows10下的超详细Java安装全过程

    Windows10下的超详细Java安装全过程

    文章主要介绍了如何在Windows 10系统下安装Java开发工具包(JDK),包括Java的下载与安装步骤以及Java环境的配置方法,最后通过命令行验证Java环境是否配置成功
    2025-01-01
  • Trace 在多线程异步体系下传递流程解析

    Trace 在多线程异步体系下传递流程解析

    这篇文章主要为大家介绍了Trace 在多线程异步体系下传递流程解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • 如何解决Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for X

    如何解决Mybatis--java.lang.IllegalArgumentException: Result Maps

    这两天因为项目需要整合spring、struts2、mybatis三大框架,但启动的时候总出现这个错误,困扰我好久,折腾了好久终于找到问题根源,下面小编给大家分享下问题所在及解决办法,一起看看吧
    2016-12-12
  • SpringBoot是如何使用SQL数据库的?

    SpringBoot是如何使用SQL数据库的?

    今天给大家带来的是关于Springboot的相关知识,文章围绕着SpringBoot是如何使用SQL数据库的展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • JavaCV与FFmpeg音视频流处理技巧总结大全

    JavaCV与FFmpeg音视频流处理技巧总结大全

    JavaCV是一个开源的Java接口,它为几个著名的计算机视觉库(如OpenCV、FFmpeg)提供了Java封装,这篇文章主要给大家介绍了关于JavaCV与FFmpeg音视频流处理技巧总结的相关资料,需要的朋友可以参考下
    2024-05-05
  • GC算法实现垃圾优先算法

    GC算法实现垃圾优先算法

    为什么会存在那么多的垃圾回收算法呢?我想这个问题的答案可能是没有任何一种内存回收算法是完美的,所以在针对不同的情景需求下,不同的内存回收算法有其独特的优势,所以最后就延续了多种回收算法
    2022-01-01

最新评论