Spring

一、设计思想

按照一种什么样的思考方式去编写程序,如面向过程、面向对象、面向切面等。

二、设计模式

按照一种规范的程序的解构去编写程序,常见23种设计模式。

如:哨兵模式、观察者模式、工厂模式等。

三、工厂模式

它提供了一种创建对象的方式,它的特点是无需指定具体的类。

工厂模式通过创建对象的接口,让子类决定实例化哪一个类。

这种模式将对象的创建过程与使用过程分离,使代码更加的灵活可扩展。

工厂模式的种类:

1.简单工厂模式

创建生产头型的工厂,可以生产不同的类型。头型种类:光头、中分、锅盖。根据工厂获得不同头型。(创建实例,可控制实例的创造过程)

2.工厂方法模式

为了满足用户需求,宝马车系列越来越多,如 320、523、740。一个工厂无法完成所有车型的创建。

由单个工厂分出来多个生产具体车型的工厂。每个工厂创建一种系列的宝马车。但是每个工厂都属于是宝马车的范列。

3.抽象工厂模式

随着客户的要求越来越高,宝马车必须配置空调和发动机。于是各个工厂开始配置对应型号的发动机及空调。

(将实例更加具象)

四、单例模式

在程序中,保证实例(对象)只被创建一次。

功能:缓解内存压力

特点:1、在类的内部创建实例,并且该实例只被创建一次,不允许外部调用创建。2、提供方法向外部返回实例。3、构造器私有化,在类的外部不允许使用new关键字创建实例。

五、Spring框架简介

Spring是一个开源的框架,是2003年兴起的一个轻量级Java框架。可以解决程序中关于实例的问题。

Spring功能:

  1. 控制反转(IOC):由Spring生产实例
  2. 依赖注入(DI):将生产好的实例赋值给引用上
  3. 切面编程(AOP):在实例执行的前中后去增加控制

用于Bean的管理容器:所谓的Bean,满足固定格式要求的类。

要求:1.属性私有化 2.为属性提供get和set方法

常见管理Bean的种类:

EJB:是Java EE中13项技术之一

Spring 管理容器特点:

Spring内部是由Java的反射机制实现实例的创建,默认情况只开启基础服务,其他服务是关闭的,可以通过配置开启。

在 Spring 配置文件中的<bean>标记里通过属性配置具体的类信息

id:表示符,用于标识类的引用,不能存在特殊字符,只能包含数字、字母和下划线。

name:标识符,可以是任意字符

class:配置类的地址,包括包名类名

六、SpringIOC控制反转

将Java中的类交给Spring来管理。

有四种管理方式:

  1. 调用无参构造器,通过无参构造器创建对象
  2. 调用静态工厂方法
  3. 调用工厂对象的工厂方法
  4. 扫描注解

6.1 调用无参构造器

1.容器启动时,创建所有对象

2.通过getBean获得对应的对象实例

3.所有实例都是单例模式,通过 scope="prototype"设置非单例模式(懒加载)。一旦设置该属性,配置文件加载时不创建该对象,调用getBean方法时创建对象。

4.通过init-method="init"属性配置初始化时默认调用的方法。

5.通过lazy-init="true"设置懒加载,注意属性不要与scope属性一起使用。

Q:加载文件时,通过构造器创建实例。

通过++?++(new/反射)机制创建对象。(反射)

管理++?++类(Bean规范)

6.2、调用静态工厂方法

通过bean标记中的factory-method配置类中的工厂方法,Spring实例化时会通过该方法创建实例

6.3、调用工厂对象的工厂方法

通过bean标记中的factory-bean配置工厂类,通过factory-method配置工厂类中的工厂方法

6.4、扫描注解

七、SpringDI(依赖注入)

将SpringIOC创建的实例赋值对应的引用名上,称为依赖注入。通过Spring管理容器将实例注入给引用名。

依赖注入有两种方式:

  1. 通过xml配置文件
  1. 通过属性set方法进行注入
  2. 通过构造器进行注入
  1. 注解注入

@Service: 用于标注业务层组件

@Controller: 用于标注控制层组件

@Repository: 用于标记数据访问层组件 dao

@Component: 当某一个类不确定属于哪种层的

@Resource: 根据名称注入(JDK提供的)

@Autowired:根据名称注入(spring提供)

八、SpringAOP(切面编程)

在实例执行的前,后等时机穿插其他的程序。

切面编程的两种方式:

  1. 在xml文件中定义
  2. 利用注解的方式定义

九、SpringMVC

SpringMVC是Spring框架的一个模式,SpringMVC和Spring无需通过中间件进行无缝整合,Spring是基于MVC设计思想的Web框架,通常用于前端和服务器端进行数据交互。

什么是MVC?

按照固定思路将工程分成三个模块,每个模块负责不同的业务内容。

M:Model模块层用于负责工程中数据持久化的部分

V:View视图层用于负责工程中页面展示的部分

C:Controller控制层用于负责工程中前后端数据交互的部分。

传统的Servlet存在的问题:

SpringMVC如何解决Servlet问题。

SpringBoot由SpringMVC构建,MVC由四个部分构成:中央控制器,处理映射器,视图解析器,处理器适配器。

使用SpringMVC步骤

  1. 发起请求到前端控制器(DispatherServlet)
  2. HandlerMapping查询Handler(使用配置文件配置,也可以使用注解)
  3. 处理器映射器传递数据(HandlerAdapter),按照特定的规则调用开发者编写处理器
  4. 调用开发者编写的Handler(处理器)
  5. 调用视图解析器(ModelAndView)
  6. 中央控制器向页面响应渲染的数据
相关推荐
青云交1 小时前
Java 大视界 -- Java 大数据在智能安防视频摘要与检索技术中的应用(128)
java·大数据·图像处理·机器学习·视频检索·智能安防·视频摘要
Biehmltym1 小时前
【架构差异】SpringとSpringBoot:Bean机制的深入剖析与自动配置原理
java·spring boot·spring
XiaoyuEr_66882 小时前
在java中使用RabbitMQ的步骤
java·rabbitmq·java-rabbitmq
日月星宿~4 小时前
【Spring 事务】
spring
南山不太冷4 小时前
Spring(4)——响应相关
java·后端·spring
kill bert4 小时前
第27周JavaSpringboot电商进阶开发 1.企业级用户验证
java·前端·数据库
GGGGGGGGGGGGGG.7 小时前
使用dockerfile创建镜像
java·开发语言
兮动人8 小时前
SpringBoot加载配置文件的优先级
java·spring boot·后端·springboot加载配置
我爱Jack8 小时前
HttpServletRequest 和 HttpServletResponse 区别和作用
java·spring·mvc