Spring —— Spring 的创建与使用
创始人
2025-05-30 05:57:17
JavaEE传送门

JavaEE

Servlet —— Servlet API

Spring —— 初学 Spring, 理解控制反转


目录

  • Spring 创建与使用
    • 创建 Spring 项目
    • 存储 Bean 对象
    • 从 Spring 中读取 Bean 对象
      • 取出 Bean 对象的方法
    • 总结


Spring 创建与使用

创建 Spring 项目

我们使用 Maven 方式创建一个 Spring 项目

  1. 创建一个普通 Maven 项目
  2. 添加 Spring 框架支持 (spring-context, spring-beans)
  3. 添加启动类

创建 Maven 项目

添加 Spring 框架支持

pom.xml 中添加 Spring 框架支持

org.springframeworkspring-context5.2.3.RELEASEorg.springframeworkspring-beans5.2.3.RELEASE

粘贴完之后, 记得刷新.

如果刷新之后, 还是导入失败, 我们需要设置国内源:

搜索 maven 按照如图设置

按照路径找到 setting.xml 文件

在里面找到 mirrors 标签, 在其中填入如下代码

alimavenaliyun mavenhttp://maven.aliyun.com/nexus/content/groups/public/central        

如果继续出错, 删除本地 maven 仓库的 jar 包, 重新下载

添加启动类

java 文件夹下创建一个启动类, 包含 main 方法


存储 Bean 对象

存储 Bean 分为两步:

  1. 存储 Bean 之前, 需要先创建 Bean
  2. 将创建的 Bean 注册到 Spring 容器中

创建 Bean

如图创建一个普通对象

将 Bean 注册到容器

添加 Spring 配置文件, spring-config.xml, 将文件放到 resources 的根目录下

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




User 对象注册到 Spring 中, 在 中添加如下配置:



从 Spring 中读取 Bean 对象

  1. 得到 Spring 对象 (上下文对象)
  2. 通过 Spring 上下文, 获取某一个指定的 Bean 对象
  3. 使用 Bean 对象

# 使用 ApplocationContent

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;public class App {public static void main(String[] args) {// 得到 Spring 对象, xml名字一定要和 resources 下 xml名字一一对应ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config.xml");// 从 Spring 中取出 Bean 对象User user = (User) applicationContext.getBean("user");// 使用 Bean (可选)System.out.println(user.sayHi());// 根据名称获取 Bean}
}

运行结果展示

# 使用 BeanFactory

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;public class App {public static void main(String[] args) {BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));User user = (User) beanFactory.getBean("user");System.out.println(user.sayHi());}
}

# AppliactionContext VS BeanFactory

相同点:

  1. 都可以得到 Spring 上下文对象
  2. 都是来自 Spring 的顶级接口

不同点:

  1. 继承关系: ApplicationContext 属于 BeanFactory 的子类: BeanFactory 只有最基础访问 Bean 的能力, 而 ApplicationContext 除了拥有 BeanFactory 功能之外, 还包含了更多的功能, 如: 国际化支持, 资源访问, 事件传播等.
  2. 性能: ApplicationContext 加载方式是将 Bean 对象一次性加载, 所以在后面访问 Bean 对象时会很快; BeanFactory 需要某个 Bean 时, 采用加载 Bean 对象, 所以它在执行 Bean 获取时, 比较慢

取出 Bean 对象的方法

User user = (User) applicationContext.getBean("user");// 根据 Bean 名称(标识) 来得到 Bean 对象
User user1 = applicationContext.getBean(User.class);// 根据 Bean 类型来得到 Bean 对象
User user2 = applicationContext.getBean("user", User.class);// 根据 Bean 名称 + Bean 类型来得到 Bean 对象

# 注意事项 #

  1. 当根据 Bean 名称来获取 Bean 的时候, getBean() 时, 当 Bean 不存在, 获取为 null, 强转类型时就会出错
  2. 当根据 Bean 类型来获取 Bean 的时候, 如果 Spring 中存在相同对象的时候, 使用该方法获取 Bean 对象会报错

总结


🌷(( ◞•̀д•́)◞⚔◟(•̀д•́◟ ))🌷

以上就是今天要讲的内容了,希望对大家有所帮助,如果有问题欢迎评论指出,会积极改正!!

相关内容

热门资讯

吸猫伐是什么意思 吸猫是吸哪里 作为铲屎官,相信对于网络上流行的各种与猫咪相关的梗都是了然于心的,什么吸猫啦,撸猫啦,云养猫啦……等...
重庆属于哪个省份的 重庆在中国... 重庆有多大,大到超出我们的想象,重庆作为我国4个直辖市之一,印象里应该跟京津沪面积差不多,可事实上却...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...