您现在的位置是:首页 >学无止境 >【Spring框架】第一个Spring(创建和使用)网站首页学无止境

【Spring框架】第一个Spring(创建和使用)

摸鱼王胖嘟嘟 2024-10-03 00:01:02
简介【Spring框架】第一个Spring(创建和使用)

Spring创建和使用

创建

创建一个Maven项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

添加Spring框架支持(spring-context、spring-beans)

在项⽬的 pom.xml 中添加 Spring 框架的⽀持,xml 配置如下:

<dependencies>
	 <dependency>
		 <groupId>org.springframework</groupId>
		 <artifactId>spring-context</artifactId>
		 <version>5.2.3.RELEASE</version>
	 </dependency>
	 
	 <dependency>
		 <groupId>org.springframework</groupId>
		 <artifactId>spring-beans</artifactId>
		 <version>5.2.3.RELEASE</version>
	 </dependency>
</dependencies>

在这里插入图片描述
从上述配置中可以看出,添加的框架有 spring-context:spring 上下⽂,还有 spring-beans:管理对象的模块。

添加启动类

最后在创建好的项⽬ java ⽂件夹下创建⼀个启动类,包含 main ⽅法即可:

public class App {
	 public static void main(String[] args) {
	 
	 }
}

存储Bean对象

创建Bean

public class User {
    public String sayHi() {
        return "hello world";
    }
}

将Bean注册到容器

在resources下创建一个spring配置文件
在这里插入图片描述

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

再将 User 对象注册到 Spring 中就可以,具体操作是在 中添加如下配置:
在这里插入图片描述

读取并使用Bean对象

先得到spring(上下文)对象
方法一:使用ApplicationContext;

ApplicationContext  context = new ClassPathXmlApplicationContext("spring-config.xml");

方法二:使用BeanFactory;

BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));

从Spring中取到Bean对象

User user = (User) context.getBean("user");

使用Bean

System.out.println(user.sayHi());

在这里插入图片描述

经典面试题:ApplicationContext和BeanFactory的区别是什么?

相同点:都可以从IoC容器当中获取bean。

不同点 :从继承关系和功能方面:ApplicationContext继承于BeanFactory。BeanFactory只提供了最基础的访问bean的方法,而ApplicationContext除了拥有BeanFactory以外,还拥有一些其他的机制,例如:支持国际化,资源访问,事件传播等;

从性能方面: ApplicationContext 是⼀次性加载并初始化所有的 Bean 对象,⽽BeanFactory 是需要那个才去加载那个,因此更加轻量(ApplicationContext采用的是"饿加载"的方式来进行加载的。而BeanFactory采用的是"懒加载"的方式来进行加载的。)

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。