1.创建spring-core项目
使用maven方式来创建一个Spring项目,分为以下3步:
1.创建一个普通maven项目
2.添加Spring框架
3.添加启动类
1.创建一个空的maven项目
2.引入spring依赖
在pom.xml中添加spring框架的支持,xml配置如下:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
</dependencies>
3.添加一个启动类
可以随意命名,这里给启动类命名为App,包含main方法即可。
2.向Spring容器中“存”------存储Bean对象
存储Bean分为以下2步:
1.创建一个Bean对象
2.将创建的Bean注册到Spring容器中
1.创建Bean
**bean:**指对象(这里的所有对象都称之为bean)
示例:创建一个User类:
public class User {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
2.将Bean注册到容器
在创建好的项目中添加Spring配置文件spring-config.xml,将此文件放到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>中添加如下配置:
<beans>
<bean id="user" class="org.example.User"></bean>
</beans>
3.向spring容器中“取”------获取并使用Bean对象
获取并使用Bean对象,分为以下3步:
1.得到Spring上下文对象,因为对象都交给Spring管理了,所以获取对象要从Spring中获取,那么就先得得到Spring上下文。
2.通过Spring上下文,获取某一个指定的Bean对象。
3.使用Bean对象。
1.创建Spring上下文
方法①:使用ApplicationContext
在App的main方法中输入以下语句:
ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");
通俗理解,也可以把ApplicationContext当作Spring的运行环境,用来读取配置文件。
方法②:使用BeanFactory
BeanFactory factory=new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
ApplicationContext和BeanFactory效果是一样的,ApplicationContext属于BeanFactory的子类。
那么ApplicationContext和BeanFactory的区别是什么呢,详情见5(目录)。
2.获取指定的Bean对象
ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");
//根据id获取指定的Bean对象
context.getBean("user");
Bean的id要一一对应,如上图所示。
使用User对象接收:
//根据id获取指定的Bean对象
User user=(User)context.getBean("user");
3.使用Bean
举例:在User类中添加一个sayHi()方法,使用Bean来调用此方法。
User类:
public void sayHi(){
System.out.println("hi!");
}
使用Bean:
//调用方法
user.sayHi();
运行结果:
4.总结
操作流程图如下:
5.ApplicationContext和BeanFactory的区别(常见面试题)
共同点:都是获取SpringBean
不同点:
1.从继承关系和功能方面来说:
Spring 容器有两个顶级的接⼝:BeanFactory 和ApplicationContext。其中 BeanFactory 提供了基础的访问容器的能⼒,⽽ ApplicationContext 属于 BeanFactory 的⼦类,它除了继承BeanFactory 的所有功能之外,它还拥有独特的特性,还添加了对国际化⽀持、资源访问⽀持、以及事件传播等⽅⾯的⽀持。
2.从性能方面来说:
ApplicationContext 是⼀次性加载并初始化所有的 Bean 对象,而BeanFactory 是需要那个才去加载那个,因此更加轻量。
版权归原作者 whisper-h 所有, 如有侵权,请联系我们删除。