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

news2024/11/25 11:37:32

目录

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.coloradmin.cn/o/1020436.html

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

相关文章

l8-d21 域名解析与http服务器实现原理

一、域名解析gethostbyname函数 主机结构在 <netdb.h> 中定义如下&#xff1a; struct hostent { char *h_name; /* 官方域名 */ char **h_aliases; /* 别名*/ int h_addrtype; /* 地址族&#xff08;地址类型&#xff09; */ int h_l…

[JAVAee]SpringBoot配置文件

配置文件的介绍 配置文件当中记录了许多重要的配置信息,例如: 数据库的连接信息(用户的账户与密码)项目的启动端口第三方系统的调用密匙用于记录问题产生的日志 在spring框架中一些特定的框架会自动调用配置文件中的配置信息来运用. 配置文件中的属性也起到了类似全局变量的…

基于ROS环境的相机标定教程

一、参考资料 ROS学习——利用电脑相机标定 二、安装usb_cam驱动包 usb_cam - ROS Wiki GitHub - ros-drivers/usb_cam: A ROS Driver for V4L USB Cameras usb_cam包用于读取图像。 1. 源码安装usb_cam usb_cam用于实时SLAM&#xff0c;配合ROS平台使用。 1.1 下载usb_…

【Linux初阶】信号入门 | 信号基本概念+信号产生+核心转储

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【Linux初阶】 ✒️✒️本篇内容&#xff1a;Linux信号的基本概念&#xff08;生活信号、技术信号、信号生命周期、信号的保存位置和发送本质&#xff09;&…

Pytorch-MLP-CIFAR10

文章目录 model.pymain.py参数设置注意事项运行图 model.py import torch.nn as nn import torch.nn.functional as F import torch.nn.init as initclass MLP_cls(nn.Module):def __init__(self,in_dim3*32*32):super(MLP_cls,self).__init__()self.lin1 nn.Linear(in_dim,1…

RFID自动识别技术在数控工具系统的应用

RFID是一种自动识别技术&#xff0c;最早是应用在二战中进行敌我侦察机的识别&#xff0c;但是随着民用通信技术的放开&#xff0c;近年来网络通信技术以及信息安全技术都取得了重大的发展&#xff0c;RFID技术也逐渐在民用领域应用。 RFID自动识别技术在数控工具系统的应用 1、…

浅谈PDM与MES系统集成

摘要&#xff1a; 目前MES在制造行业变得炙手可热&#xff0c;然而很多企业都忽视了数据的源头&#xff0c;MES作为生产执行的信息化系统&#xff0c;我们该如何让其在企业中成功的实施&#xff0c;发挥更大的作用&#xff0c;这还需要PDM系统的支撑。本文就PDM与MES集成进行简…

css前端面试题(三)

文章目录 1、可继承属性和不可继承属性字体系列属性文本系列属性元素可见性列表布局属性光标属性 2、link和import的区别3、css优化4、 CSS预处理器/后处理器是什么&#xff1f;为什么要使用它们&#xff1f;5、单行、多行文本溢出隐藏6、实现一个扇形7、实现一个自适应的正方形…

【Axure高保真原型】人物卡片多条件搜索案例

今天和大家分享人物卡片多条件搜索的原型模板&#xff0c;我们可以输入姓名或者选择部门、岗位来快速筛选出对应的人物信息卡片。那这个模板是用中继器制作的&#xff0c;所以使用也很方便&#xff0c;只需要在中继器表格导入图片和填写对应内容&#xff0c;即可自动生成交互效…

1600*A. LCM Challenge(数论 || 找规律)

解析&#xff1a; n<3&#xff0c;特判 n为奇数&#xff0c;则n、n-1、n-2必定互质&#xff0c;所以结果即为三者之和。 n为偶数&#xff0c; 不会严格证明原因&#xff0c;但是找找规律&#xff0c;是这样的...... #include<bits/stdc.h> using namespace std; #de…

ros----发布者和订阅者模型

话题模型&#xff1a; 如何自定义话题消息 1.定义msg文件 2.在package.xml中添加功能包依赖 <build_depend>message_generation</build_depend> <exec_depend>message_runtime</exec_depend>3.在CMakeList.txt文件中添加编译选项 4.编译生成语言的相…

网络工程师是干什么的?常见岗位有哪些?

网络工程师是做什么工作&#xff1f; 网络工程师能够从事计算机信息系统的设计、建设、运行和维护工作。一般来说&#xff0c;分硬件网络工程师和软件网络工程师两大类&#xff0c;硬件网络工程师以负责网络硬件等物理设备的维护和通信&#xff1b;软件网络工程师负责系统软件…

LeetCode(力扣)509. 斐波那契数Python

LeetCode509. 斐波那契数 题目链接代码 题目链接 https://leetcode.cn/problems/fibonacci-number/ 代码 class Solution:def fib(self, n: int) -> int:if n 0:return 0dp [0] * (n 1)dp[0] 0dp[1] 1for i in range(2, n 1):dp[i] dp[i - 1] dp[i - 2]return d…

IM即时通讯系统[SpringBoot+Netty]——梳理(总)

文章目录 一、为什么要自研一套即时通讯系统1、实现一个即时通讯系统有哪些方式1.1、使用开源产品做二次开发或直接使用1.2、使用付费的云服务商1.3、自研 2、如何自研一套即时通讯系统2.1、早期即时通讯系统是如何实现2.2、一套即时通讯系统的基本组成2.3、当下的即时通讯系统…

【milkv】st7735驱动

前言 本文介绍milkv-duo加载st7735的lcd屏幕&#xff0c;以及屏幕显示log。 参考文章&#xff1a; 记录为Linux配置spi屏幕&#xff08;st7735s&#xff09; https://community.milkv.io/t/milk-v-duo-spi-st7789/131 一、电路图 1.1 pin设置 打开spi2的引脚 duo-buildroot…

@Transactional失效场景/原因

文章目录 1.Transactional注解在非public方法上2.Transactional使用propagation设置错误&#xff08;有3种会失效&#xff09;3.Transactional使用rollbackFor设置错误4.A方法没有使用Transactional调用了B&#xff08;有被注解&#xff09;方法5.try catch了异常6.数据库引擎不…

AI绘制流程图

1、工具&#xff1a; 使用https://chat.openai.com/c/45a81a53-cced-43f7-be3e-e5e80f1e994fFlowchart Maker & Online Diagram Software 2、使用plantuml的过程&#xff1a; 复制代码&#xff0c;打开diagram.net&#xff0c;点击加号→高级→ plantUML&#xff0c;替换掉…

已解决 Go Error: cannot use str (type string) as type int in assignment

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

【openKylin】OpenKylin1.0 x86_64 VMWare安装手册

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341; 希望本文能够给您带来一定的帮助&#x1f338;文…

华为云ROMA Connect亮相Gartner®全球应用创新及商业解决方案峰会,助力企业应用集成和数字化转型

9月13日-9月14日 Gartner全球应用创新及商业解决方案峰会在伦敦举行 本届峰会以“重塑软件交付&#xff0c;驱动业务价值”为主题&#xff0c;全球1000多位业内专家交流最新的企业应用、软件工程、解决方案架构、集成与自动化、API等企业IT战略和新兴技术热门话题。 9月13日…