学习内容:Spring框架P1-P10
Spring 核心技术:IOC、AOP
官方网站:https://spring.io
重点学习Spring Framework所有框架的基础、SpringBoot用于帮助Spring快速开发和SpringCloud分布式微服务相关开发
架构图:
(1)核心层
Core Container:核心容器,这个模块是Spring最核心的模块,其他的都需要依赖该模块
(2)AOP层
AOP:面向切面编程,它依赖核心层容器,目的是在不改变原有代码的前提下对其进行功能增强
Aspects:AOP是思想,Aspects是对AOP思想的具体实现
(3)数据层
Data Access:数据访问,Spring全家桶中有对数据访问的具体实现技术
Data Integration:数据集成,Spring支持整合其他的数据层解决方案,比如Mybatis
Transactions:事务,Spring中事务管理是Spring AOP的一个具体实现
(4)Web层
这一层的内容将在SpringMVC框架具体学习
(5)Test层
Spring主要整合了Junit来完成单元测试和集成测试
IOC控制反转
- Spring 提供了IOC容器,被管理在容器内的对象成为bean,由原先程序员new创建对象,改变为用户自定义传递对象
DI注入
- 在配置文件中注入bean
<?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">
<bean id="user" class="com.itheima.dao.impl.UserImpl"/>
</beans>
- 在app中使用
public class App {
public static void main(String[] args) {
//获取IOC容器
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = context.getBean("user",User.class);
user.save();
}
}
Bean相关配置
- bean id=“” class=“” name=“” id为唯一表示 class指定所在类 name是别名 可以空格 ;,间隔
- constructor-arg 为构造器注入
- property 为属性注入 其中可以使用array value、list value、map、entry key=“” value=“”、set value、null、props prop
c命名空间和p命名空间
c:属性名=“属性值” 通过构造器注入
p:属性名=“属性值”通过属性注入
使用前需要导入XML约束