Spring系列-(2)HelloWorld的基本构成

Spring入门到精通:第一章 基础入门:2.Spring之HelloWorld 前言 这一节我们使用Spring框架来编写一个简单的例子,无hello不框架。 环境说明 (1)JDK 1.8 (2)开发工具:IntelliJ IDEA (3)maven:3.x 一、Spring开发说明 1.1 Spring使用方式 常见的有3中方式: (1)jar包方式; (2)maven/gradle方式; (2)Spring Boot方式; 这里Spring Boot不是我们这节的重点,所以采用maven的方式进行学习,... 阅读详情

Spring系列 -(2)HelloWorld的基本构成

前言

上次演示了SpringIOC的基本用法,这次咱来一起探究一下SpringIOC中都有什么内容组成的

1.pom.xml

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId>
    <version>5.2.2.RELEASE</version> 
</dependency>

这个不用过多解释,就是导入Spring所需要的jar包

2.Hello.java

public class Hello {
    private String name;
    private String context;

    public Hello() {
    }

    public Hello(String name, String context) {
        this.name = name;
        this.context = context;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getContext() {
        return context;
    }

    public void setContext(String context) {
        this.context = context;
    }

    @Override
    public String toString() {
        return "Hello{" +
                "name='" + name + '\'' +
                ", context='" + context + '\'' +
                '}';
    }
}

这是一个普通的javaBean类,目的就是为了在创建对象时不通过直接new的方式而是通过IOC容器去获取

3.bean.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 https://www.springframework.org/schema/beans/spring-beans.xsd> 
<context:component-scan base-package="java"></context:component-scan>
   <bean id="hello" class="Hello"> 
       <property name="name" value="adai"></property> 
       <property name="context" value="hello"></property>
   </bean> 
 </beans>

这个是Spring的配置文件,补充一下昨天写欠的部分,要加上一句<context:component-scan base-package="java"></context:component-scan>,Spring有两种实现方式,一种是基于注解实现,一种是基于xml配置文件实现,这个bean.xml就是Spring实现的配置文件

<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 https://www.springframework.org/schema/beans/spring-beans.xsd> 
</beans>

这一段是导入命名空间,你xml里面用到了什么标签就要导入对应的命名空间

<context:component-scan base-package="java"></context:component-scan>
<bean id="hello" class="Hello"> 
       <property name="name" value="adai"></property> 
       <property name="context" value="hello"></property>
</bean> 

这一段是bean标签和context标签,context标签里有一个base-package,这是包扫描,意思就是你要扫描哪个包下的类,被扫描到的这些包下的类,在bean标签里面的class就可以只写类名不用写全称,比如下图,我想用java包下的那几个类,那么我可以写base-package="java"这样,你在bean标签的class里面就不用加上java包。
在这里插入图片描述
接下来说说bean标签,bean标签比较复杂,里面可以传很多个值,这里先简单说下上面传的值,后续再跟大家说说别的值

<bean id="hello" class="Hello"> 
       <property name="name" value="adai"></property> 
       <property name="context" value="hello"></property>
</bean> 

首先,bean标签里有id和class两个值,class就是类名,当你要用IOC创建一个对象时,你就需要把要创建的对象的类名写给class,前提是你要有上面说的包扫描,就可以直接写类名,如果没有包扫描,那么就需要把全类名都写进去,id可以取任意,但一般都是把类名的首写字母改为小写作为id。然后可以看到bean标签里面还有两个property子标签,在文中,property传入了两个值,一个是name一个是value,name值就是你要赋给类里哪个属性的属性名,value就是属性的值,比如Hello里面有个name属性,那么就可以写name="name",前一个name是property的name值,后一个name是Hello类的name属性,value是adai。

4.测试类

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Mytest {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        Hello hello = `context.getBean("hello", Hello.class);`
        String context1 = hello.getContext();
        String name = hello.getName();
        System.out.println(context1);
        System.out.println(name);
    }
}

最后说说测试类

ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");

这一句是最关键的,new了这个ClassPathXmlApplicationContext类,并且传入bean.xml的参数,就可以取到一个类型为ApplicationContext的对象,这里用了多态更加的灵活,至此,bean.xml里的所有bean标签都已经被初始化了,就算后面没有用到,IOC也已经帮你初始化了,然后再通过调用context里的getBean方法并且传入刚才bean标签里面的id的值还有要创建的类.class,就可以获取到你刚才bean标签里面的属性的值,比如context.getBean("hello", Hello.class)这里返回的类型就是Hello类型,并且这个hello对象里面的name和context属性就已经有我们刚才在bean标签里面所赋的value的值了
其实看到这里,很多人有疑问不是说不用new吗,这里不就有一个new创建对象吗,那不也一个样吗,确实,如果当你只创建一个类时确实看不出什么,但是当你有很多类要创建的时候,你就可以只创建一个ApplicationContext的对象,然后通过对象.getBean的方法获取对象。

总结

ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");

这一步很重要,没有这一步就没办法加载bean,后面讲源码的时候也是从这一步切入的,bean标签里面也有很多学问,以后我会慢慢跟大家分享我所了解的Spring,学Spring有时候很枯燥,但是坚持下去会得到意想不到的收获的,一起加油

【Spring Boot】第一个Spring Boot项目:helloworld 本节从简单的helloworld程序开始介绍创建Spring Boot项目的方法和流程,以及Spring Boot项目结构,最后介绍项目中非常重要的pom.xml文件。 阅读详情

相关推荐

Spring框架基础入门:spring-helloworld项目实践

Spring框架起源于2003年,是Rod Johnson在其著作《Expert One-to-One J2EE Design and Development》中提出的一种革命性的轻量级容器设计概念。Spring的核心理念是简化企业级应用开发,通过依赖注入(DI)和面向切面编程(AOP)等核心特性,将程序的业务逻辑与系统服务分离,从而提高代码的模块化和可测试性。

weixin_42452924的博客 951

2.Spring系列之HelloWorld

一、前言 每门技术最不可或缺的就是HelloWorld入门程序,所以在这里老样子的给出HelloWorld Demo ! 二、准备工作 注意:本人习惯使用Eclipse进行开发工作,所以这里的IDE统一使用Eclipse。 1.下载Spring Tool Suite 它是一个Eclipse插件,利用该插件可以更方便的在Eclipse上开发基于Spring的应用 ...

109

Tailscale 自建 DERP 中继服务器

Tailscale自建DERP中继服务器

Accompagner的博客 4322

从HelloWorld看Spring的基本原理

之前没有记录spring的相关学习笔记,打算现在开始补充这部分内容。今天就来分享下HelloWorld中的Spring的基本用法。 下面先来看我们写的HelloWorld类: 1.HelloWorld的基本语法 public class HelloWorld { private String name; public void setName2(String name) { thi...

Zhtt的博客 212

不用FFmpeg!纯前端实现RTSP直播的3种现代方案对比(WebSocket/Wasm/WebCodecs)

本文深入探讨了纯前端实现RTSP直播的三种现代技术方案:WebSocket代理转发、Wasm解码和WebCodecs硬解。通过详细的架构设计、性能实测数据和兼容性分析,帮助开发者在安防监控、智慧城市等场景中选择最佳方案,实现低延迟、高效率的视频流处理。

lilh34434的博客 231

MAX96712在车载摄像头系统中的带宽分配与传输能力计算解析

在计算摄像头带宽与传输接口的关系时,需要考虑视频流的像素分辨率、帧率、颜色深度等因素。以 MAX96712 这种 GMSL2 产品为例,它支持每个链路在正向方向以 3Gbps 或 6Gbps 的固定速率工作。

weixin_43199439的博客 3324

在IntelliJ IDEA上使用Maven创建Spring项目HelloWorld

因为IDEA自带Maven插件,所以使用IDEA是不需要在下载Maven的文件的,也可使用自己下载的Maven。Spring我们则是通过Maven来下载构建,所以不需要下载jar包的。 大神勿喷,请自行绕道,本博客面向第一次接触spring的小白。刚学习Spring ,请赐教。 开始搭建第一个项目并使用Spring的bean实现HelloWorld在控制台的输出 1.点击File---New

IT业的爬虫的博客 2万+

FreeSWITCH实战:5分钟搞定阿里云SDM(MRCP-SERVER)语音机器人搭建(含Docker部署技巧)

本文详细介绍了如何利用FreeSWITCH与阿里云SDM(MRCP-SERVER)快速搭建高可用语音机器人,包括Docker部署技巧、系统调优及高可用架构设计。通过实战案例和优化建议,帮助开发者5分钟内完成部署,提升语音交互系统的性能和稳定性。

stone的博客 502

Spring学习 之 Helloworld

Spring学习 之 Helloworld 简单的记录一下 简单了解一下Spring框架 The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. A key element of Spring is infrastructural su

unwrapping的博客 592

2023电赛B题实战解析:基于立创天空星开发板的同轴线缆长度与负载测量系统

本文详细解析了2023年全国大学生电子设计竞赛B题的实战方案,重点介绍了基于立创EDA天空星开发板(STM32F103)的同轴线缆长度与负载测量系统。文章深入剖析了两种核心测量方案,并推荐了更稳定易实现的NE555测电容法,提供了从硬件选型、电路设计到软件编程、参数标定的完整“施工图”,实测精度可达厘米级和皮法级,为电赛复现与高精度测量学习提供了清晰指导。

weixin_36303305的博客 230

Office系列完全干净卸载工具合集(最全)

使用 Microsoft Fix it 卸载 Microsoft Office 套件 一、Windows 7、Windows Vista或Windows XP下卸载Office 1.MicrosoftEasyFix50416 工具用来卸载office 2003 MicrosoftEasyFix50416_Office2003.msi 2.MicrosoftEasyFix50154 工具用来卸载office 2007 MicrosoftEasyFix50154_Office2007.msi 3.Microso

业精于勤,荒于嬉 3万+

晋南讲堂之Spring—(一)HelloWorld

Spring是一款轻量级的IOC和AOP框架

衣人之衣者,怀人之忧;食人之食者,死人之事! 4431

Windows窗口编程中的WM_PAINT、WM_ERASEBKGND、InvalidateRect、UpdateWindow、BeginPaint和EndPaint等函数详解

Windows窗口编程中的WM_PAINT、WM_ERASEBKGND、InvalidateRect、UpdateWindow、BeginPaint和EndPaint等函数详解

dvlinker的技术专栏 7165

Eclipse中Spring环境配置以及跑个Helloworld

对于Spring,刚开始配置是很烦的,但是编了几个程序后就不会感觉那么难配置 了。 今天我们来讲讲怎么搭建Spring环境以及跑一个HelloWorld。 一、Spring环境配置 1、离线安装Spring的jar包 百度搜索springsource-tool-suite-3.7.2.RELEASE-e4.5.1-updatesite下载下来,不用解压哦,记住下载到哪里,等会用到的哦。 ...

辉之素狂 1万+

Python进阶005:修改Jupyter Notebook的工作路径

1、Jupyter Notebook简介 2、修改Jupyter Notebook的工作路径 如下三个步骤: 一、安装notebook 在CMD命令行中输入: pip install notebook 二、启动notebook jupyter notebook 启动后发现是在你的用户目录下,如下图所示,但是该目录下有很多的其他文件或文件夹,因此我想把这个环境切换到我单门创建的一个文件夹中。 三、创建notebook的配置文件 在CMD命令行中执行: jupyter notebook --genera

若北辰 1384

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Eclipse安装spring-tools和helloWorld案例

环境准备: 下载zip包:https://spring.io/tools3/sts/all/ 如下zip包下载下来 安装插件 Help ==>Install New SoftWare 如下点击Archive选择下载好后的zip包 如下选择即可 然后后面的同意协议什么的一路next最后finish即可 然后在窗口右下角有进度条进行安装插件,等待弹窗。最后会要求你重启ec...

诗水人间 14万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Spring编写helloworld

Spring编写HelloWorld导包配置文件测试 导包 通过ioc容器获取相应的类文件,所以需要导入spring的ioc相应的四个包 spring-beans spring-context spring-core spring-expression 还有一个是commons-logger包,自认为可以不需要进行导入,但是不导入是会出错的,所以还是乖乖的导入吧 配置文件 可以直接创建xml文件然后在beans标签中进行xmlns xmlns:xsi xsi:schemaLocation,也可以在下载完s

weixin_44117861的博客 262

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Spring HelloWorld

具体描述 Spring: 轻量级:Spring 是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API 依赖注入(DI --- dependency injection、IOC) 面向切面编程(AOP --- aspect oriented programming) 容器: Spring 是一个容器, 因为它包含并且管理应用对象的生命周期 框架:

From_Here的博客 409

Spring实战 | 番外篇: 搭建Spring环境实现helloworld、Bean配置、Spring容器

一、IntelliJ IDEA搭建Spring环境,实现helloworld 二、spring简介 三、配置形式 四、bean的配置方式 五、IOC和DI 六、在Spring的IOC容器里配置bean 七、关于ApplicationContext的介绍 八、依赖注入的方式 九、Spring容器 一、IntelliJ IDEA搭建Spring环境,实现helloworld ...

学Java,找哪吒 2197

从Spring源码看Spring是如何实现HelloWorld

Spring源码硬核解析,从HelloWorld深入Spring源码,了解Spring的底层实现原理与实现。

lyztyycode的博客 905

Spring框架-使用 Spring 框架 实现 HelloWorld 输出

最近几天在学习Spring框架,网上找了好多教程,都出现各种各样的错误,最后自己摸索了一天,终于安装成功了,把过程记录一下。 可能你已经学习了Java语言,而现在刚接触Spring框架,但是什么都不会,建议看我的教程,我这以最简单的方式,向大家介绍实现helloworld的方法 如果出现哪一步卡住了,或者和我截图不一样的情况,请评论或者私我 如果出现哪一步卡住了,或者和我截图不一样的情...

Designer 小郑的技术博客 1702

Spring系列第3篇:Spring容器基本使用及原理

Spring系列第3篇:Spring容器基本使用及原理 #Spring高手系列 50个 环境 jdk1.8 idea maven-3.6.1 spring-5.2.3.RELEASE IOC容器 IOC容器是具有依赖注入功能的容器,负责对象的实例化、对象的初始化,对象和对象之间依赖关系配置、对象的销毁、对外提供对象的查找等操作,对象的整个生命周期都是由容器来控制。我们需要使用的对象都由ioc容器进行管理,不需要我们再去手动通过new的方式去创建对象,由ioc容

wangzhipeng47的博客 131

spring之helloWorld实现

beans.xml文件 //spring根据类HelloWorld来new一个helloWorld对象,根据id来去对象 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3....

qq_40135955的博客 525

【Spring温故】1.Spring概述及Spring HelloWorld

一、什么是Spring? 二、Spring框架组件都有哪些内容? 三、Spring HelloWorld。 1、创建一个maven工程,选择new-》project-》maven-》maven-archetype-quickstart; 2、输入GroupId:如com.monkey.yb ,ArtifactId:如spring,一直next到finish(注意设定mave...

monkey_怡宝的博客 763

快速上手Spring--2.HelloWorld(1)

作者tag:java spring 优快云 推荐tag:com eclipse framework hibernate ui win32 xml 软件 function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelect

陈杰的专栏 1499

spring mvc helloworld

Spring学习笔记——Spring MVC的简单实例 开发环境:MyEclipse,Spring2.0 (1)新建一个WebProject,命名为myApp,导入所需要的jar包: 在工程名上点右键-->BuildPath-->ConfigureBuildPath-->Libraries-->Add External Jars,导入spring.jar,commons-

tango991820的专栏 3294
上一篇: Spring系列-(1)Spring入门
下一篇: 经典算法(1)-冒泡排序
磕瓜子
博客等级 码龄6年 3粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值