[JAVAee]Spring项目的创建与基本使用

目录

Spring项目的创建

Spring中Bean对象的存储与获取

存储Bean对象

获取并使用Bean对象

 getBean方法的重载


 本文章介绍了Spring项目创建与使用的过程与一定的注意事项.

Spring项目的创建

首先在IDEA中,新建一个Maven

第二步,在pom.xml中写入spring的依赖.

pom.xml是maven项目的配置文件.加入了spring的依赖才可以使用spring,相当于将把spring下载到我们项目中去使用.

将下面代码复制粘贴到pom.xml中

<dependencies><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.3.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-beans --><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.2.3.RELEASE</version></dependency></dependencies>

 效果是这样的:

如果是第一次配置,其中的依赖名是红色的.这代表着依赖所需的jar包还没有下载好.可以等待一会.

如果下载的过程发生了报错,一直都还是红色的.可能是网络的原因,就可以去设置中更改maven项目中的配置,使其更改成为国内源能够更好的帮助我们下载jar包.

[其他]IDEA中Maven项目配置国内源_HY_PIGIE的博客-CSDN博客

配置spring的xml文件 

在java目录下的resources文件下创建出一个xml,命名可以随意.

并将下面的配置代码拷贝到刚刚创建的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 http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>

如图

 以上,我们就创建出了一个基本的spring项目.

下面将介绍关于bean对象的基本存储与获取

Spring中Bean对象的存储与获取

存储Bean对象

存储Bean对象,大致分成两步:

  1. 创建出一个类
  2. 将创建出的类注册到Spring容器当中.

 在java下创建出一个类,也可以放到包中

并把此类注册到spring当中(交给spring管理,赋予其创建销毁对象的权限),具体是在我们先前创建的spring.xml文件中配置

在xml文件下的beans标签中,创建出bean标签.

id表示由此类创建出的bean对象的id,便于我们根据id来获取.

class表示为类所在的路径.以main底下的java为根路径,描述类的路径.

如果User类放到了一个包中,那么class则是:

这样就成功的把类注册到spring当中,当需要调用的时候spring会自动的帮我们创建bean对象.

获取并使用Bean对象

大致分为三个步骤:

  1. 获取spring上下文对象
  2. 从spring上下文对象获取bean对象
  3. 使用bean对象

获取spring上下文对象的方式有两种:

通过ApplicationContext获取

或是BeanFactory来获取.

他们的效果是一样的,但spring官方推荐使用ApplicationContext.

调用上下文对象根据id获取相应的bean对象

public static void main(String[] args) {//获取上下文方法一BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring.xml"));User user1 = (User)beanFactory.getBean("user");//使用getBean获取bean对象//获取上下文方法二ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");User user2 = (User)context.getBean("user");}

 getBean方法的重载

使用getBean方法来获取bean对象有三种使用方式:

User user1 = (User)context.getBean("user");//通过id获取
User user2 = context.getBean(User.class);//通过类获取
User user3 = context.getBean("user",User.class);//通过id+类的方式获取

如果是同一个类的不同bean对象要标注成不同的id噢,id是唯一的.

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

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

相关文章

情侣飞行棋 情侣小游戏 2023 抖音

飞行棋网站地址:https://effect.guoyaxue.top/fxq/index.html#/ 以及各种新版来袭&#xff1a; 以及各种情侣小游戏合集 https://fxnew.guoyaxue.top/#/

hive 创建 s3 外表

背景 有个比较大的技术侧需求: 将数据从 HDFS 迁移到 s3。当然在真正迁移之前&#xff0c;还需要验证迁移到 s3 的数据&#xff0c;和上层查询器&#xff08;hive、presto 之间的兼容性&#xff09; 这里我们对一张业务表的数据做个简单的迁移测试 验证 数据迁移 为了让 h…

【微信小程序】swiper的使用

1.swiper的基本使用 <jxz-header></jxz-header> <view class"banner"><swiperprevious-margin"30rpx"autoplayinterval"2000"indicator-dotsindicator-color"rgba(0,0,0,0.3)"indicator-active-color"#bda…

文心一言:如何根据关键词找到想用的Python函数

在Python中&#xff0c;你可以通过以下几种方式来根据关键词找到想用的函数&#xff1a; 使用内置函数dir()和help()&#xff1a; dir()函数可以列出一个模块或对象中可用的属性和方法。help()函数则可以提供有关Python的任何函数、类、模块或关键字的详细信息。 例如&#…

一百七十九、Linux——Linux报错No package epel-release available

一、目的 在Linux中配置Xmanager服务时&#xff0c;执行脚本时Linux报错No package epel-release available 二、解决措施 &#xff08;一&#xff09;第一步&#xff0c;# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm &#xff08;二&…

uniapp项目实践总结(十七)实现滚动触底加载

导语&#xff1a;在日测的开发过程中&#xff0c;经常会碰到页面需要渲染大量数据的情况&#xff0c;这时候就需要用到滚动加载功能&#xff0c;下面总结一下方法。 目录 原理分析实战演练案例展示 原理分析 使用scrolltolower事件来监听滚动到底部&#xff0c;然后加载下一…

idea之maven的安装与配置

我们到maven的官网里下载maven&#xff0c;地址&#xff1a;https://maven.apache.org/download.cgi下载完成后解压即可配置环境变量 此电脑–>右键–>属性–>高级系统设置–>环境变量–>系统变量&#xff08;S&#xff09;–>新建一个系统变量 变量名&…

第一百四十七回 自定义组件一

文章目录 概念介绍实现方法示例代码 我们在上一章回中介绍了跟手指移动的小球相关的内容&#xff0c;本章回中将介绍 自定义组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 在项目中有些内容无法通过现有的组件来实现&#xff0c;因此需要自定义组件&#xf…

HashMap:hashCode()和equals()方法的正确实习

确保自定义对象作为键时正确实现hashCode()和equals()方法是非常重要的&#xff0c;因为这两个方法直接影响着对象在哈希表&#xff08;如HashMap&#xff09;中的存储和检索。 下面进一步解释为什么这两个方法如此重要&#xff1a; hashCode()方法&#xff1a;这个方法返回一…

【计算机网络】 粘包问题

文章目录 为什么会产生粘包问题&#xff1f;解决办法先发包大小再发包内容代码示例 为什么会产生粘包问题&#xff1f; tcp是数据流传输&#xff0c;是一种没有边界的&#xff0c;可以合并的传输数据方式。合并就要能拆开&#xff0c;拆不开就是粘包。 解决办法 设置标志位&a…

共享股东模式:实体门店的新型股东模式机遇与挑战并存

在传统的经营模式中&#xff0c;经营者通常需要独自承担企业的风险和责任&#xff0c;同时也需要投入大量的人力和资金。对很多创业者而言&#xff0c;这是一项巨大的挑战。有没有一种方法能够使创业者们在共享资源和利益的同时分担风险和责任呢&#xff1f; 共享股东模式是一…

Spring MongoDB

首先创建数据实体&#xff0c;Document(collection "name") 建立一个一对多的关系时&#xff0c; DocumentReference 导致数据库仅仅存储条目的Id&#xff0c;称为手动索引关系。 也有其它的方法在MongoDB中创建关系。 接下来创建Controller。 RestController …

短效代理IP与长效代理IP:应用场景与选择方法

随着互联网的迅速发展&#xff0c;越来越多的网站开始采取反爬虫措施&#xff0c;以保护自己的数据安全。而作为一种常见的反爬虫工具&#xff0c;代理IP也被广泛应用。代理IP分为短效代理IP和长效代理IP两种类型&#xff0c;本文将介绍它们的区别和应用场景。 一、短效代理IP …

数据结构-----队列

目录 前言 队列 定义 队列的定义和操作方法 队列节点的定义 操作方式 顺序表实现队列&#xff08;C/C代码&#xff09; 链表实现队列&#xff08;C/C代码&#xff09; Python语言实现队列 前言 排队是我们日常生活中必不可少的一件事&#xff0c;去饭堂打饭的时候排队&a…

彩色相机工作原理——bayer格式理解

早期&#xff0c;图像传感器只能记录光的强弱&#xff0c;无法记录光的颜色&#xff0c;所以只能拍摄黑白照片。 1974年,拜尔提出了bayer阵列&#xff0c;发明了bayer格式图片。不同于高成本的三个图像传感器方案&#xff0c;拜尔提出只用一个图像传感器&#xff0c;在其前面放…

k8s相关命令-命名空间

k8s相关命令目录 文章目录 前言一、创建命名空间二、删除命名空间三、查看命名空间列表四、查看命名空间列表五、查看特定命名空间下所有资源六、删除特定命名空间下所有资源 前言 记录k8s命名空间的相关操作命令 一、创建命名空间 kubectl create namespace <namespace&g…

java向数据库写入数据:如何使用Java将数据写入数据库

​​​​​​答&#xff1a;Java向数据库写入数据的步骤如下&#xff1a;需要创建一个JDBC连接&#xff0c;以便访问数据库。 答&#xff1a;Java向数据库写入数据的步骤如下&#xff1a; 1. 首先&#xff0c;需要创建一个JDBC连接&#xff0c;以便访问数据库。 2. 然后&…

tensorflow基础

windows安装tensorflow anaconda或者pip安装tensorflow&#xff0c;tensorflow只支持win7 64系统&#xff0c;本人使用tensorflow1.5版本&#xff08;pip install tensorflow1.5&#xff09; tensorboard tensorboard只支持chrome浏览器&#xff0c;而且加载过程中可能有一段…

JS new操作符具体做了什么?

1. 意义 在JavaScript中&#xff0c;“new” 操作符用于创建一个新的对象实例。具体来说&#xff0c;“new” 操作符会执行以下步骤&#xff1a; JavaScript中的new操作符是一个非常重要的操作符&#xff0c;它用于创建一个新的对象实例。 2. 实例化步骤 创建一个新的空对象。…

Java面向对象七大原则以及设计模式单例模式和工厂模式简单工厂模式

面向对象的七大原则&#xff08;OOP&#xff09; 1,开闭原则&#xff1a; 对扩展开发&#xff0c;对修改关闭 2.里氏替换原则&#xff1a; 继承必须确保超类所拥有的子类的性质在子类中仍然成立 3.依赖倒置原则&#xff1a; 面向接口编程&#xff0c;不要面向实现编程&am…