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文件如下:
<?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配置文件进行配置:
<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,但第三方通常会使用各种扩展名来指示文件的...
- 一周热门
- 最近发表
- 标签列表
-
- grid 设置 (58)
- 移位运算 (48)
- not specified (45)
- 导航栏 (58)
- context xml (46)
- scroll (43)
- dedecms模版 (53)
- c 视频教程下载 (33)
- listview排序 (33)
- characterencodingfilter (33)
- getmonth (34)
- label换行 (33)
- android studio 3 0 (34)
- html转js (35)
- 索引的作用 (33)
- checkedlistbox (34)
- xmlhttp (35)
- mysql更改密码 (34)
- 权限777 (33)
- htmlposition (33)
- 学校网站模板 (34)
- textarea换行 (34)
- 轮播 (34)
- asp net三层架构 (38)
- bash (34)