Spring初试

什么是Spring

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

由于Spring框架属于容器性质的,容器装什么对象就有什么功能,所以可以是一站式,不仅不排斥其他的框架,还能帮其他的框架管理对象

Spring搭建

导包

首先只需要导入6个包,分别是

com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.log4j-1.2.15.jar
spring-beans-4.2.4.RELEASE.jar
spring-context-4.2.4.RELEASE.jar
spring-core-4.2.4.RELEASE.jar
spring-expression-4.2.4.RELEASE.jar

创建一个javaBean对象

package com.jinxin.spring;

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;
	}
}

在src下创建applicationContext.xml文件

在applicationContext.xml中beans根目录并导入约束

1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
3        xmlns="http://www.springframework.org/schema/beans" 
4        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
5 
6 </beans>

 

将刚刚创建的User交给Spring容器管理

1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
3        xmlns="http://www.springframework.org/schema/beans" 
4        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
5 
6     <!-- 将User对象交给容器 -->
7     <bean name="user" class="com.jinxin.spring.User"></bean>
8 </beans>

 

测试

新建TestSpring类进行测试

package com.jinxin.spring;

import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestSpring {
	@Test
	public void test() {
		// 创建容器对象
		ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		// 向容器要User对象
		User user = (User) ac.getBean("user");   // 在配置文件中bean标签的name属性
		// 打印User对象
		System.out.println(user);
	}
}

IOC跟DI

IOC:Inverse of Control 控制反转

    将我们创建对象的方式反转
    以前对象的创建是由我们开发人员自己维护。包括依赖关系也是自己注入
    使用Spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入
    控制反转就是反转了对象的创建方式,从我们自己创建反转给了程序(spring)

DI:dependency Injection  依赖注入

实现IOC思想需要DI支持

注入方式:

  • set方法注入
  • 构造方法注入
  • 字段注入

注入类型:

  • 值类型注入:8大基本数据类型
  • 引用类型注入:将依赖对象注入

BeanFactory&ApplicationContext

BeanFactory接口

Sprint最原始的接口,针对接口实现类功能较为单一。

BeanFactory接口对应的实现类的容器,特点是每次在获得对象时,才会创建

ApplicationContext接口

每次容器启动时就会创建容器中配置的所有对象,提供更多功能

在加载xml配置文件的时候有两种方式,分别是从类路径加载和从绝对路径加载

从类路径下加载配置文件 ClassPathXmlApplicationContext
从绝对路径下加载配置文件 FileSystemXmlApplicationContext (了解)

结论:在web开发中,使用ApplicationContext,在资源匮乏的环境中使用BeanFactory

 

posted @ 2018-07-26 10:11  Jin同学  阅读(137)  评论(0)    收藏  举报