JavaEE简单示例——Spring的入门程序

news2024/11/18 17:30:01

简单介绍:

在之前我们简单的介绍了有关于Spring的基础知识,那么现在我们就来一步步的把理论融入到实践中,开始使用这个框架,使用过程也是非常的简单,大致可以分为几个基础的步骤:

1.首先引入Spring的Maven坐标

2.编写Java的实体类

3.编写Spring的XML的Bean管理配置文件

4.编写测试类进行测试

在前期的入门程序中,我们主要介绍的是Spring的IoC,也就是控制反转,这里先简单的介绍一下控制反转的概念,控制反转主要用来创建和管理Bean,Bean指的就是我们的Java类,那么控制反转的基本理念指的是我们不用自己创建对象,而是从IoC容器中获取对象。

这个概念可能会很抽象,但是当我们编写完入门程序之后,我们会发现其实这个过程在实际操作起来非常的简单,接下来我们就开始一步一步的完成我们的入门程序

使用方法:

1.首先是引入我们的Spring的Maven坐标:

<dependency><!--Spring IOC-->
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.21.RELEASE</version>
</dependency>

我们把上面的坐标信息复制到pom.xml文件中然后刷新依赖之后,我们的外部依赖中会出现这些jar包:

 

如果出现了这些jar包,那么就说明Spring的依赖已经成功引入了

2.然后我们就来创建Java类:

package com.spring;

public class user {
    private int id;
    private String name;

    public void show(){
        System.out.println("你好"+name);
    }

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

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public user(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public user() {
    }
}

 这就是一个基本的JavaBean,然后进入我们的第三步:

3.编写Bean管理配置文件:

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

    <bean id="user" class="com.spring.user">
        <property name="id" value="1"/>
        <property name="name" value="张三"/>
    </bean>
    
</beans>

 我们可以先简单的解释一下这些标签的作用,<beans>根标签表示这是一个Spring的Bean管理配置文件,然后<bean>对应一个Java类,id表示这个类的别名,class指向的是我们要创建的类的全类名,property表示我们要复制的对象,value表示我们要赋值的值,这些属性和标签我们在后面会进行更详细的讲解,现在我们只需要有一个大致的印象即可。

然后第四步,就是开始编写我们的测试类:

import com.spring.user;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestUser {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("userBeanContext.xml");
        user u = (user) context.getBean("user");
        System.out.println(u.toString());
    }
}

我们看到有一个新的类叫做ClassPathXmlApplicationContext(),这个类就是我们所说的IoC容器,我们的对象就是通过这个容器获得的,她的参数就是我们刚才编写的Bean管理文件,它通过解析我们的XML配置文件,得到这些信息之后,可以通过我们编写的信息,帮助我们创建和管理Bean类,那么如果获得对象,就是通过getBean()方法的方式,这个方法的参数就是我们XML配置文件中的id的值,通过id找到对应的class指向的类,然后创建出对应的对象,我们就可以得到我们想要的对象。  

运行结果:

如果我们配置正确,我们就可以很顺利地通过IoC得到user的对象 

注意点:

在编写完成我们的入门程序之后,我们回头去看一下我们之前说过的控制反转的理论,控制反转的基本理念指的是我们不用自己创建对象,而是从IoC容器中获取对象。那么这句话的意思在代码中的标签其实非常的简单,就是将我们之前手动的去new对象的过程,替换成我们的getBean()方法的过程,在入门程序中我们也可以非常明显的看出来,我们并没有new user()的过程,却也得到了user的对象,那么这个user对象就是通过我们的getBean()方法得到的,这就是我们所说的控制反转,将对象的创建和管理的权力,由我们控制反转到了由IoC框架帮我们控制。

这个概念我们会会在后面多次提及,所以此处如果不理解可以在后面的操作中慢慢的体会其中的好处和优势。

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

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

相关文章

TypeScript深度剖析:TypeScript 中泛型的理解?应用场景?

一、是什么 泛型程序设计&#xff08;generic programming&#xff09;是程序设计语言的一种风格或范式 泛型允许我们在强类型程序设计语言中编写代码时使用一些以后才指定的类型&#xff0c;在实例化时作为参数指明这些类型 在typescript中&#xff0c;定义函数&#xff0c;…

一文快速入门 HTML 网页基础

专栏简介: 前端从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1.HTML 结构 1.1. 认识 HTML 标签 1.2 HTML 文件结构…

[MySQL核心]1.表操作

MySQL核心--表操作表操作一表操作二&#xff08;CRUD操作&#xff09;表操作一 创建表 比较规范的写法&#xff0c;关键字应该要大写&#xff0c;其他比如表名&#xff0c;字段这些自定义的可以小写 ENGINEINNODB DEFAULT CHARSETutf8 指定存储引擎以及默认的字符集&#xff0c…

04-CSS

一、其他样式 1、圆角边框在 CSS3 中&#xff0c;新增了圆角边框样式&#xff0c;这样我们的盒子就可以变圆角了。border-radius 属性用于设置元素的外边框圆角。语法&#xff1a;border-radius:length;参数值可以为数值或百分比的形式如果是正方形&#xff0c;想要设置为一个圆…

IBM ILOG CPLEX Optimization Studio 22.1 Crack

BM ILOG CPLEX 优化工作室 建立和解决复杂的优化模型以确定最佳行动 通过数据科学改变您的业务决策 IBM ILOG CPLEX Optimization Studio 使用决策优化技术来优化您的业务决策&#xff0c;快速开发和部署优化模型&#xff0c;并创建可显着改善业务成果的真实应用程序。 如何&…

ROS 摄像头的使用

参考&#xff1a; ​ youtubeArticulated Robotics ​ 作者Josh Newans博客 建议&#xff1a; 这个只是我的看法&#xff0c;强烈建议看原视频或博客 png&#xff1a;无损压缩 jpeg&#xff1a;有损压缩 Driver Node 负责连接硬件设备&#xff0c;读取摄像头数据"ima…

Learning C++ No.13【STL No.3】

引言&#xff1a; 北京时间&#xff1a;2023/3/7/15:33&#xff0c;还有27分钟就要去上课啦&#xff01;刚刚把最近因为考试原因欠的课给还干净了&#xff0c;已经准备好今天晚上接受航哥的毒打了&#xff0c;毒打就毒打&#xff0c;咱不怕&#xff0c;只要不欠钱&#xff0c;…

小黑子—Java从入门到入土过程:第一章

Java零基础入门1.0Java系列第一章1. cmd2. 利用cmd打开qq并配置环境变量3. Java概述和学习方法4. JDK下载和安装5. hello world 小案例6. bug常见小问题7. 环境变量8. Notepad9. java 语言的发展10. java 能干什么10.1 javaSE10.2 javaME10.3 javaEE11. java为什么火12. java为…

什么是激励能力?HR人才测评

什么是激励能力&#xff1f;激励能力主要是针对管理型岗位而言的&#xff0c;尤其是团队型管理&#xff0c;既要督导团队成员&#xff0c;更需要掌握激励下属的方法和技巧。在HR人才测评系统中&#xff0c;对于管理型岗位的人才测评指标&#xff0c;通常也会包含激励能力&#…

蓝牙耳机哪款佩戴舒服?2023佩戴最舒适蓝牙耳机

由于每天坐在电脑桌前的时间比较长&#xff0c;需要音乐和运动调剂一下自己&#xff0c;而说到与蓝牙耳机&#xff0c;大家更加关注的是音质和佩戴舒适度吧&#xff0c;作为一位音乐发烧友&#xff0c;使用过的耳机数不胜数&#xff0c;接下来跟大家分享一下我的体验感受。 第…

关于供应链,一文教你全面了解什么是供应链

什么是供应链&#xff1f;供应链是指产品生产和流通过程中所涉及的原材料供应商、生产商、分销商、零售商以及最终消费者等成员通过与上游、下游成员的连接 (linkage) 组成的网络结构。也即是由物料获取、物料加工、并将成品送到用户手中这一过程所涉及的企业和企业部门组成的一…

CH4-流程控制之for循环结构: 打印三3种三角形图案(代码+详细注释+知识点总结

建议学习方法&#xff1a;不会可以参考代码和视频进行学习&#xff0c;学会举一反三&#xff0c;三角形很多种变形题目&#xff0c;学会自己敲代码&#xff1b; 本文章内容建议参考后&#xff0c;自己默写和理解敲代码&#xff01;不要偷懒哦&#xff01; 刚刚起步&#xff0c;…

AM5728(AM5708)开发实战之调试DP83822 LED

一 LED寄存器分析 MLEDCR即Multi-LED Control Register,地址为0x0025 MLEDCR[1:0]设置MLED路由功能,具体如下所示: 0x00表示MLED功能路由到COL(PIN29) 0x03表示MLED功能路由到LED_0(PIN17) 从上述信息可知,DP83822芯片只有COL(PIN29)和LED_0(PIN17)才可以配置成MLED功能 …

手把手演示Ngnix+Tomcat实现动静分离

前言 大家好&#xff0c;又见面了&#xff0c;我是沐风晓月&#xff0c;本文首发于csdn作者:我是沐风晓月 的【运维系列-系统服务与架构】专栏&#xff0c;专栏还在持续更新中&#xff0c;欢迎关注。 此专栏是沐风晓月对操作系统中常见的服务进行总结&#xff0c;希望能够加深…

【专项训练】泛型递归、树的递归

递归和循环没有明显的边界! 不要进行人肉递归! 找最近重复子问题,直接写递归! 数学归纳法思维:1,2,…… 70. 爬楼梯 https://leetcode.cn/problems/climbing-stairs/ 互斥,且加在一起是全部答案! 动态规划法:用数组做递推,就是动态规划!!! class Solution

k8s-Kubernetes--pod管理-基本操作

文章目录前言一、简介一些简单的入门小命令二、pod基本操作1.pod创建2.pod删除&#xff0c;查看日志三、service和deployment(控制器)1.deployment基本操作2.Pod扩容与缩容3.expose暴露端口3.1ClusterIP默认类型暴露端口3.2 NodePort类型暴露端口4.升级pod镜像/应用版本5.回滚6…

萤火虫算法优化SVM变压器故障分类预测,fa-svm分类预测,libsvm参数优化

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 SVM应用实例,基于fa-svm分类预测 代码 结果分析 展望 支持向量机SVM的详细原理 SVM的定义 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是…

Android Studio无法启动,Failed to create JVM:error code -1. JVM Path 完美解决方案

一、背景 很久没有启动过Android studio了,今天突然需要,却打不开了,报错如下,因此记录下我的解决办法,希望能帮到更多朋友! 二、过程 刚开始以为时java的环境变量问题,配置好java环境变量依然不行,所以大家不必折腾了。 后面经过一片博文的启发,https://blog.csdn.ne…

信息系统分析与设计——信息、管理与信息系统

&#x1f31f;所属专栏&#xff1a;信息系统分析与设计&#x1f414;作者简介&#xff1a;rchjr——五带信管菜只因一枚&#x1f62e;前言&#xff1a;该系列将持续更新信息系统分析与设计课程的相关学习笔记&#xff0c;欢迎和我一样的小白订阅&#xff0c;一起学习共同进步~&…

SpringBoot学习笔记(四)Web开发

在之前我们的项目都是以jar包结尾的&#xff0c;没有放webapp的地方。springboot最大的特点&#xff1a;自动装配&#xff0c;创建应用&#xff0c;选择模块导入starter&#xff0c;只需要专注于业务代码springboot到底帮我们配置了什么&#xff0c;我们能不能修改&#xff1f;…