一、设计思想
按照一种什么样的思考方式去编写程序,如面向过程、面向对象、面向切面等。
二、设计模式
按照一种规范的程序的解构去编写程序,常见23种设计模式。
如:哨兵模式、观察者模式、工厂模式等。
三、工厂模式
它提供了一种创建对象的方式,它的特点是无需指定具体的类。
工厂模式通过创建对象的接口,让子类决定实例化哪一个类。
这种模式将对象的创建过程与使用过程分离,使代码更加的灵活可扩展。
工厂模式的种类:
1.简单工厂模式
创建生产头型的工厂,可以生产不同的类型。头型种类:光头、中分、锅盖。根据工厂获得不同头型。(创建实例,可控制实例的创造过程)
2.工厂方法模式
为了满足用户需求,宝马车系列越来越多,如 320、523、740。一个工厂无法完成所有车型的创建。
由单个工厂分出来多个生产具体车型的工厂。每个工厂创建一种系列的宝马车。但是每个工厂都属于是宝马车的范列。
3.抽象工厂模式
随着客户的要求越来越高,宝马车必须配置空调和发动机。于是各个工厂开始配置对应型号的发动机及空调。
(将实例更加具象)
四、单例模式
在程序中,保证实例(对象)只被创建一次。
功能:缓解内存压力
特点:1、在类的内部创建实例,并且该实例只被创建一次,不允许外部调用创建。2、提供方法向外部返回实例。3、构造器私有化,在类的外部不允许使用new关键字创建实例。
五、Spring框架简介
Spring是一个开源的框架,是2003年兴起的一个轻量级Java框架。可以解决程序中关于实例的问题。
Spring功能:
- 控制反转(IOC):由Spring生产实例
- 依赖注入(DI):将生产好的实例赋值给引用上
- 切面编程(AOP):在实例执行的前中后去增加控制
用于Bean的管理容器:所谓的Bean,满足固定格式要求的类。
要求:1.属性私有化 2.为属性提供get和set方法
常见管理Bean的种类:
EJB:是Java EE中13项技术之一
Spring 管理容器特点:
Spring内部是由Java的反射机制实现实例的创建,默认情况只开启基础服务,其他服务是关闭的,可以通过配置开启。
在 Spring 配置文件中的<bean>标记里通过属性配置具体的类信息
id:表示符,用于标识类的引用,不能存在特殊字符,只能包含数字、字母和下划线。
name:标识符,可以是任意字符
class:配置类的地址,包括包名类名
六、SpringIOC控制反转
将Java中的类交给Spring来管理。
有四种管理方式:
- 调用无参构造器,通过无参构造器创建对象
- 调用静态工厂方法
- 调用工厂对象的工厂方法
- 扫描注解
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管理容器将实例注入给引用名。
依赖注入有两种方式:
- 通过xml配置文件
- 通过属性set方法进行注入
- 通过构造器进行注入
- 注解注入
@Service: 用于标注业务层组件
@Controller: 用于标注控制层组件
@Repository: 用于标记数据访问层组件 dao
@Component: 当某一个类不确定属于哪种层的
@Resource: 根据名称注入(JDK提供的)
@Autowired:根据名称注入(spring提供)
八、SpringAOP(切面编程)
在实例执行的前,后等时机穿插其他的程序。
切面编程的两种方式:
- 在xml文件中定义
- 利用注解的方式定义
九、SpringMVC
SpringMVC是Spring框架的一个模式,SpringMVC和Spring无需通过中间件进行无缝整合,Spring是基于MVC设计思想的Web框架,通常用于前端和服务器端进行数据交互。
什么是MVC?
按照固定思路将工程分成三个模块,每个模块负责不同的业务内容。
M:Model模块层用于负责工程中数据持久化的部分
V:View视图层用于负责工程中页面展示的部分
C:Controller控制层用于负责工程中前后端数据交互的部分。
传统的Servlet存在的问题:

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

使用SpringMVC步骤
- 发起请求到前端控制器(DispatherServlet)
- HandlerMapping查询Handler(使用配置文件配置,也可以使用注解)
- 处理器映射器传递数据(HandlerAdapter),按照特定的规则调用开发者编写处理器
- 调用开发者编写的Handler(处理器)
- 调用视图解析器(ModelAndView)
- 中央控制器向页面响应渲染的数据