百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

Spring的装配方式xml

xsobi 2024-11-24 23:35 18 浏览

装配Bean

在大部分场景下,我们会使用ApplicationContext的具体实现类,因为对应的Spring IOC容器功能相对强大,而在Spring中提供了三种方法进行配置:

  • 在XML中显示配置
  • 在Java的接口和类中实现配置
  • 隐式Bean的发现机制和自动装配原则

一般地,应该尽可能地使用自动装配的机制。显式配置越少越好。如果必须要显式配置bean时,比如源码不是自己来维护的,而是当你需要为这些代码配置bean的时候,也推荐使用JavaConfig。除非想要使用XML命名空间,并且在JavaConfig中没有同样的实现时,才应该使用XML。

创建实例

创建一个maven项目,导入主要的依赖,pom.xml文件如下:

Bash
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="Maven - Page Not Found"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="Maven - Page Not Found http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.hs.spring</groupId>
    <artifactId>spring5-demo1</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- org.springframework " spring-core -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.3.3</version>
        </dependency>

        <!-- org.springframework " spring-beans -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.3.3</version>
        </dependency>

        <!-- org.springframework " spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.3</version>
        </dependency>

        <!-- org.springframework " spring-expression -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>5.3.3</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>


通过xml配置装配Bean

实现自动装配,bean标签属性autowire,配置自动装配。autowire属性常用两个值:

  • byName:根据属性名称注入
  • byType:根据属性类型注入


通过beans.xml配置文件进行配置:

Bash
<bean id="dept" class="com.hs.spring.pojo.Dept" autowire="byType">
</bean>

<bean id="emp" class="com.hs.spring.pojo.Emp">
</bean>

表示根据类型来实现装配,但是有一个问题,如果有两个类型相同的会有问题。


使用实例

使用xml装配bean,需要配置一个xml配置文件,如下:

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

    <bean id="userService" class="com.hs.spring.UserService">
    </bean>
</beans>

编写一个class类:

package com.hs.spring;

public class UserService {

    public void addUser(){
        System.out.println("添加一个用户");
    }
}

测试通过spring获取对象:

import com.hs.spring.UserService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestSpring5 {

    @Test
    public void testAdd(){
        //加载Spring的配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        //获取配置创建的对象
        UserService userService = context.getBean("userService",UserService.class);
        //执行方法
        userService.addUser();
    }
}

相关推荐

大模型技术:详解LangGraph,从基础到高级

图片来自DALL-E3LangChain是构建由Lardge语言模型提供支持的应用程序的领先框架之一。借助LangChain表达语言(LCEL),定义和执行分步操作序列(也称为链)变得更加简...

SQL知识大全三):SQL中的字符串处理和条件查询

点击上方蓝字关注我们今天是SQL系列的第三讲,我们会讲解条件查询,文本处理,百分比,行数限制,格式化以及子查询。条件查询IF条件查询#if的语法IF(expr1,expr2,expr3)#示例S...

聊聊Spring AI Alibaba的PdfTablesParser

序本文主要研究一下SpringAIAlibaba的PdfTablesParserPdfTablesParsercommunity/document-parsers/spring-ai-alibab...

SpringBoot数据库管理 - 用Liquibase对数据库管理和迁移?

Liquibase是一个用于用于跟踪、管理和应用数据库变化的开源工具,通过日志文件(changelog)的形式记录数据库的变更(changeset),然后执行日志文件中的修改,将数据库更新或回滚(ro...

MySQL合集-单机容器化

MySQL单机容器化mkdir-p/opt/mysql/{data,etc}cpmy.cnf/opt/mysql/etc#dockersearchmysqldockerpullm...

差异基因分析不会做?最简单的火山图做法,一秒学会

最近很多刚了解生信的同学问喵学姐:看了一些文献,文献里的各种图怎么看呀,完全看不懂。今天喵学姐就来给大家讲一讲我们平时做的最基础的差异分析——火山图火山图(Volcanoplot)是散点图的一种,它...

每分钟写入6亿条数据,携程监控系统Dashboard存储升级实践

一、背景概述框架Dashboard是一款携程内部历史悠久的自研监控产品,其定位是企业级Metrics监控场景,主要提供用户自定义Metrics接入,并基于此提供实时数据分析和视图展现的面板服务,提供...

高效开发库:C++ POCO库开发者使用指南

目录POCO库简介POCO库的特点POCO库的模块分类POCO库的应用场景各模块功能详解与代码示例1.POCO库简介POCO(PortableComponents)是一个开源的C++类库,旨在为开...

Oracle中JDBC处理PreparedStatement处理Char问题浅析

最近碰到一个奇怪的问题,同样的Java代码,在不同的数据库执行,结果集却不同?代码片段如下:表的定义:SAMPLE_TABLE(IDINTEGER,NAMECH...

mp4封装格式各box类型讲解及IBP帧计算

mp4封装格式各box类型讲解及IBP帧计算目录;总结送学习大纲零基础到实战boxftypboxmoovboxmvhdbox(MovieHeaderBox)trakbox(Track...

「猪译馆」ASFV在不同基质中的存活时间(一)

作者Author欧洲食品安全署EuropeanFoodSafetyAuthority(EFSA),AndreaGervelmeyer欧盟委员会委托欧洲食品安全署对非洲猪瘟病毒在不同基质中...

视频封装格式:MP4格式详解

1.MP4格式概述1.1简介MP4或称MPEG-4第14部分(MPEG-4Part14)是一种标准的数字多媒体容器格式。扩展名为.mp4。虽然被官方标准定义的唯一扩展名是.mp4,但第三方通...

音视频八股文(10)-- mp4结构

介绍mp4文件格式又被称为MPEG-4Part14,出自MPEG-4标准第14部分。它是一种多媒体格式容器,广泛用于包装视频和音频数据流、海报、字幕和元数据等。(顺便一提,目前流行的视频编码格式...

大数据ClickHouse进阶(九):ClickHouse的From和Sample子句

#头条创作挑战赛#ClickHouse的From和Sample子句一、From子句From子句表示从何处读取数据,支持2种形式,由于From比较简单,这里不再举例,2种使用方式如下:SELECTcl...

一文读懂MP4封装格式

简介MP4或称MPEG-4第14部分(MPEG-4Part14)是一种标准的数字多媒体容器格式。扩展名为.mp4。虽然被官方标准定义的唯一扩展名是.mp4,但第三方通常会使用各种扩展名来指示文件的...