目录
- Spring创建和使用
- 创建
- 创建一个Maven项目
- 添加Spring框架支持(spring-context、spring-beans)
- 添加启动类
- 存储Bean对象
- 创建Bean
- 将Bean注册到容器
- 读取并使用Bean对象
- 经典面试题:ApplicationContext和BeanFactory的区别是什么?
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采用的是"懒加载"的方式来进行加载的。)