1.Spring框架简介
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
◆目的:解决企业应用开发的复杂性
◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:任何Java应用
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。
(来自百度百科)
2.ioc是什么?
Inversion of Control(控制反转)。
怎么理解控制反转?将创建对象得到权力交付给Spring
3.创建一个简单的ioc例子
3.1创建一个简单的J2EE项目
EJB module version选择2.5
3.2引入Spring的jar包
四个核心包俩个日志包
3.3创建包
3.3.1在包里创建接口userDAO
package com.heshihua.spring.demo1;
/**
* 业务层接口
* @author 何世华
*
*/
public interface UserDAO {
public void save();
}
3.3.2在包里创建俩个类继承接口
package com.heshihua.spring.demo1;
public class UserDAOHibernateImpl implements UserDAO{
public void save() {
System.out.println("UserDAOHibernateImpl执行了");
}
}
package com.heshihua.spring.demo1;
/**
* 用户管理业务层实现类
* @author Admin
*
*/
public class UserDAOImpl implements UserDAO {
public void save() {
System.out.println("UserDAO执行了");
}
}
3.4在src下创建bean容器
创建一个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">
<!-- Spring的入门配置 -->
<bean id = "UserDAO" class = "com.heshihua.spring.demo1.UserDAOHibernateImpl"></bean>
</beans>
3.5在前面创建的包里创建测试类
package com.heshihua.spring.demo1;
import org.junit.Test;
import org.springframework.context.*;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* Spring的入门
*
* @author Admin
*
*/
public class SpringDemo1 {
@Test
/**
* 普通方式的调用
*/
public void demo1() {
UserDAO userDAO = new UserDAOImpl();
userDAO.save();
}
@Test
/*
* Spring 的方式调用
* **/
public void demo2(){
// 创建Spring的工厂
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDAO userDAO = (UserDAO) applicationContext.getBean("UserDAO");
userDAO.save();
}
}
Spring即使可以通过读取创建的bean容器中的内容来创建一个对象。
3.6在3.5代码中demo1和demo2运行的结果是一样的为什么要绕这么一大圈来用demo2呢?
看下图
上图中 左边为传统方式来实现创建对象但是像图中表示如果说我们不想用UserDaoImpl对象了换成UserDaoHibernateImpl但是这时候就需要更改源代码了 图右上也是需要更改工厂中的代码。但是如果我们采用Spring的ioc来实现创建对象这时候就只需要更改配置文件了。IOC的好处用的多就会体会出来了。