Spring 简介
1. 什么是 Spring
spring 是分层的 JavaSE 及 JavaEE 利用于全栈的轻量级开源框架,以 IoC
(Inverse Of Control:管制反转 / 反转管制)和 AOP
(Aspact Oriented Programming:面向切面编程)为外围,提供了体现层 SpringMVC 和长久层 Spring JDBC 以及业务层事务管理等泛滥模块的企业级利用技术,还能整合开源世界中泛滥驰名的第三方框架和类库,逐步成为应用最多的 JavaEE 企业应用开源框架。
2.Spring 的劣势
- Spring 无处不在
- Spring 是易扩大的,不便集成各种优良框架
- Spring 不便解耦,易于开发(简化开发)
- Spring 速度快
- Spring 是平安的
- Spring 社区很宏大,备受反对
- Spring 框架源码是经典学习范例
环境的搭建
1 创立 Maven 我的项目
创立好后我的项目工程报错,那是因为短少 web.xml 文件。所以须要生成 web.xml 文件。
2 我的项目工程的目录构造
3 增加 pom.xml 文件 (引入 junit、spring 的 jar 包)
<dependencies>
<!-- 增加 junit 的 jar 包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<!-- 增加 spring 的 jar 包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.3.RELEASE</version>
</dependency>
</dependencies>
4 在 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">
</beans>
5 创立 UserDao 接口
在 UserDao 接口中增加一个办法
package com.yanan.dao;
/**
* 测试接口
* @author 慕客
*
*/
public interface UserDao {public void add();
}
6 创立 UserDaoImpl 实现类
该实现类实现了 UserDao 接口
package com.yanan.dao.impl;
import com.yanan.dao.UserDao;
/**
* 该实现类实现了 UserDao 接口
* @author 慕客
*
*/
public class UserDaoImpl implements UserDao{
@Override
public void add() {System.out.println("UserDaoImpl.add 办法执行了......");
}
}
7 配置 applicationContext.xml 文件
将 UserDao 接口的实现类的实例交给 Spring 容器创立,在外围配置文件中增加如下内容:
<!-- 将 UserDao 接口的实现类的实例交给 spring 创立 -->
<bean id="userDao" class="com.yanan.dao.impl.UserDaoImpl"></bean>
8 创立测试类
9 编写测试类
package com.yanan.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.yanan.dao.UserDao;
import com.yanan.dao.impl.UserDaoImpl;
/**
* 测试类
* @author 慕客
*
*/
public class UserDaoTest {
@Test
public void test1() {
// 定义 Spring 配置文件的门路
String xmlPath = "applicationContext.xml";
// 初始化 Spring 容器,加载配置文件
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
// 通过 IoC 容器获取 userDao 实例。applicationContext.getBean(全限定类名.class)
UserDao userDaoImpl = (UserDao) applicationContext.getBean(UserDaoImpl.class);
// 调用 UserDao 的 add() 办法
userDaoImpl.add();}
}
后果展现
由以上代码能够看出,在程序执行时,对象的创立并不是通过 new
一个类实现的,而是由 Spring 容器治理实现的。这就是 Spring IoC 容器思维的工作机制。