Spring容器演示——采用Spring配置文件管理Bean

news2024/9/30 11:35:49

一、创建Maven项目

创建Maven项目 - SpringDemo,设置项目位置以及组ID
在这里插入图片描述
修改项目的Maven配置
在这里插入图片描述

二、添加Spring依赖

在Maven仓库里查找Spring框架(https://mvnrepository.com)
在这里插入图片描述
查看Spring Core
在这里插入图片描述
选择版本 - 5.3.25
在这里插入图片描述
添加到pom.xml文件的元素里(如果没有下载到本地,5.3.25将会显示红色)
在这里插入图片描述
同理添加其他依赖

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

    <groupId>net.huawei.spring</groupId>
    <artifactId>SpringDemo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!--Spring核心-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.3.25</version>
        </dependency>
        <!--Spring实体-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.3.25</version>
        </dependency>
        <!--Spring容器-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.25</version>
        </dependency>
        <!--Spring Web-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.3.25</version>
        </dependency>
        <!--Spring MVC-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.25</version>
        </dependency>
        <!--Spring测试-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.3.25</version>
        </dependency>
        <!--单元测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

打开Maven窗口,单击刷新按钮,就开始下载依赖包,等待插件与依赖下载完成
在这里插入图片描述
可以查看本地Maven仓库里当前项目下载的有关Spring框架的依赖
在这里插入图片描述

三、创建杀龙任务类

创建net.huawei.spring.day01包,然后在包里面创建SlayDragonQuest类
在这里插入图片描述
在这里插入图片描述

四、创建勇敢骑士类

在net.huawei.spring.day01包里创建BraveKnight类
在这里插入图片描述
在这里插入图片描述

五、采用传统方式让勇敢骑士完成杀龙任务

在test/java里创建net.huawei.spring.day01包,然后在包里面创建TestBraveKnightOld类
在这里插入图片描述
在这里插入图片描述
运行测试方法testBraveKnight()

查看程序运行结果
在这里插入图片描述
出现这个问题怎么办?要设置Java版本
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
三个地方的设置要保持一致,然后再运行程序,查看结果
在这里插入图片描述

六、采用Spring容器让勇敢骑士完成杀龙任务

1、创建日志属性文件

在resources目录里创建log4j.properties
在这里插入图片描述
在这里插入图片描述

log4j.rootLogger=WARN, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

2、创建Spring配置文件

在resources里创建xmlconfig目录,然后在里面创建spring-config.xml
在这里插入图片描述
输入Spring配置文件名
在这里插入图片描述

在这里插入图片描述

单击【Configure application context】(配置应用上下文)
在这里插入图片描述
单击【Create new application context…】(创建新的应用上下文),注意应用上下文名称是可以修改的
在这里插入图片描述
单击【OK】按钮
在这里插入图片描述
在项目结构窗口里查看配置好的spring-config.xml
在这里插入图片描述

3、在Spring配置文件里创建Bean

(1)创建杀龙任务Bean

<!--配置杀龙任务Bean-->
<bean id="slayDragonQuest" class="net.hf.spring.day01.SlayDragonQuest"/>

id属性 :对应对象名,可以任取,然后在应用程序里我们可以通过这个id值从Spring容器中获取Bean对象。
class属性 :表明Bean对象是基于哪个类来实例化,注意一定要包含包名。

(2)创建勇敢骑士Bean

<!--配置勇敢骑士Bean-->                                                 
<bean id="braveKnight" class="net.f.spring.day01.BraveKnight"> 
    <property name="name" value="罗宾汉"/>  <!-- RobinHood.setName("罗宾汉")-->                        
    <property name="slayDragonQuest" ref="slayDragonQuest"/>  <!--RobinHood.setSlayDragonQuest(slayDragonQuest)-->  
</bean>                                                                                                                       

property元素:给对象设置属性值
name属性:Bean对象的属性名
ref属性:Bean对象的属性值(引用另一个Bean对象)
勇敢骑士Bean通过元素将杀龙任务Bean注入作为其属性。注意,name属性值一定是BraveKnight类的属性名,ref属性值是已定义的杀龙任务Bean的id值。
在这里插入图片描述

4、创建新勇敢骑士测试类

在test/java/net.huawei.spring.day01里创建TestBraveKnightNew测试类
在这里插入图片描述
在这里插入图片描述
运行程序,查看结果
在这里插入图片描述

5、创建两个勇敢骑士Bean

基于一个类可以创建多个对象,因此,在spring-config.xml文件里,也可以基于同一个类创建多个Bean。
基于BraveKnight类再创建两个Bean,id值分别为knight1和knight2
在这里插入图片描述

6、修改新勇敢骑士测试类

获取新建的两个勇敢骑士Bean,调用执行任务方法
在这里插入图片描述
执行testBraveKnight()测试方法,查看结果
在这里插入图片描述

七、采用构造方法注入方式注入属性值

1、创建救美任务类

在net.huawei.spring.day01包里创建RescueDamselQuest类
在这里插入图片描述
在这里插入图片描述

2、创建救美骑士类

在net.huawei.spring.day01包里创建RescueDamselKnight类
在这里插入图片描述
在这里插入图片描述

3、创建旧救美骑士测试类

在test/java/net.huawei.spring.day01包里创建TestRescueDamselKnightOld类
在这里插入图片描述

运行testRescueDamselKnight()测试方法,查看结果
在这里插入图片描述

4、配置救美骑士Bean

在Spring配置文件里配置救美骑士Bean
在这里插入图片描述

![<!--配置救美任务Bean-->                                                                    
<bean id="rescueDamselQuest" class="net.huawei.spring.day01.RescueDamselQuest"/>     
                                                                                     
<!--配置救美骑士Bean-->                                                                    
<bean id="rescueDamselKnight" class="net.huawei.spring.day01.RescueDamselKnight">  
    <constructor-arg value="格拉海德"/>                                                  
    <constructor-arg ref="rescueDamselQuest"/>                                       
</bean>                                                                                                                                                                                                    

5、创建新救美骑士测试类

在test/java/net.huawei.spring.day01包里创建TestRescueDamselKnightNew类
在这里插入图片描述
在这里插入图片描述
运行testRescueDamselKnight()测试方法,查看效果
在这里插入图片描述

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

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

相关文章

盘点程序员都不一定知道的小众网站!建议收藏,java编程必备!

俗话说的好&#xff0c;有一个趁手的工具解决了80%的疑虑。作为智慧物种的新新人类&#xff0c;手上掌握一两个不为人知的好用网站已经是件稀疏平常的事情。 今天我们就一起来看看&#xff0c;有哪些小众网站是程序员必备的&#xff01; 业内人士都知道&#xff0c;一直劈里啪…

windows下面安装Python和pip终极教程

Python的语言风格很nice&#xff0c;但是这门语言对于windows并不算很友好&#xff0c;因为如果是初学者在windows环境下安装&#xff0c;简直是折磨人&#xff0c;会遇到各种蛋疼的情况。本文希望提供傻瓜式的教程&#xff0c;能够令读者成功安装Python和pip。 第一步&#xf…

什么是push通知栏消息?

我是3y&#xff0c;一年CRUD经验用十年的markdown程序员&#x1f468;&#x1f3fb;‍&#x1f4bb;常年被誉为职业八股文选手 今天继续更新Austin&#xff0c;给Austin新增一个发送渠道&#xff08;PUSH通知栏推送&#xff09; Push通知栏消息是非常常见的&#xff0c;几乎每…

【elementUI】自定义封装el-upload上传内容

文章目录为实现如图所示功能&#xff0c;点击第一步弹出模态框&#xff0c;第二部将所有文件导入&#xff0c;第三步点击确定的时候上传到后台接口&#xff0c;封装一个组件 1.搭建template <div style"display: inline-block; margin-left: 10px;"><el-bu…

leaflet 设置多个marker,导出为一个geojson文件(066)

第066个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中使用L.marker设置多个markers, 通过数据重组,导出为geojson文件。 这里面 ayer instanceof L.Marker 是一个很重要的判断条件,可以灵活地去运用。 直接复制下面的 vue+openlayers源代码,操作2分钟即可…

Ubuntu20.04LTS设置DNS解析(解决系统重启DNS不生效的问题)

文章目录背景介绍解决方案背景介绍 近期买了一台戴尔的工作站&#xff0c;搭建的是Ubuntu20.04系统&#xff0c;使用时发现Ubuntu20.04系统上网经常卡顿&#xff08;上网方式是有线网&#xff0c;使用的千兆网口和千兆网线&#xff09;。 使用网速测试工具speedtest-cli进行了…

redis五大数据结构

目录1.1 Redis数据结构-动态字符串1.2 Redis数据结构-intset1.3 Redis数据结构-Dict1.4 Redis数据结构-ZipList1.5 Redis数据结构-ZipList的连锁更新问题1.6 Redis数据结构-QuickList1.7 Redis数据结构-SkipList1.8 Redis数据结构-RedisObject2.0 Redis数据结构-String2.1 Redi…

前端性能优化的整理笔记

&#x1f6b4; 前言大厂面试题分享 面试题库后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★地址&#xff1a;前端面试题库&#x1f3c4;利用碎片化的时间&#xff0c;系统的整理&#xff0c;性能优化的知识点。&#x1f3af; 前端性能优化&#xf…

初识网络原理,关于网络编程的基础

一.网络的重要性对于程序员而言&#xff0c;几乎所程序都依赖于网络&#xff0c;对于公司来说&#xff0c;几乎所有产品也是依赖于网络&#xff0c;这些产品不仅包括面向用户的产品&#xff0c;公司内部的一些服务也是基于公司内网来进行相互调用的。二.组网方式①基于网线直连…

每日学术速递2.15

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.YOWOv2: A Stronger yet Efficient Multi-level Detection Framework for Real-time Spatio-temporal Action Detection 标题&#xff1a;YOWOv2&#xff1a;用于实时时空动作检测的…

Jenkins构建项目和tomcat项目发布脚编写本详细教程jenkins 2.361版本

jenkins部署教程可查看上一篇文档jenkins部署指定任意版本和配置详细教程 jenkins 2.361版本示例_争取不加班&#xff01;的博客-CSDN博客Jenkins服务器去拉取代码&#xff0c;所以要下载git客户端 yum -y install git jenkins服务器下载下面就是构建发布任务测试可以性测试使用…

第一个Python程序-HelloWorld与Python解释器

数据来源 01 第一个Python程序-HelloWorld 1&#xff09;打开cmd&#xff1a; windows R 打开运行窗口输入cmd 2&#xff09;进入Python编写页面 输入&#xff1a;python 3&#xff09;然后输入要写的Python代码然后回车 print("Hello World!!!") print() …

利用AxhubCharts元件库在Axure RP中快速创建可视化统计图

利用AxhubCharts元件库在Axure RP中快速创建可视化统计图&#xff0c;可创建的可视化统计图有折线图、柱状图、堆叠柱状图、条形图、堆叠条形图、面积图、饼图、环形图、漏斗图、甘特图、散点图等。具体操作步骤见下文。 1.下载AxhubCharts.rplib元件库文件 2.载入AxhubChart…

【Node.js】模块化

模块化模块化的基本概念模块化规范Node.js中模块化分类模块作用域向外共享模块作用域的成员Node.js中的模块化规范模块化的基本概念 指解决一个复杂问题时&#xff0c;自顶向下逐层把系统划分成若干模块的过程对于整个系统来说&#xff0c;模块是可组合&#xff0c;分解和更换…

mysql的一些底层学习

数据库三大范式 1、第一范式&#xff1a;确保每列保持原子性 2、第二范式&#xff1a;确保表中每列都与主键列相关 3、第三范式&#xff1a;确保表中每列都与主键列直接相关而不是间接相关 不要一味的去追求符合范式要求&#xff0c;实际项目中&#xff0c;需求 > 性能 …

GPT-3(Language Models are Few-shot Learners)简介

GPT-3(Language Models are Few-shot Learners) GPT-2 网络架构 GPT系列的网络架构是Transformer的Decoder&#xff0c;有关Transformer的Decoder的内容可以看我之前的文章。 简单来说&#xff0c;就是利用Masked multi-head attention来提取文本信息&#xff0c;之后利用MLP和…

内嵌于球体的多边形

( A, B )---2*30*2---( 1, 0 )( 0, 1 ) 做一个网络让输入只有2个节点&#xff0c;每个训练集里有两张图片&#xff0c;让B的训练集全为0&#xff0c;排列组合A&#xff0c;观察迭代次数平均值的变化。 共得到32组数据&#xff0c; 差值结构 A-B 迭代次数 1 1 3*2*0*0 104…

计算机网络学习笔记(二)物理层

物理层&#xff08;传输比特0/1&#xff09;基本概念 物理层下的传输媒体 1. 导引型 同轴电缆&#xff0c;双绞线&#xff08;绞合可抵御干扰&#xff09;&#xff0c;光纤&#xff0c;电力线 2. 非导引型&#xff08;调制振幅 频率 相位&#xff09; 无线电波&#xff0c;微…

SpringBoot整合MybatisPlus(powernode CD2207)(内含教学视频+源代码)

SpringBoot整合MybatisPlus&#xff08;powernode CD2207&#xff09;&#xff08;内含教学视频源代码&#xff09; 教学视频源代码下载链接地址&#xff1a;https://mp.csdn.net/mp_download/manage/download/UpDetailed 目录SpringBoot整合MybatisPlus&#xff08;powernode…

项目搭建规范

一. 代码规范 1.1. 集成editorconfig配置 EditorConfig 有助于为不同 IDE 编辑器上处理同一项目的多个开发人员维护一致的编码风格。 # http://editorconfig.org root true [*] # 表示所有文件适用 charset utf-8 # 设置文件字符集为 utf-8 indent_style space # 缩进…