框架概述
1、Spring是轻量级的开源的JavaE框架
2、Spring可以解决企业应用开发的复杂性,
3.Spring有两个核心部分:IOC和Aop:
(1) IoC:控制反转,把创建对象过程交给Spring进行管理
(2) Aop:面向切面,不修改源代码进行功能增强,
4、Spring特点
(1)方便解耦,简化开发。
(2) Aop编程支持
(3)方便程序测试
(4)方便和其他框架进行整合。
(5)方便进行事务操作
(6)降低API开发难度;
入门案例
1.创建普通类,在这个类中创建普通方法
User.java
package com.atguigu.spring5;
/**
* @author pengyang
* @date 2022-06-09 20:00
*/
public class User {
public void add(){
System.out.println("add.....");
}
}
2.创建Spring配置文件,在配置文件配置创建的对象
Spring配置文件使用xml格式
bean1.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">
<!--配置User对象创建-->
<bean id="user" class="com.atguigu.spring5.User"></bean>
</beans>
3.编写测试代码
TestSpring5.java
package com.atguigu.spring5.testdemo;
import com.atguigu.spring5.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author pengyang
* @date 2022-06-09 20:08
*/
public class TestSpring5 {
@Test
public void testAdd() {
//1.加载spring配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//2.获取配置创建的对象
User user = context.getBean("user", User.class);
System.out.println(user);
user.add();
}
}
测试结果
IOC容器
IOC的概念和原理
1、什么是IOC
(1)控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理
(2) 使用IOC目的:为了耦合度降低
(3)做入门案例就是IOC实现
2、IOC底层原理
(1) xml解析、工厂模式、反射
3、画图讲解IOC底层原理
IOC过程
IOC接口
1、IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
2、Spring提供IOC容器实现两种方式:(两个接口)
(1)BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用
*加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象
(2) ApplicationContext::BeanFactory,接口的子接口,提供更多更强大的功能,一般由开发人员进行使用
*加载配置文件时候就会把在配置文件对象进行创建
3、ApplicationContext,接口有实现类