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 容器思维的工作机制。