spring创建与使用

spring创建与使用

  • 创建 Spring 项⽬
    • 创建⼀个 Maven 项⽬
    • 添加 Spring 框架⽀持
    • 添加启动类
  • 存储 Bean 对象
    • 创建 Bean
    • 将 Bean 注册到容器
  • 获取并使⽤ Bean 对象
    • 创建 Spring 上下⽂
    • 获取指定的 Bean 对象
      • 获取bean对象的方法
    • 使⽤ Bean
  • 总结

创建 Spring 项⽬

接下来使⽤ Maven ⽅式来创建⼀个 Spring 项⽬,创建 Spring 项⽬和 Servlet 类似,总共分为以下 3步

创建⼀个 Maven 项⽬

在这里插入图片描述

添加 Spring 框架⽀持

在项⽬的 pom.xml 中添加 Spring 框架的⽀持
在这里插入图片描述

添加启动类

最后在创建好的项⽬ java ⽂件夹下创建⼀个启动类,包含 main ⽅法即可

public class App {public static void main(String[] args) {}
}

存储 Bean 对象

存储 Bean 分为以下 2 步

  1. 存储 Bean 之前,先得有 Bean 才⾏,因此先要创建⼀个 Bean
  2. 将创建的 Bean 注册到 Spring 容器中

创建 Bean

所谓的 Bean 就是 Java 语⾔中的⼀个普通对象,实现代码如下

public class Student {public Student(){System.out.println("init Student");}public void Sayhi(){System.out.println("hello spring");}
}

将 Bean 注册到容器

在创建好的项⽬中添加 Spring 配置⽂件 spring-config.xml,将此⽂件放到 resources 的根⽬录下,如下图所示
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/3e56dea0781c446881cd10a849f83469.png

Spring 配置⽂件的固定格式为以下内容

<?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:content="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
</beans>

接下来,再将 User 对象注册到 Spring 中就可以,具体操作是在 中添加如下配置

<bean id="student" class="Student"></bean>

获取并使⽤ Bean 对象

获取并使⽤ Bean 对象,分为以下 3 步

  1. 得到 Spring 上下⽂对象,因为对象都交给 Spring 管理了,所以获取对象要从 Spring 中获取,那么就得先得到 Spring 的上下⽂
  2. 通过 Spring 上下⽂,获取某⼀个指定的 Bean 对象
  3. 使⽤ Bean 对象

创建 Spring 上下⽂

Spring 上下⽂对象可使⽤ ApplicationContext,实现代码如下

//得到 Spring 的上下⽂对象,创建的时候需要配置 Spring 配置信息
ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");

除了 ApplicationContext 之外,我们还可以使⽤ BeanFactory 来作为 Spring 的上下⽂,如下代码所示

BeanFactory beanFactory=new XmlBeanFactory(new ClassPathResource("spring-config.xml"));

ApplicationContext 和 BeanFactory 效果是⼀样的,ApplicationContext 属于 BeanFactory 的⼦类,它们的区别如下

  • 继承关系和功能⽅⾯来说:Spring 容器有两个顶级的接⼝:BeanFactory 和ApplicationContext。其中 BeanFactory 提供了基础的访问容器的能⼒,⽽ ApplicationContext属于 BeanFactory 的⼦类,它除了继承了 BeanFactory 的所有功能之外,它还拥有独特的特性,还添加了对国际化⽀持、资源访问⽀持、以及事件传播等⽅⾯的⽀持
  • 从性能⽅⾯来说:ApplicationContext 是⼀次性加载并初始化所有的 Bean 对象,⽽BeanFactory 是需要那个才去加载那个,因此更加轻量

获取指定的 Bean 对象

Student student=(Student) context.getBean("student");

获取bean对象的方法

Bean 的 Id 要⼀⼀对应,如下图所示
在这里插入图片描述

getBean() ⽅法有很多种重载⽅法,我们也可以使⽤其他⽅式来获取 Bean 对象,⽐如以下这两种:根据类型获取 Bean:

Student student=context.getBean(Student.class);

名称 + 类型获取 Bean:

Student student=context.getBean("student",Student.class);

使⽤ Bean

public class App {public static void main(String[] args) {//获取spring对象ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");//获取beanStudent student=context.getBean("student",Student.class);//名称+类型//使用beanstudent.Sayhi();}
}

在这里插入图片描述

总结

  1. 操作容器之前,先要有容器,所以先要得到容器
  2. 存对象:创建 Bean(普通类);将 Bean 注册(配置)到 spring-confing.xml 中
  3. 取对象:得到 Spring 上下⽂,并读取到 Spring 的配置⽂件;获取某⼀个 Bean 对象;使⽤ Bean 对象

操作流程如下图所示:
在这里插入图片描述

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

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

相关文章

简写英语单词

题目&#xff1a; 思路&#xff1a; 这段代码的主要思路是读取一个字符串&#xff0c;然后将其中每个单词的首字母大写输出。具体来说&#xff0c;程序首先使用 fgets 函数读取一个字符串&#xff0c;然后遍历该字符串中的每个字符。当程序遇到一个字母时&#xff0c;如果此时…

Django开发3

Django开发3 Django开发编辑用户9.靓号管理9.1 表结构9.2 靓号列表9.3 新建靓号9.4 编辑靓号9.5 搜索手机号9.6 分页 10.时间插件11.ModelForm和BootStrap操作 各位小伙伴想要博客相关资料的话关注公众号&#xff1a;chuanyeTry即可领取相关资料&#xff01; Django开发 部门管…

系统功能测试的最好方法

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 测试系统功能是软件开发和工程过程中的关键步骤。 它确保系统或软件应用程序按预期运行、满足用户要求并可靠运行。 在这里&#xff0c;我们深入探讨最佳方法&a…

软件测试/测试开发丨Linux进程与线程学习笔记

1、进程 可执行程序的运行态操作系统调度的基本单位线程容器进程本身包含指令、数据等资源 2、 线程 进程中被执行的最小单元cpu 调度的基本单位线程带有指令、数据等资源 3、 进程的生命周期 如执行sleep 100或者执行一个python脚本 创建&#xff1a;created sleep 100 ./…

JavaScript的三种引入的方式

目录 (一).什么是JS1.1JS的特点1.2JS的组成 (二).JS引用的三种方式2.1标签引用&#xff08;或嵌入式)2.2文件引用&#xff08;外链式&#xff09;2.3行内式 (三).JS三种引用方式的优缺点1.行内方式&#xff1a;2.标签引用&#xff08;或嵌入式&#xff09;&#xff1a;3.文件引…

48、激活函数 - 梯度消失和梯度爆炸

简单介绍下梯度消失和梯度爆炸,这个不是重点,但是我觉得有必要再深入了解这个概念,以及很多激活函数为什么是可以防止梯度消失的。 梯度消失和梯度爆炸实际上是在神经网络训练过程中经常会遇到的两类问题,这两类问题都与梯度有关。 什么是梯度 在神经网络训练中,梯度是指…

将学习自动化测试时的医药管理信息系统项目用idea运行

将学习自动化测试时的医药管理信息系统项目用idea运行 背景 学习自动化测试的时候老师的运行方式是把医药管理信息系统项目打包成war包后再放到tomcat的webapp中去运行&#xff0c;于是我想着用idea运行会方便点&#xff0c;现在记录下步骤方便以后查找最开始没有查阅资料&am…

vue脚手架安装

1、安装&#xff1a; npm i vue/cli -g(-g全局安装,全名global) vue --version 查看版本号 2、使用 vue create 项目名称 3、安装选择项 最后一个选N

笔记本安装Centos Stream9系统的详细安装教程-第二版

笔记本安装Centos Stream9系统的详细安装教程-第一版&#xff1a; 笔记本安装Centos Stream9系统的详细安装教程_u盘安装centos 9-CSDN博客文章浏览阅读298次。笔记本安装Centos Stream9系统的详细安装教程 U盘刻录工具_u盘安装centos 9https://blog.csdn.net/wtl1992/article…

UnityShader(四)一个最简单的顶点/片元着色器

目录 顶点/片元着色器的基本结构&#xff1a; 简单的例子 增加模型数据 顶点着色器和片元着色器之间的通信 顶点/片元着色器的基本结构&#xff1a; Shader "MyShaderName"{Properties{//属性}SubShader{//针对显卡A的SubShaderPass{//设置渲染状态和标签//开始C…

VMware虚拟机和Centos7镜像安装

文章目录 安装VMware虚拟机1、下载2、激活 安装Centos7镜像启动虚拟机 安装VMware虚拟机 1、下载 建议还是安装16版本 VMware16下载 https://www.123pan.com/s/HQeA-aX1Sh VMware15 链接&#xff1a;https://pan.baidu.com/s/11UD1hb6IydbxNNPxmh-MqA?pwd0630 提取码&am…

Kasada p.js (x-kpsdk-cd、x-kpsdk-ct、integrity)

提供x-kpsdk-cd的API服务 详细请私信~ 可试用~ V:zhzhsgg 一、简述 integrity是通过身份验证Kasada检测机器人流量后获得的一个检测结果&#xff08;数据完整性&#xff09; x-kpsdk-cd 是经过编码计算等等获得。当你得到正确的解决验证码值之后&#xff0c;解码会看到如下图…