spring学习笔记(一)

105 阅读2分钟

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)

组成:

image.png

扩展:

在Spring的官网有这个介绍,现代的java开发,说白了就是基于Spring的开发 image.png

Spring Boot:

一个快速开发的脚手架 基于SpringBoot可以快速开发单个微服务 约定大于配置

SprintCloud:

基于SpringBoot实现的

因为大多数公司都在使用SpringBoot进行快速开发,学习SpringBoot的前提,需要完全掌握SpringMVC,承上启下的作用

弊端:

发展了太久以后,违背了原来的理念,配置十分繁琐人称:配置地狱

IOC理论推导

  1. UserDao接口
  2. UserDaoImpl实现类
  3. UserService业务接口
  4. UserServiceImpl业务实现类

在我们之前的业务中,用户的需求可能会影响我们原来的代码,我们需要根据用户的需求去修改源代码! 如果程序代码量十分大,修改一次的成本十分昂贵

我们使用一个set接口实现,已经发生了革命性的变化 image.png

之前,程序是主动创建对象! 控制权在程序猿手上 使用了set注入后,程序不再具有主动性,而是变成的被动的接收对象

这种思想,从本质上解决了问题,我们程序员不用再去管理对象的创建了。系统的耦合性大大降低,可以更加专注度在业务的实现上。这是IOC的原型! image.png image.png image.png image.png image.png

IOC创建对象的方式

  1. 使用无参构造创建对象,默认实现!
  2. 假设我们要使用有参构造 image.png image.png image.png

总结:

在配置文件加载的时候,容器中的管理的对象就已经被初始化了!

Spring配置

  1. 别名: image.png

  2. Bean的配置: image.png

  3. import: 这个import,一般用于团队开发,他可以将多个配置文件,导入合并为一个;假设现在项目里有多个人开发,这三个人负责不同的类开发,不同的类要注册在不同的bean中,我们可以利用import将所有人都beans.xml合并为一个总的,使用的时候,直接使用总的配置就可以了