第一个Spring程序
环境搭建
一.Spring的jar包
前往maven仓库官网.,搜索Spring Context,选择对应得版本,放入项目的pom.xml。
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.4.RELEASE</version>
</dependency>
二.Spring的配置文件
配置文件的放置位置:任意位置,没有硬性规定。
配置文件的命名:没有硬性要求,建议为applicationContext.xml。
思考:日后应用Spring框架时,需要进行配置文件路径的设置。
三.Spring的核心API
Struts:Action,ActionSupport,ServletActionContext
Mybatis:SqlSession,SqlSessionFactory
1.Spring:ApplicationContext
- Spring提供的ApplicationContext工厂,用于对象的创建,可以解耦合。
- ApplicationContext是个接口,主要由于要屏蔽掉应用不同场景的实现的差异
Spring主要提供ApplicationContext接口的两种实现
- 非web环境:ClassPathXmlApplicationContext,主要应用于(main junit)
- web环境:XmlWebApplicationContext
此时全局搜索ApplicationContext.Classes,如下图:
打开ApplicationContext的继承关系,如下图:
此时并没有看到XmlWebApplicationContext的继承,这是因为我们并没有导入Spring webmvc。因此我们导入以下;
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.4.RELEASE</version>
</dependency>
刷新ApplicationContext继承关系,如下图:
2.ApplicationContext—重量级资源
ApplicationContext工厂的对象会占用大量的内存。
不会频繁的创建对象:一个应用只创建一个工厂对象。
由此可以看出,重量级资源是会占用大量内存,不会频繁的创建,也就是共用的,也就是并发或者说是多线程的,即它是线程安全的。
Spring程序
- 创建类型
public class Person {
}
- 配置文件的配置,applicationContext.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">
<!-- id是唯一的,class配置類的全限定名-->
<bean id="person" class="com.zji.basic.Person" />
</beans>
- 通过工厂类,获得对象
@Test
public void test3(){
//获得Spring的工厂
ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
//通过工厂类获取对象
Person person = (Person) ctx.getBean("person");
System.out.println("person = "+person);
}