Spring项目创建流程及配置文件bean标签参数简介

1. 项目搭建流程

1. pom.xml中引入依赖Spring-webMVC

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.18</version></dependency>

2.创建Spring配置文件 – applicationContext.xml

在resoures下创建xml文件
在这里插入图片描述

<?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"></beans>

创建完毕后点击右上角的 configure application context 再选择create new application context… 。在弹出的弹窗里直接点击确定
在这里插入图片描述

3.创建测试用的类

Hello.java

package com.zbt.ioc.dto;/*** @author* @createAt 2025/1/8 21:07*/public class Hello {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public void show(){System.out.println("Hello "+name);}
}

4.配置文件中配置类

<!-- 使用Spring来创建对象  在Spring中这些对象统称为Bean --><bean id="hello" class="com.zbt.ioc.dto.Hello" name="helloOtherName"><property name="name" value="Spring"/></bean>

5. 编写测试类

HelloSpring.java

package com.zbt.ioc.controller;import com.zbt.ioc.dto.Hello;
import org.springframework.context.support.ClassPathXmlApplicationContext;/*** @author* @createAt 2025/1/8 21:00*/public class HelloSpring {public static void main(String[] args) {//通过加载配置文件 获取Spring的上下文对象ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");//我们的对象都在Spring中管理了,我们要使用的时候  直接去容器中取出来就可以了/*<bean id="hello" class="com.zbt.ioc.dto.Hello" name="helloOtherName"><property name="name" value="Spring"/></bean>相当于自动帮我们new 了 一个Hello对象  id 为变量名  class为要new 的对象的路径 name为别名,可以通过逗号分隔取多个别名  context.getBean()通过别名也能取到对象其中 property 相当于 给对象的属性赋了一个值 name为属性名  value为属性值(通过属性的set方法注入了属性值)思考:对象是由Spring创建的 属性也是Spring赋值的  这个过程就叫做控制反转*///通过 id 取Hello hello = (Hello)context.getBean("hello");hello.show();//通过 别名 取Hello helloOtherName = (Hello)context.getBean("helloOtherName");helloOtherName.show();}
}

运行结果
在这里插入图片描述

2.bean标签简介

        <bean id="hello" class="com.zbt.ioc.dto.Hello" name="helloOtherName"><property name="name" value="Spring"/></bean>

这段配置文件相当于自动帮我们new 了 一个Hello对象 ,并将对象的name属性赋值为Spring
其中:
id :为变量名
class:为要new 的对象的路径
name:为别名,可以通过逗号分隔取多个别名 context.getBean()通过别名也能取到对象
property: 相当于 给对象的属性赋了一个值 (name:为属性名 ;value:为属性值(通过属性的set方法注入了属性值); ref:为引用Spring中已经注入的类的id)

思考:
对象是由Spring创建的
属性也是Spring赋值的
这个过程就叫做控制反转(IOC)

3.Spring IOC对象创建方式

默认为调用实体类的无参构造方法
注意:如果没有无参构造 且 未通过constructor-arg标签指定有参构造则会报错

通过constructor-arg标签指定有参构造创建对象
共有三种方式:
1. 通过下标给构造器传参数(这里的下标是指构造函数的第几个参数)
2. 通过参数类型匹配给构造器传参数 不推荐使用,如果构造器有多个类型相同的参数就会无法匹配
3. 直接通过参数名匹配给构造器传参数 推荐使用

<bean id="hello" class="com.zbt.ioc.dto.Hello" name="helloOtherName"><constructor-arg index="0" value="第一个参数"/><constructor-arg type="java.lang.String" value="给String类型的参数赋值"/><constructor-arg name="name" value="给属性name赋值"/></bean>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/66587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

左神算法基础巩固--2

文章目录 稳定性选择排序冒泡排序插入排序归并排序快速排序堆排序 哈希表链表解题 稳定性 稳定性是指算法在排序过程中保持相等元素之间相对顺序的特性。具体来说&#xff0c;如果一个排序算法是稳定的&#xff0c;那么对于任意两个相等的元素&#xff0c;在排序前它们的相对顺…

UART串口数据分析

串口基础知识详细介绍&#xff1a; 该链接详细介绍了串并行、单双工、同异步、连接方式 https://blog.csdn.net/weixin_43386810/article/details/127156063 该文章将介绍串口数据的电平变化、波特率计算、脉宽计算以及数据传输量的计算。 捕获工具&#xff1a;逻辑分析仪&…

机器学习模型评估指标

模型的评估指标是衡量一个模型应用于对应任务的契合程度&#xff0c;常见的指标有&#xff1a; 准确率&#xff08;Accuracy&#xff09;: 正确预测的样本数占总样本数的比例。适用于类别分布均衡的数据集。 精确率&#xff08;Precision&#xff09;: 在所有被预测为正类的样…

面试题解,JVM中的“类加载”剖析

一、JVM类加载机制说一下 其中&#xff0c;从加载到初始化就是我们的类加载阶段&#xff0c;我们逐一来分析 加载 “加载 loading”是整个类加载&#xff08;class loading&#xff09;过程的一个阶段&#xff0c;加载阶段JVM需要完成以下 3 件事情&#xff1a; 1&#xff0…

腾讯云AI代码助手编程挑战赛-古诗词学习

一、作品介绍 在科技与文化深度交融的当下&#xff0c;“腾讯云 AI 代码助手编程挑战赛 - 每日古诗词” 宛如一颗璀璨的新星&#xff0c;闪耀登场。它绝非一场普通的赛事&#xff0c;而是一座连接编程智慧与古典诗词韵味的桥梁。 这项挑战赛以独特的视角&#xff0c;将每日古…

GelSight Mini视触觉传感器凝胶触头升级:增加40%耐用性,拓展机器人与触觉AI 应用边界

马萨诸塞州沃尔瑟姆-2025年1月6日-触觉智能技术领军企业Gelsight宣布&#xff0c;旗下Gelsight Mini视触觉传感器迎来凝胶触头的更新。经内部测试&#xff0c;新Gel凝胶触头耐用性提升40%&#xff0c;外观与触感与原凝胶触头保持一致。此次升级有效满足了客户在机器人应用中对设…

【C++入门】详解(上)

目录 &#x1f495;1.C中main函数内部———变量的访问顺序 &#x1f495;2.命名空间域namespace &#x1f495;3.命名空间域&#xff08;代码示例&#xff09;&#xff08;不要跳&#xff09; &#x1f495;4.多个命名空间域的内部重名 &#x1f495;5.命名空间域的展开 …

Ungoogled Chromium127 编译指南 MacOS篇(八)- 开始编译

1. 引言 完成了所有依赖包的安装后&#xff0c;我们终于来到了最关键的编译阶段。在开始编译之前&#xff0c;有一些重要的配置信息需要了解。本文将指导您完成整个编译过程。 2. 签名相关说明 虽然在我们的测试编译中不需要进行签名操作&#xff0c;但了解官方的签名要求仍…

使用uniapp 微信小程序一些好用的插件分享

总结一下自己在开发中遇见的一问题&#xff0c;通过引入组件可以快速的解决 1.zxz-uni-data-select 下拉框选择器(添加下拉框检索&#xff0c;多选功能&#xff0c;多选搜索功能&#xff0c;自定义 下拉框插件&#xff0c;使用这个的原因是因为 uniui uview 组件库下拉框太…

腾讯云AI代码助手编程挑战赛-有趣的冷知识分享

作品简介 有趣的冷知识这一编程主要用于对于小朋友的探索力的开发&#xff0c;让小朋友在一开始就对学习具有探索精神。在信息化时代下&#xff0c;会主动去学习自己认知以外的知识&#xff0c;同时丰富了眼界&#xff0c;开拓了新的知识。 技术架构 使用python语言的TK库…

使用 SQL 和表格数据进行问答和 RAG(7)—将表格数据(CSV 或 Excel 文件)加载到向量数据库(ChromaDB)中

将表格数据&#xff08;CSV 或 Excel 文件&#xff09;加载到向量数据库&#xff08;ChromaDB&#xff09;中。这里定义的类 PrepareVectorDBFromTabularData&#xff0c;它的主要功能是读取表格数据文件到DataFrame中、生成嵌入向量、并将这些数据存储在向量数据库的集合中&am…

攻防世界 wtf.sh-150

点进去&#xff0c;发现是一个类似于论坛的网站&#xff0c;并且对报错等做了处理 用御剑扫描一下 ​ 发现是php形式的文件&#xff0c;但点进去访问不了。看看wp&#xff0c;发现此题存在路径穿越漏洞&#xff0c;就是&#xff08;如果应用程序使用用户可控制的数据&#xff0…

Vue3组件通讯——自定义事件(子->父)

需求如下&#xff1a; 1.在子组件中&#xff0c;当用户点击提交按钮后&#xff0c;更新数据库 2.数据更新成功后&#xff0c;子组件通知父组件getUserInfo函数&#xff0c;重新获取数据&#xff0c;同步更新 3.子组件等待getUserInfo函数执行完毕后&#xff0c;调用init函数…

mongodb配置文件详解

mongodb 配置文件采用yaml格式&#xff0c;配置文件的选项还是比较多的&#xff0c;下面是一些配置文件解释。 下面提供一份MongoDB副本集在生产环境中的配置 # mongod.conf # # systemLog: systemLog: destination: file logAppend: true path: /data/mongodb/mongodb-vr-2701…

【已解决】如何让容器内的应用程序使用代理?

首先&#xff0c;按照这种配置方法&#xff0c;即通过在 /etc/systemd/system/docker.service.d/http-proxy.conf 中设置代理&#xff0c;它只会影响 Docker 守护进程本身&#xff0c;并不会自动影响 Docker 容器内部的软件或容器中的网络行为。 这意味着&#xff1a; Docker …

2025年:AI化浪潮中的社会变迁与商业革新

随着人工智能(AI)技术的迅猛发展,2025年将成为一个转折点。这一年,AI不仅将深入到日常生活和商业运营的各个角落,还将引发一系列深刻的社会、经济和技术变革。以下是对未来一年可能出现的“AI化”现象的预测与展望。 AI进入主流文化的标志 超级碗广告:在2025年的超级碗上…

Windows 11 上配置VSCode 使用 Git 和 SSH 完整步骤

在 Windows 11 上&#xff0c;通过 VSCode 使用 Git 和 SSH 克隆 GitHub 仓库的完整优化步骤如下&#xff1a; 1. 安装必备工具 下载并安装 Git&#xff1a; 访问 Git 官网 下载最新版本。安装时&#xff0c;选择以下选项&#xff1a; Default editor for Git: Use Visual Stud…

【Spring】Redis缓存+ehcache

文章目录 基于Spring的RedisehcacheRedis 缓存配置Cacheable 注解CacheEvict 注解缓存配置 基于Spring的Redisehcache Redis 缓存配置 在项目中添加 Redis 的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot…

UE5 打包要点

------------------------- 1、需要环境 win sdk &#xff0c;大约3G VS&#xff0c;大约10G 不安装就无法打包&#xff0c;就是这么简单。 ----------------------- 2、打包设置 编译类型&#xff0c;开发、调试、发行 项目设置-地图和模式&#xff0c;默认地图 项目…

小程序textarea组件键盘弹起会遮挡住输入框

<textarea value"{{remark}}" input"handleInputRemark" ></textarea> 如下会有遮挡&#xff1a; 一行代码搞定 cursor-spacing160 修改后代码 <textarea value"{{remark}}" input"handleInputRemark" cursor-spacin…