当前位置: 首页 > news >正文

SSM spring Bean基础配置

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

什么是 Bean?        

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

Bean 的特点

  1. 实例化

    • Spring 容器负责创建 Bean 的实例。

    • 可以通过配置文件(XML)、注解(如 @Component@Service@Controller@Repository)或 Java 配置类来定义 Bean。

  2. 依赖注入

    • Spring 容器会自动注入 Bean 所需的依赖关系。

    • 依赖注入可以通过构造器注入(Constructor Injection)或 setter 方法注入(Setter Injection)来实现。

  3. 生命周期管理

    • Spring 容器管理 Bean 的生命周期,包括初始化、使用和销毁。

    • 可以通过实现 InitializingBean 接口或定义 @PostConstruct 注解的方法来定义初始化逻辑。

    • 可以通过实现 DisposableBean 接口或定义 @PreDestroy 注解的方法来定义销毁逻辑。

  4. 作用域

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

http://www.lqws.cn/news/119737.html

相关文章:

  • C++课设:银行账户管理系统
  • SAP学习笔记 - 开发22 - 前端Fiori开发 数据绑定(Jason),Data Types(数据类型)
  • VSCode 工作区配置文件通用模板(CMake + Ninja + MinGW/GCC 编译器 的 C++ 或 Qt 项目)
  • 【免费数据】1980-2022年中国2384个站点的水质数据
  • Monorepo架构: 项目管理模式对比与考量
  • 学习笔记(23): 机器学习之数据预处理Pandas和转换成张量格式[1]
  • Java设计模式深度解析:策略模式的核心原理与实战应用
  • 网页前端开发(基础进阶3--Vue)
  • 机器学习简介
  • Asp.Net Core基于StackExchange Redis 缓存
  • Flutter、React Native 项目如何搞定 iOS 上架?从构建 IPA 到上传 App Store 的实战流程全解析
  • 【unity游戏开发入门到精通——通用篇】从零掌握UnityWebRequest:文件下载、表单提交、超时处理、断点续传
  • 【发布实录】云原生+AI,助力企业全球化业务创新
  • [特殊字符] 在 React Native 项目中封装 App Icon 一键设置命令(支持参数与默认路径)
  • go语言学习 第5章:函数
  • 电气架构/域控制器/中央计算平台技术论坛
  • React Native开发鸿蒙运动健康类应用的项目实践记录
  • 应用层协议:HTTP
  • 结构性设计模式之Facade(外观)设计模式
  • iOS UIActivityViewController 组头处理
  • Java设计模式:责任链模式
  • 2025年- H69-Lc177--78.子集(回溯,组合)--Java版
  • Spring Boot微服务架构(十一):独立部署是否抛弃了架构优势?
  • 【p2p、分布式,区块链笔记 MESH】 论文阅读 Thread/OpenThread Low-Power Wireless Multihop Net
  • iTunes 无法备份 iPhone:10 种解决方法
  • Rust 学习笔记:Box<T>
  • [蓝桥杯]密码脱落
  • 常见排序算法详解与C语言实现
  • qt+vs Generated File下的moc_和ui_文件丢失导致 error LNK2001
  • JavaWeb:前端工程化-TS(TypeScript)