[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.hqwc.cn/news/112094.html

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

相关文章

已解决 Kotlin Error: Type mismatch: inferred type is String but Int was expected

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页: &#x1f405;&#x1f43e;猫头虎的博客&#x1f390;《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f996…

多线程回顾、集合Collection、Set、List等基本知识

多线程回顾 问: 多线程的两种创建方式? 继承Thread类实现Runnable接口线程池Callable 问:多线程通常会遇到线程安全问题? 什么情况下会遇到线程安全问题? 答:一个数据被多个线程访问(有读有写) 解决这个问题的方式? SE:同步锁 synchronized A : 同步代码块 B : 同步方法…

C++QT day9

完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&#xff0c;给定两个按钮…

【Nuxt3】Vue3 + Element-plus 打包后报错 @popperjs/core

问题&#xff1a; 更新 Element-plus 后&#xff0c;运行时需要安装 popperjs/core 依赖。 如果正常执行 npm install popperjs/core &#xff0c;那么&#xff0c;打包时&#xff0c;就会出现下面报错。 Named export ‘placements’ not found. The requested module ‘poppe…

【数据结构】优先级队列(堆)

文章目录 &#x1f490;1. 优先级队列1.1 概念 &#x1f490;2.堆的概念及存储方式2.1 什么是堆2.2 为什么要用完全二叉树描述堆呢&#xff1f;2.3 为什么说堆是在完全二叉树的基础上进行的调整&#xff1f;2.4 使用数组还原完全二叉树 &#x1f490;3. 堆的常用操作-模拟实现3…

vue项目 高德地图搜索带关键字效果demo(整理)

<!-- 高德地图引入 --> <script type"text/javascript">window._AMapSecurityConfig {securityJsCode: be00dfb4bcd4b18dd7760486c40aa1ed, //秘钥} </script> <!-- <script type"text/javascript" src"./qrcode.js"&g…

【AI视野·今日CV 计算机视觉论文速览 第248期】Mon, 18 Sep 2023

AI视野今日CS.CV 计算机视觉论文速览 Mon, 18 Sep 2023 Totally 83 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;Robust e-NeRF,处理高速且大噪声事件相机流的NERF模型。(from NUS新加坡国立) 稀疏噪声事件与稠密事件数据的区别&#xff1a;…

SpringMVC之JSON返回及异常处理

目录 JSON处理 导入依赖 配置Spring-mvc.xml ResponseBody注解使用 测试 目录 JSON处理 导入依赖 配置Spring-mvc.xml ResponseBody注解使用 测试 Jackson 定义 用法 常用注解 统一异常处理 为什么要全局异常处理&#xff1f; 异常处理思路 SpringMVC异常分类 综…

天翎知识管理系统:强大的权限管理功能,保障知识安全

编者按&#xff1a; 知识管理系统的权限管理功能&#xff0c;可以帮助企业实现对知识库的精细化管理&#xff0c;保证知识库的安全性和稳定性。本文将介绍天翎知识管理系统的权限管理体系&#xff0c;通过权限管理&#xff0c;控制用户的编辑和审核权限&#xff0c;从而保证知识…

sql注入之高权限注入和文件读写

死在山野的风里&#xff0c;活在自由的梦里 sql注入之高权限注入和文件读写 高权限注入1.多个网站共享mysql服务器2.MySQL 权限介绍3.注入流程查询所有数据库名称查询表名对应的字段名查询数据 文件读写1.文件读写注入的原理2.文件读写注入的条件3.读取文件4.写入文件 高权限注…

怎么推广自己抖店的商品?最适合0经验新手操作的办法,来看看

我是王路飞。 抖店开通后&#xff0c;想要把自己店铺的商品卖出去&#xff0c;就需要进行推广了。 但是怎么推广呢&#xff1f; 要么利用抖音的搜索和推荐流量&#xff0c;获取曝光&#xff0c;实现点击和转化。 不过这种玩法有个弊端&#xff0c;就是需要你有一定的电商经…

蓝桥杯 题库 简单 每日十题 day4

01 津津上初中了。妈妈认为津津应该更加用功学习&#xff0c;所以津津除了上学之外&#xff0c;还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴&#xff0c;而且上得越久就会越不高兴。假设津津…