一.什么是Spring框架
1.spring是开源的轻量级框架
2.spring是一站式框架
(1)spring在javaee三层结构中,每一层都提供不同的解决技术
- web层:springMVC
- service层:spring的ioc
- dao层:spring的jdbcTemplate
3.spring 的两个核心
(1)aop:面向切面编程,扩展功能不是修改源代码实现
(2)ioc:控制反转,
- 比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new出来对象把对象的创建不是通过new方式实现,而是交给spring配置创建类对象
二.spring的Ioc操作
1. 把对象的创建交给spring进行管理
2. IOC的两个部分
(1)ioc的配置文件方式
(2)ioc的注解方式
3.IOC的入门案例
第一步 导入jar包
将jar包放入lib目录
第二部 创建一个类 在类中创建一个add方法
package cn.spring.test;
public class User {
public void add() {
System.out.println("add......");
}
public static void main(String[] args) {
User user=new User();
user.add();
}
}
第三步 创建配置文件,配置文件类
(1)spring核心配置文件名称和位置不是固定的
建议放到src下面,官方建议applicationContext.xml
(2)引入schema约束
xml文件都要先引入约束,只要会找就可以 spring-framework-4.2.4.RELEASE/docs/spring-framework-reference/html/xsd-configuration.html
<?xml version="1.0" encoding="UTF-8"?>
<!-- xml文件都要先引入约束,只要会找就可以 spring-framework-4.2.4.RELEASE/docs/spring-framework-reference/html/xsd-configuration.html -->
<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>
(3)配置对象创建
第四步测试类
package cn.spring.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestIOC {
@Test
public void testUser() {
//1.加载spring配置文件,根据创建对象
ApplicationContext context =
new ClassPathXmlApplicationContext("bean1.xml");
//2.得到配置创建对象
User user=(User) context.getBean("user");
System.out.println(user);//输出地址
}
}
-
以下资源来自How2j(http://how2j.cn/k/spring/spring-ioc-di/87.html#nowhere)
通过案例可以发现Spring可以通过bean1.xml配置文件获取User对象并调用user的add方法,打印出add…
传统的方式:
通过new 关键字主动创建一个对象
IOC方式
对象的生命周期由Spring来管理,直接从Spring那里去获取一个对象。 IOC是反转控制 (Inversion Of Control)的缩写,就像控制权从本来在自己手里,交给了Spring。打个比喻:
传统方式:相当于你自己去菜市场new 了一只鸡,不过是生鸡,要自己拔毛,去内脏,再上花椒,酱油,烤制,经过各种工序之后,才可以食用。
用 IOC:相当于去馆子(Spring)点了一只鸡,交到你手上的时候,已经五味俱全,你就只管吃就行了。