Spring介绍
Spring是一个开源框架,Spring是2003年兴起的一个轻量级Java开发框架,是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一是分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。
Spring环境搭建
环境搭建以及导包
与使用IDEA搭建Hibernate环境类似,参考
Spring4.2.4所需jar、源码以及文档,下载
项目结构
环境搭建完成,将在WEB-INF文件夹下自动生成的applicationContext.xml文件移动到src下(可选)
项目结构如图:

代码测试
建立JavaBean对象
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;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
简单配置xml文件
简单配置xml文件,使得JavaBean对象应用于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">
<bean name="user" class="cn.Pu1satilla.domain.User"/>
</beans>
测试类
@Test
public void demo(){
// 1.创建Spring容器对象
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
// 2.向容器要user对象
User user = (User) applicationContext.getBean("user");
// 3.打印user对象
System.out.println(user);
}
Spring概念
IOC
Inversion of Control 控制反转,指的是对象的创建权反转给Spring,对象的创建以及以来关系可以由Spring完成创建以及注入,反转控制就是反转了对象的创建方式,由开发人员创建反转给了Spring,作用是实现了程序的解耦合。
用大白话理解:所有的类都会在spring容器中登记,程序运行时告诉spring需要什么东西,然后spring会把需要的东西给当前。所有的类的创建、销毁都由spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。
DI
Dependency Injection 依赖注入,需要有IOC环境,spring创建这个类的过程中,spring将类的依赖属性设置进去。
实现IOC思想需要DI作为支持
注入方式:
- set方法注入
- 构造方法注入
- 字段注入
注入类型:
- 值类型注入
- 引用类型注入
BeanFactory&&ApplicationContext
BeanFactory接口
BeanFactory接口子类关系图
作为spring原始接口,针对原始接口的实现类功能较为单一
BeanFactory接口实现类的容器特点:在每次获得对象时才会创建对象
ApplicationContext接口
ApplicationContext接口的容器特点:每次容器启动就会创建容器中配置的所有对象
在运行配置较差时使用BeanFactory接口