概念
- 开源的轻量级框架
- 核心两部分:
- aop:面向切面编程,扩展功能不是修改源代码来实现
- ioc:控制反转,
- 比如有一个类,类里面有个方法(不是静态方法),调用类里面的方法,创建类的对象,适用对象调用方法
- 对象的创建不是沟通过new实现,而是交给spring配置创建对象
- 一站式框架
- spring在javaee三层结构中,每一层都提供不同的解决技术
- web层:springMVC
- service层:ioc
- dao层:spring的jdbcTemplate
IOC操作
- 把对象的好创建交给Spring进行管理
- ioc操作两部分:
- ioc的配置文件方式
- ioc的注解方式
IOC底层原理
- ioc底层原理实用技术
- xml配置文件
- dom4j解决xml
- 工厂设计模式
- 反射
开发思想 高内聚低耦合
原始方法
[图片上传失败...(image-7b89e0-1525352531724)]
ioc实现原理 (使用反射机制 当有更改时只需要改配置文件实现了进一步的松耦合)
IOC例子
- 导入jar包
每一个功能都有三个jar包 最基本jar包 文档 源代码
核心包含的jar包
做spring最基本的功能只用导入 Beans Core Contex expression
导入支持日志输出的jar包
- 创建类,方法
public class User {
public void add(){
System.out.println("add``````");
}
public static void main(String[] args) {
//原始做法
User user = new User();
user.add();
}
}
-
创建spring配置文件,配置创建类
- 核心配置文件名称和位置不是固定的 建议放在src下面,官方建议命名为applicationContex.xml文件
- 引用schema约束配置对象创建
<?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/spring-beans.xsd"> <!-- ioc入门 --> <bean id="user" class="com.ljy.spring.User"></bean> </beans>
写测试类
public class TestIoc {
@Test
public void testUser(){
//1.加载spring配置文件,根据创建对象
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContex.xml");
//2.得到配置创建对象
User user = (User) context.getBean("user");
System.out.println(user);
user.add();
}
}