Spring的创建和使用
创建Spring项目
使用Maven方式创建一个Spring项目,总共分为三个步骤。
- 创建普通Maven项目
- 添加Spring框架支持
- 添加启动类
创建一个Maven项目
添加Spring框架支持
在pom.xml 中添加Spring框架支持。
<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对象
在Java中对象也叫Bean。
存储Bean对象分为两步:
- 获取Bean对象
- 将Bean对象注册到Spring容器中
创建Bean
在Java文件夹下创建一个User类,添加一个Hi方法。
public class User {
public String Hi(String name) {
return name+"hi!";
}
}
将Bean注册到容器
在创建好的项目中添加Spring配置文件spring-config.xml,将此文件放到resources的根目录下。并在spring-config.xml中添加如下内容(此内容是固定不变的)。
<?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中,具有操作是在<beans>中配置。
获取并使用Bean对象
获取Bean对象分为以下三个步骤:
- 得到Spring上下文对象
- 通过spring上下文获取到指定的Bean对象
- 使用Bean对象
创建Spring上下文
Spring上下文对象可以使用ApplicationContext
ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");
除了ApplicationContext外还可以使用BeanFactory来获取Spring上下文。
BeanFactory beanFactory=new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
ApplicationContext和BeanFactory的效果是一样的,ApplicationContext是BeanFactory的子类
ApplicationContext与BeanFactory的区别
- 继承关系和功能:ApplicationContext属于BeanFactory的子类,它除了继承BeanFactory的所有功能外,还拥有独特的特征,添加了对国际化支持,资源访问支持,以及事件传播等方面的支持。
- 性能方面:ApplicationContext是一次性加载并初始化所有的Bean对象,而BeanFactory是需要那个才去加载那个,因此比较轻量.
获取指定的Bean对象
//1.获取上下文
ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");
//加载指定对象
User user= (User) context.getBean("user");
使用Bean
public class App {
public static void main(String[] args) {
// BeanFactory beanFactory=new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
//1.获取上下文
ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");
//加载指定对象
User user= (User) context.getBean("user");
//调用对应的方法
System.out.println(user.Hi("world"));
}
}