spring 的 bean 配置的几种方式

Spring项目bean基础配置 对于bean的配置中,主要有bean基础配置,bean的别名配置,bean的作用范围配置(重点),这三部分内容:1. bean基础配置(id与class);2. bean的name属性(别名配置);3. bean作用范围scope配置。 阅读详情
AI摘要

本文介绍了 Spring 的多种 Bean 配置方式。包括 XML 配置,其灵活性高但冗长易出错;基于注解的配置,简洁且类型安全;基于 Java 配置,类型安全、灵活性高;还有 Spring Boot 自动配置,简化了配置工作。开发者可按需选择合适的配置方式。

1. XML 配置方式

XML 配置是 Spring 早期版本中最常用的 Bean 配置方式。在 applicationContext.xml 或者类似的配置文件中,开发者可以定义 Bean 的配置,包括它们的属性、依赖关系和生命周期回调。

1.1 XML 配置示例
<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">

    <!-- 定义一个名为 myBean 的 Bean -->
    <bean id="myBean" class="com.example.MyBean">
        <!-- 设置 Bean 的属性 -->
        <property name="property1" value="value1"/>
        <property name="property2" ref="anotherBean"/>
    </bean>

    <!-- 依赖的 Bean -->
    <bean id="anotherBean" class="com.example.AnotherBean"/>

</beans>
1.2 XML 配置的特点
  • 灵活性高:可以通过 XML 灵活地定义 Bean 的各种属性、依赖和作用域。
  • 配置集中:所有 Bean 的配置集中在 XML 文件中,易于管理和查看。
1.3 使用 XML 配置 Bean 的局限性
  • 冗长且易出错:XML 配置比较冗长,尤其是在大型项目中,容易导致配置文件过长且难以维护。
  • 类型安全性不足:XML 配置无法提供编译时的类型检查,可能导致运行时错误。

2. 基于注解的配置

随着 Spring 发展,注解驱动的配置方式变得越来越流行。通过使用注解,开发者可以在代码中直接定义 Bean,减少了 XML 配置的冗长。

2.1 常用注解
  • @Component:将类标记为 Spring 的 Bean。
  • @Service:特定于服务层的 Bean,实际上是 @Component 的特殊化形式。
  • @Repository:特定于持久层的 Bean,用于数据访问层,具备自动转换异常的功能。
  • @Controller:特定于表示层的 Bean,用于标记控制器。
  • @Autowired:用于自动装配 Bean,可以用于字段、构造函数或方法上。
  • @Qualifier:与 @Autowired 配合使用,用于指定具体的 Bean。
  • @Value:注入简单值,如字符串、数字、布尔值等。
  • @Configuration:用于定义配置类,作为 @Bean 定义的来源。
  • @Bean:用于在 @Configuration 注解的类中定义 Bean。
2.2 注解配置示例
import org.springframework.stereotype.Component;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;

@Component
public class MyBean {
    
    @Value("${my.property}")
    private String property1;

    private final AnotherBean anotherBean;

    @Autowired
    public MyBean(AnotherBean anotherBean) {
        this.anotherBean = anotherBean;
    }

    // Getter and Setter methods
}
2.3 注解配置的特点
  • 简洁:减少了 XML 配置文件的冗长和重复,通过注解可以更直观地定义和管理 Bean。
  • 类型安全:在代码中直接定义 Bean,提供了编译时的类型检查,减少了运行时错误的可能性。
  • 强大的自动装配功能:通过 @Autowired 可以轻松实现 Bean 的自动装配。

3. 基于 Java 配置的方式

Spring 3.0 引入了基于 Java 的配置方式,允许开发者通过 Java 代码来定义配置。使用这种方式,开发者可以充分利用 Java 的类型检查和IDE的自动补全功能,同时避免了 XML 的冗长。

3.1 Java 配置示例
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {

    @Bean
    public MyBean myBean() {
        return new MyBean(anotherBean());
    }

    @Bean
    public AnotherBean anotherBean() {
        return new AnotherBean();
    }
}
3.2 Java 配置的特点
  • 类型安全:由于使用 Java 代码进行配置,所有配置都能在编译时进行类型检查。
  • 灵活性高:可以利用 Java 语言的特性进行更加复杂的配置和逻辑处理。
  • 与注解结合良好:Java 配置通常与注解方式结合使用,使得配置更加简洁和易于管理。

4. Spring Boot 的自动配置

Spring Boot 引入了自动配置(Auto-Configuration)的概念,大大简化了 Spring 应用程序的配置工作。通过自动配置,Spring Boot 能够根据类路径中的依赖、配置文件的内容等自动推断并配置应用程序所需的 Bean。

4.1 自动配置示例
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

在这个示例中,@SpringBootApplication 是一个复合注解,包含了 @EnableAutoConfiguration、@ComponentScan 和 @Configuration,用于自动扫描组件并配置 Spring 应用。

4.2 自动配置的特点
  • 简化配置:通过自动配置,开发者无需手动编写大量的配置文件,Spring Boot 会自动为常见场景配置 Bean。
  • 约定优于配置:Spring Boot 遵循“约定优于配置”的原则,通过合理的默认值和约定,简化开发过程。
  • 易于扩展:可以通过编写自定义的自动配置类,扩展 Spring Boot 的自动配置功能。
4.3 结合 YAML/Properties 文件

在 Spring Boot 中,开发者可以通过 application.yml 或 application.properties 文件进行配置,结合自动配置功能实现更加灵活的 Bean 配置。

# application.yml 示例
my:
  property: "value1"
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class MyBean {

    @Value("${my.property}")
    private String property;

    // Getter and Setter methods
}

5. 总结

Spring 提供了多种配置 Bean 的方式,使得开发者能够根据项目的需求选择最合适的配置方式:

  1. XML 配置:传统的方式,适用于对 XML 更熟悉的开发者,或者在大型项目中集中管理配置。
  2. 基于注解的配置:更加简洁和直观,适用于现代 Java 开发,减少了冗长的 XML 配置文件。
  3. 基于 Java 配置的方式:提供了类型安全和更强的灵活性,适合需要复杂配置逻辑的场景。
  4. Spring Boot 自动配置:大大简化了 Spring 应用的配置过程,遵循“约定优于配置”原则,非常适合快速开发。
Spring(2)——配置Bean的几种方式 1. 什么是 IOC Ioc- Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。 谁控制谁,控制什么: 传统的Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建以来对象;而Ioc是有专门一个容器来创建这些对象,即由Ioc容器... 阅读详情

相关推荐

Spring XML中Bean的配置:深入解析与应用

在Spring的XML配置文件中,通过元素定义Bean。每个元素对应一个Bean的定义,包括Bean的ID、类名、属性等。Spring XML中Bean的配置是构建现代Java应用的基石。本文详细讲解了Bean的定义、ID、Name、Scope、生命周期管理以及依赖注入等方面,并附上了详细的代码示例和注释。通过深入理解这些配置技巧,开发者可以充分发挥Spring框架的潜力,构建高效、可维护的Java应用。

xycxycooo的博客 274

Spring配置bean

本文介绍了Spring框架如何配置bean

m0_66036805的博客 1758

详解Spring中使用xml配置bean的细节

本篇文章主要介绍了Spring中使用xml配置bean的细节,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Spring bean配置的六种方式

本文将详细介绍Spring Bean配置的三种不同方式的特点与使用条件。 一,Spring 的配置文件概述 其实,Spring的配置文件是Spring容器对Bean进行生产以及关系注入的图纸,他是Spring的基础。如果我们没有配置文件的话,则Spring的容器将无从谈起。 Spring 的配置文件是用于指导 Spring 工厂进行 Bean 的生产、依赖关系注入...

MrLee的博客 2万+

电子产品的老化测试有哪些类型?

因此,越来越多的人在寻找“已知合格的测试连接器”,即经过测试具有可靠性和有效性的测试连接器,可以在老化测试中制定优化方法。例如对于芯片来说,不同的封装有不同的老化测试座,QFP老化测试座,QFN老化测试座等。老化测试时,专用老化电路板上的元件将承受等于或高于其额定工作条件的压力,以消除任何在额定寿命之前过早失效的元件。静态老化:在此类系统中,将测试设备安装到老化板上的插座中,然后放入老化箱中,其中每隔12至24小时施加电源和高温。动态老化:在动态老化系统中,设备以老化速度设定的最大速率进行测试。

软件技术的专栏 1839

Ubuntu 24.04下Loki+Alloy+Grafana日志分析系统的快速部署与实践

本文详细介绍了在Ubuntu 24.04系统上快速部署Loki+Alloy+Grafana轻量级日志分析系统的完整流程。通过二进制安装Loki、配置Alloy采集器以及设置Grafana可视化界面,构建了一套资源消耗低、易于管理的日志解决方案,并实战演示了如何采集和分析网络设备日志,特别适合资源有限的中小团队或边缘计算场景。

tensor9flow的博客 236

Spring Bean有哪几种配置方式?

Spring Bean有哪几种配置方式?

java1234的博客 589

UVM自学笔记3——项目之三——从零开始搭建ahb_sramc验证平台

创建如下所示的目录结构: 2.在tb的文件下:顶层的testbench如下:在tb中,第24行的代码将uvm宏相关的内容include进来,第26行的代码把uvm_pkg包导入进来,然后将agent相关的包(ahb_pkg/sram_pkg),testcase相关的包(uvm_ahb_sram_test_pkg)以及env相关的包(uvm_ahb_sram_env_pkg)都导入进来,在第38行和39行将接口以virtual interface的形式配置给ahb_agent和sramc_agent下

ZhangShuHuai11的博客 9477

Spring配置Bean的几种方式

​ Spring容器提供了三种装配bean的方式,所谓装配就是指将bean配置在spring容器中,并能够在类与类之间提供依赖关系。 一、隐式Bean发现机制和自动装配 ​ Spring从两个角度来实现自动化装配:组件扫描(Spring自动发现应用中上下文所需要的创建的Bean),自动装配(Spring自动满足Bean之间的依赖) 使用Component注解将普通类配置成Bean @Com...

算云烟 4907

wps js宏获取工作簿、工作表、单元格的值、链接转图片、单元格区域数据转二维数组、保存工作簿的常用Excel操作

wps js宏入门看这里,我写了常用的js操作Excel的方法:获取工作簿对象、获取工作表对象、获取单元格的值、链接转图片、生成条形码图片、单元格区域数据转二维数组方法、保存工作簿、弹出输入框、YesNo选择框,助你从VBA转战JS。

huaermeier的博客 3万+

【报错解决】OpenClaw 报错 Unsupported engine: requires node >=22.0.0 —— Node.js 版本过低的完整排查与解决实录

在国产操作系统环境下部署OpenClaw时遇到"Unsupported engine: requires node >=22.0.0"报错,分析表明该工具要求Node.js 22+以支持fetch API等新特性。解决方案包括:1) 使用nvm升级Node至22+版本;2) Docker环境中改用node:22-alpine镜像;3) 不推荐强制忽略引擎检查。文章强调遵循引擎要求的重要性,指出环境版本是工程化体系稳定运行的关键,建议通过规范升级解决兼容性问题。(149字)

博客 608

关于 Spring 中配置 Bean 对象的几种方式

目录1. Bean 的配置方式2. 依赖注入的方式(1)构造器注入(2)属性注入3. 注入属性值或依赖对象(1)字面值(2)其他 Bean 对象(3)集合对象(4)内部 Bean(5)null 值和级联属性(6)使用p命名空间(7)Bean的继承4. 自动装配5. Bean 之间的关系6. Bean 的作用域6. IoC 容器中 Bean 的生命周期Spring4.x 新特性: 泛型依赖注入 1. Bean 的配置方式 配置方式有两种: 基于 XML 文件配置:在 Spring 配置文件中,使用特定的标签

Jason Weng的博客 1730

gurobi最新下载安装教程 2023.11

我下载的最新版gurobi支持python3.7-python3.11,这个序号与计算机硬件捆绑,一旦激活就会失效。运行激活码之后,产生的。如果既放置在了上面的默认搜索目录,又设置了。系统环境变量(不是用户环境变量),指向保存的目录和文件名(例如。高版本产生的许可文件兼容低版本。验证不会成功,学术许可不会激活。之后cmd进入命令行,cd进入gurobi所在的。,实测不到一小时即可审核完毕,获得对应的许可。如果学校的网关没有将本校的。系统环境变量指向不同的目录和文件,原厂无关,是学校网络的设置问题。

Cachel Wood的博客 2万+

【Java】Spring Bean有几种配置方式?

定义 Spring Bcan 的3 种方式分别是:基于XML 的方式配置、基于注解扫播方式配置、基于元数据类的配置。

Demo的博客 1437

RH850从0搭建Autosar开发环境【1】- 如何创建Davinci Configurator配置工程

当我们在公司接触Autosar开发环境时,基本都是完整的Davinci Configurator的配置工程,我们只能修修补补。 从本章开始将手把手搭建Rh850基于Vector公司Davinci Configurator的autosar配置工程。主要涉及到OS,COM,DCMM,NVM,BSWM,ECUM等基本模块,包括Vlink,memap使用,XCP标定的实现等。基本是实现一个基础版的项目开发。包括后期的GreenHills编译问题处理,生成最终的Hex文件。

weixin_42412049的博客 1万+

芒果YOLOv7改进04:Loss篇:原创改进损失函数Repulsion:独家首发最新改进Repulsion Loss解决目标遮挡场景下检测,为解决密集人群检测中遮挡设计的损失函数,打造高效检测器涨点

YOLOv7原创改进Repulsion|首发最新改进为解决密集人群检测中遮挡设计的损失函数

包括YOLOv5、YOLOv7、YOLOv8等模型改进 3253

web.xml中配置spring的几种方式 以及 Spring获取Bean的几种方式

spring有三种启动方式,使用ContextLoaderServlet,ContextLoaderListener和ContextLoaderPlugIn spring3.0及以后版本中已经删除ContextLoaderServlet 和Log4jConfigServlet 可以采用余下两种启动方式ContextLoaderListener和ContextLoaderPlugIn 建议使用Con

5589

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Spring Bean的几种配置方式

1、基于 XML 配置 在XML文件中通过元素定义Bean,如:<beanclass=“com.czxy.UserService”> public class StudentController{ private StudentService studentService; } <bean id="studentController" class="com.czxy.controller.StudentController"> <property name="stude

weixin_44356300的博客 279

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

spring配置bean的几种方式

11420171026 package com.tiger.main; import java.util.ArrayList; import java.util.Collections; import org.springframework.context.annotation.Bean; import org.springframework.context.annotati

轻描淡写 1005

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring几种不同方式配置Bean

配置文件(resources/config/initBean.xml) Spring IoC容器如何实例化Bean呢?传统应用程序可以通过new和反射方式进行实例化Bean。而Spring IoC容器则需要根据Bean定义里的配置元数据使用反射机制来创建Bean。在Spring IoC容器中根据Bean定义创建Bean主要有以下几种方式: 一、使用无参构造器实例化Bean 使

jackphang的专栏 915

Spring中创建bean的几种方式以及其他spring相关配置

首先有一个简单的实体类,实体类保证有参无参构造齐全,这里我演示的实体类只有一个参数。 如果需要对象在spring容器中被创建,那可以在spring的xml中如下几种配置: 一:Bean相关 方式一:使用property标签,name取字段,value赋值 <bean id="hello" class="com.spring.pojo.Hello"> <property n...

Deeeelete的博客 307

spring的bean配置的几种方式

三种: 传统的XML配置方式 基于Java注解的配置方式 基于类的java Config

wlg9527的博客 265

如何给Spring 容器提供配置元数据/ Spring Bean 定义有几种方式/配置元数据方式有几种?

如何给Spring 容器提供配置元数据/ Spring Bean 定义有几种方式/配置元数据方式有几种?

我从不打没有准备的仗! 1万+

web.xml中配置spring的几种方式 以及 Spring获取Bean的几种方式

看了几个SSH的实例,越看越糊涂,为什么每个配置都不同了,就web.xml中配置spring就好几种。找到了2篇好的博文,收藏下!                               spring有三种启动方式,使用ContextLoaderServlet,ContextLoaderListener和ContextLoaderPlugIn spring3.0及以后版本中已

lee的专栏 2万+
上一篇: spring 的监听器
下一篇: web.xml 的配置
Flying_Fish_Xuan
Flying_Fish_Xuan 新星创作者: 后端开发技术领域 新星创作者: 后端开发技术领域
博客等级 码龄5年 1万+粉丝 2409原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Flying_Fish_Xuan

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值