第一个spring程序

news2024/11/24 0:08:03

我们今天写第一个spring程序

我们采用maven形式创建工程。

我们首先在pom.xml中加入引用。

<?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.0modelVersion>

    <groupId>org.examplegroupId>
    <artifactId>spring_demoartifactId>
    <version>1.0-SNAPSHOTversion> <properties> <maven.compiler.source>8maven.compiler.source> <maven.compiler.target>8maven.compiler.target> properties> <dependencies> <!-- 添加 json依赖 --> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-contextartifactId> <version>5.2.9.RELEASEversion> dependency> <!--https://mvnrepository.com/artifact/org.springframework/spring-core --> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-coreartifactId> <version>5.2.9.RELEASEversion> dependency> <!--https://mvnrepository.com/artifact/org.springframework/spring-beans --> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-beansartifactId> <version>5.2.9.RELEASEversion> dependency> <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --> <dependency> <groupId>commons-logginggroupId> <artifactId>commons-loggingartifactId> <version>1.2version> dependency> <dependency> <groupId>junitgroupId> <artifactId>junitartifactId> <version>RELEASEversion> <scope>testscope> dependency> dependencies> project> 

需要spring-context,spring-core,spring-beans,commons-logging。由于需要单元测试就加入了junit。

下面开始写代码

创建bean类

package Class04;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class YuanFactory {
    private static final Log LOGGER = LogFactory.getLog(YuanFactory.class);

    public YuanFactory() {
        LOGGER.info("YuanFactory Constructor");
    }

}

很简单构造函数打印一句log

在main下创建resources

选择Project Structure

 

选择resources文件夹,右键标记为Resources

  1. resources增加YuanBeans .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"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="YuanFactory" class="Class04.YuanFactory"/>

beans>

<bean id="YuanFactory" class="Class04.YuanFactory"/>

"Class04.YuanFactory"做了标识"YuanFactory"

  1. 我们写单元测试文件

public class Class04Test {
    @Test
    public void testYuanFactory(){
        ApplicationContext context = new ClassPathXmlApplicationContext("YuanBeans.xml");
        YuanFactory factory = (YuanFactory) context.getBean("YuanFactory");

    }
}

ClassPathXmlApplicationContext 会从resources的YuanBeans.xml读取注册的bean

我们可以通过context.getBean(id)获取到我们需要的bean。id就是我们在YuanBeans.xml注册的bean id。通过上面的代码,我们可以知道bean的创建不是我们自己通过new创建出来的,而是ClassPathXmlApplicationContext创建出来的啊。

执行单元测试文件可以看到输出

六月 30, 2023 10:44:32 上午 Class04.YuanFactory <init>
信息: YuanFactory Constructor

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

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

相关文章

(6)蜂鸣器(又称音调报警)

文章目录 6.1 使用有源蜂鸣器而不是无源蜂鸣器 6.2 安装蜂鸣器 6.3 使蜂鸣器安静 蜂鸣器&#xff08;或音调报警器&#xff09;可用于以声音指示飞行器的状态变化。根据电路板的能力&#xff0c;它可以是一个有源设备&#xff08;只需要施加电压来产生一个单一频率的音调&am…

给定一组数据样本,计算:【样本的平均值】, 【样本的标准差】, 【样本的变异系数】,【样本的标准误差】

一、指标含义 样本的平均值&#xff1a;指样本中所有数据的总和除以样本大小&#xff0c;是样本的中心趋势的度量。平均值常用于描述数据的集中程度&#xff0c;具有良好的代表性和易于计算的优点。 样本的标准差&#xff1a;指样本中每个数据与平均值的偏差的平方和的平均值的…

openssl版本升级与降级

openssl版本升级与降级 flyfish 环境 Ubuntu 22.04 1.1.1升级3.1.1 查看openssl版本 openssl versionOpenSSL 1.1.1t 7 Feb 2023https://www.openssl.org/source/ 编译和安装 ./config --prefix/usr/local/openssl311 make -j8 make install进入/usr/local/openssl311/l…

JavaWeb两大组件FILTERLISTENER

一.Filter&#xff1a;过滤器 是什么&#xff1a; 当访问服务器的资源时&#xff0c;过滤器可以将请求拦截下来&#xff0c;完成一些特殊的功能。 作用&#xff1a; 一般用于完成通用的操作。如&#xff1a;登录验证、统一编码处理、敏感字符过滤… 具体流程&#xff1a; 原始…

本地部署 FastChat

本地部署 FastChat 1. 什么是 FastChat2. Github 地址3. 安装 Miniconda34. 创建虚拟环境5. 安装 FastChat6. 使用命令行进行推理7. 使用 Web GUI 服务进行推理8. 使用 Lora 进行训练9. 其他 文章还在创作中。。。 1. 什么是 FastChat FastChat 是一个开放平台&#xff0c;用…

同步和异步、同步复位、异步复位、同步释放(Verilog、Verdi、DC综合)

文章目录 1.同步和异步2. 同步复位、异步复位、同步释放2.1 同步复位2.1.1 Verilog code2.1.2 Verdi waveform2.1.3 DC Synthesis 2.2 异步复位2.2.1 Verilog code 2.3 同步释放&#xff08;异步信号和CLK信号存在时序检查、Recover time&Removel time&#xff09;2.4 异步…

初识Docker:(7)查询Docker镜像的DockerFile

1. 前言 我们知道了根据dockerfile来制作镜像&#xff0c;如果给你一个现成的镜像&#xff0c;你能逆向查看出dockerfile吗&#xff1f; 否则&#xff0c;你怎么知道该镜像使用的是CMD还是ENTRYPOINT &#xff0c;使用的是shell格式还是CMD格式&#xff1f;由于格式决定了doc…

numpy反向传播算法示例

numpy反向传播算法示例 数据 通过 scikit-learn 库提供的便捷工具生成 2000 个线性不可分的 2 分类数据集 按着7: 3比例切分训练集和测试集 backpropagation.py #!/usr/bin/env python # encoding: utf-8 """ desc: 反向传播算法 """impor…

leetcode电话号码的字母组合C++实现教程

链接: 电话号码的字母组合 class Solution {char* PNumStr[10] {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};//因为每次都需要执行拷贝&#xff0c;…

了解嵌入式系统的不同细分领域:探索嵌入式BSP的定义

嵌入式BSP是指嵌入式系统中的板级支持软件。它是针对特定硬件平台的软件包&#xff0c;提供了操作系统和硬件之间的抽象层&#xff0c;以便开发人员可以更方便地使用硬件功能和编写应用程序。 嵌入式BSP的功能包括&#xff1a; 设备初始化和配置&#xff1a;BSP负责初始化硬件设…

学做测试平台开发-Vuetify 框架

Vuetify 是 Vue 的语义化组件框架&#xff0c;旨在提供整洁、语义化和可重用的组件&#xff0c;使得构建应用程序更方便。 Vuetify 核心是为了提供各种可重复使用的&#xff0c;即插即用并且适合各种项目规格的组件。 Vue 的语义成分。利用 Vue 的功能组件&#xff0c;所有基…

kubectl port-forward 指令

背景&#xff1a; 当K8s的Service类型为ClusterIP&#xff0c;不是NodePort&#xff0c;就只能集群内部访问&#xff0c;想在外部访问可以执行kubectl port-forward&#xff0c;将一个或多个本地端口转发到 Pod或者Service 作用&#xff1a; 做转发&#xff0c;将本地端口转发…

使用 fitter 拟合数据分布

一、简介 前面的文章中通过假设对比来检验样本是否服从泊松分布。得出的结论是总体分布不服从泊松分布&#xff0c;那么如何找到与总体分布最接近的分布呢&#xff1f;不可能一个个分布去验证。这里便可以用到 fitter 这个库。 fitter 是一个小型的第三方库&#xff0c;提供了…

【粉丝投稿】一文带你了解MySQL的左连接与右连接

前言&#xff1a; 昨天粉丝问了一个问题&#xff0c;因此本篇文章主要讲解MySQL的左连接和右连接的知识。该专栏比较适合刚入坑Java的小白以及准备秋招的大佬阅读。 如果文章有什么需要改进的地方欢迎大佬提出&#xff0c;对大佬有帮助希望可以支持下哦~ 小威在此先感谢各位小…

LeetCode——从上到下打印二叉树 II

题目来源 剑指 Offer 32 - II. 从上到下打印二叉树 II - 力扣&#xff08;LeetCode&#xff09; 题目 从上到下按层打印二叉树&#xff0c;同一层的节点按从左到右的顺序打印&#xff0c;每一层打印到一行。 示例 给定二叉树&#xff1a;[3,9,20,null,null,15,7] 返回其层…

vuex2实现时间列表选择器

目录 一、效果展示 二、代码分析 2.1、区域确定与坐标获取 2.2、单个点击与一次性点击 一、效果展示 主要借助自定义指令实现。在表格的"td们"上面进行移动框选&#xff0c;有一次性框选和单个框选&#xff0c;去掉自定义指令里的clearTargetNodes()会连续td,连…

Hudi学习5:Hudi的helloworld-编译源码

hudi是使用java代码编写的 部署hudi 1. 下载源码 Download | Apache Hudi https://dlcdn.apache.org/hudi/0.13.1/hudi-0.13.1.src.tgz 2.编译 安装maven 首先要先有JDK java8以上 配置镜像源 执行编译 测试

Yolov5小目标性能提升方案介绍

目录 1.小目标检测介绍 1.1 小目标定义 1.2 难点 2.小目标难点解决方案 2.1注意力提升小目标检测精度 2.1.1 上下文信息CAM 2.1.2 ConvNeXt 2.1.3 ECVBlock 2.1.4 多头上下文集成&#xff08;Context Aggregation&#xff09;的广义构建模块 2.2 多头检测头 2.3 loss优化…

spring 在容器中一个bean依赖另一个bean 需要通过ref方式注入进去 通过构造器 或property

spring 在容器中一个bean依赖另一个bean 需要通过ref方式注入进去 通过构造器 或property

Go语言net模块TCP和UDP编程实践

任何一种语言TCP和UDP网络编程总是必须的&#xff0c;接下来就将go语言中使用net标准库进行TCP和UDP编程进行梳理总结。 目录 1.代码结构 2.TCP通信 3.UDP通信 4.TCP模拟HTTP协议通信 5.利用TCP扫描那些端口被占用 1.代码结构 2.TCP通信 server.go package mainimport …