Spring:
2002年首次推出了spring框架 2004年3月24号,spring框架以interface21为基础,经过重新设计,并不断丰富其内涵 创始人:Rod Johnson
Spring理念:是现有的技术更加容易使用,本身是一个大杂烩,整合了现有的框架
SSH: struct2+spring+hibernate! SSM: springMVC+Spring+Mybatis!
Spring-Framework
官网:Spring Framework Github:spring-projects/spring-framework: Spring Framework (github.com)
Maven依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>2.5</version>
</dependency>
Spring优点:
Spring是一个开源的免费的框架(容器) Spring轻量级的,非入侵的框架 ==控制反转(IOC)==,==面向切面编程(AOP)== 支持事务的处理,对框架整合的支持
总结一句话:Spring就是一个轻量级的控制反转(IOC),和面向切面的框架(AOP)
组成:
扩展:
在Spring的官网有这个介绍,现代的java开发,说白了就是基于Spring的开发
Spring Boot:
一个快速开发的脚手架 基于SpringBoot可以快速开发单个微服务 约定大于配置
SprintCloud:
基于SpringBoot实现的
因为大多数公司都在使用SpringBoot进行快速开发,学习SpringBoot的前提,需要完全掌握SpringMVC,承上启下的作用
弊端:
发展了太久以后,违背了原来的理念,配置十分繁琐人称:配置地狱
IOC理论推导
- UserDao接口
- UserDaoImpl实现类
- UserService业务接口
- UserServiceImpl业务实现类
在我们之前的业务中,用户的需求可能会影响我们原来的代码,我们需要根据用户的需求去修改源代码! 如果程序代码量十分大,修改一次的成本十分昂贵
我们使用一个set接口实现,已经发生了革命性的变化
之前,程序是主动创建对象! 控制权在程序猿手上
使用了set注入后,程序不再具有主动性,而是变成的被动的接收对象
这种思想,从本质上解决了问题,我们程序员不用再去管理对象的创建了。系统的耦合性大大降低,可以更加专注度在业务的实现上。这是IOC的原型!
IOC创建对象的方式
- 使用无参构造创建对象,默认实现!
- 假设我们要使用有参构造
总结:
在配置文件加载的时候,容器中的管理的对象就已经被初始化了!
Spring配置
-
别名:
-
Bean的配置:
-
import: 这个import,一般用于团队开发,他可以将多个配置文件,导入合并为一个;假设现在项目里有多个人开发,这三个人负责不同的类开发,不同的类要注册在不同的bean中,我们可以利用import将所有人都beans.xml合并为一个总的,使用的时候,直接使用总的配置就可以了