IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【Spring】Spring项目的创建和使用 -> 正文阅读

[Java知识库]【Spring】Spring项目的创建和使用

Spring项目的创建和使用

因为Spring是一个容器,容器里面存放的是Bean对象
它可以完成主要两个操作:

1.往容器里面存放Bean对象
2.从容器里面取出Bean对象

创建Spring项目

创建Spring项目主要分三个步骤:

  1. 创建Maven项目
  2. 添加Spring-content和Spring-Bean

创建一个Maven项目

和我们之前的Servlet项目一样

添加资源

还是到Maven中央仓库中找Spring-content和Spring-bean然后添加到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>

这里还是最好配置一下国内源:
在setting里面找到maven,然后从网上找一个setting.xml复制到.m2目录里面.
![[Pasted image 20220715192043.png]]

另外,还需要配置一下新项目的setting,总之就是要配置好两个地方
在这里插入图片描述

创建启动类

直接在蓝色文件夹java里面创建一个类,里面再包含main方法就可以了

将Bean存到容器中

Bean就是类的意思.

创建Spring配置文件

在main函数中的resources的文件夹中创建一个spring配置的文件
![[Pasted image 20220715222528.png]]

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

创建Bean对象

在java文件夹中创建一个Bean类
![[Pasted image 20220715224104.png]]

将Bean对象通过配置文件注册

在刚才的Spring-config.xml中引入我们刚才创建好的Bean对象,这是声明注入,具体什么时候注入还需要看上下文的对象

<bean id="user" class="com.beans.User"></bean>
  • id和class名字可以不同,但是尽量要符合类的描述.
  • 一般的规范就是id是小驼峰,class是大驼峰且写上包名

从Spring中取出想要的对象

这个过程主要分为以下三个步骤:
1.得到Spring的上下文对象
2.再通过上下文对象提供的方法来找到我们想要使用的Bean对象
3.使用Bean对象提供的方法

得到Spring的上下文对象

因为Spring是一个容器,按照规定,我们要是想要获取到想要的对象,就要先得到上下文对象

//获取上下文对象,其中参数要和我们创建的文件的名字一样  
ApplicationContext applicationContext=  
        new ClassPathXmlApplicationContext("spring-config.xml");

使用ApplicationContext作为上下文对象.
使用ClassPathXmlApplicationContext构造方法
参数是我们设置的Spring的配置文件的名字

另外,还有一种方法也可以获取Spring的上下文,就是BeanFactory

public static void main(String[] args) {  
    BeanFactory beanFactory=new XmlBeanFactory(new ClassPathResource("spring-config.xml"));  
    User user= (User) beanFactory.getBean("user");  
    user.print();  
}

得到的上下文对象是BeanFactory对象,使用的是XmlBeanFactory进行实例化
还是通过Bean对象的id来获取对象

BeanFactory和ApplicationContext的区别

1.ApplicationContext是BeanFactory的子类
所以ApplicationContext会支持更多的功能,如国际化的支持,资源访问的支持,事件和传播的支持
2.BeanFactory是懒加载,只有使用到了那个对象的时候,才去加载,
这样的优点是节省了系统资源但是加载时间长
ApplicationContext是饿加载,它会将所有的Bean对象全部加载下来,这样的优点是加载时间短但是浪费系统资源

通过上下文对象获取Bean

得到上下文之后呢,我们就可以通过指定的id名字来获取指定的Bean了
其实就可以将这个上下文看作是一个HashMap,其实真实情况下也真的是HashMap结构,key里面存放的是Bean的id,value里面放的是Bean对象本身
方法一:通过类的名字+强制转换

//通过id的名字来获取到我们想要的Bean对象  
User user= (User) applicationContext.getBean("user");

因为getBean方法返回的是Object对象,所以需要强制转化一下.
另外,这里user对象的获取也体现了IOC思想,使用的是上下文注入的方式
方法二:通过类.class

User user=applicationContext.getBean(User.class);

直接就是获取这种User类,但是这有一个弊端,就是如果注入了同一个类,但是名字不同,这样方法就报报错:NoUniqueClass,不可以找到指定的类
方法三:通过类的名字+类.class

User user=applicationContext.getBean("user",User.class);

这样就可以不用强制类型转化了,而且还可以避免找不到指定的类的情况

使用Bean对象

得到Bean对象之后,就可以调用它的方法了

//使用Bean对象的函数  
user.print();
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 18:38:23  更:2022-07-20 18:39:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/31 7:04:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码