关于第三阶段Spring框架总结1

本文详细介绍了Spring框架的基础概念,包括SHA1加密、bean生命周期管理、DI注入、单例与多例、AOP与MVC设计。深入剖析了Spring配置文件、对象创建与管理、以及AOP中的切面编程和专业术语。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.加密SHA1算法

1.hash的本质是函数:变量x经过特定的计算得到唯一值

2.Hash碰撞:不同的数据经过相同的hash算法,得到了相同的结果,称为hash碰撞,数学界无法规避

2.关于Spring框架的理解

Spring框架是针对bean的生命周期进行管理的轻量级容器

生命周期:对象的创建,初始化,对象业务逻辑执行,对象销毁

轻量级容器:Spring在内存中申请了一块内存空间,用来存储其他对象

IOC控制反转:把创建对象的权利交给Spring容器,Spring容器负责创建bean对象和管理对象之间的关系

AOP面向切面编程,降低组件之间的耦合性,便于后期维护

3.Spring如何创建对象( spring早期都使用.xml配置文件的方式来管理对象)?

1.定义Spring的配置文件地址

2.Spring容器启动时,加载指定的配置文件

3.当Spring扫描到bean标签时,加载属性id和class

4.根据反射机制实例化对象,根据class路径反射

5.Spring如何管理对象?

Spring容器在内部维护了一个大型的Map<K,V>集合,bean的id充当Map中的key,实例化对象充当Map中的Value

6.从Spring容器中通过Id或class类型获取对象

7.根据对象调用业务方法

4.Spring中的单例与多例和懒加载

单例:在内存中对象只有一份. 多例:在内存中对象有多份

Spring中默认为单例对象

@Bean @Scope("prototype") :表示多例对象 //@Scope("singleton") :表示单例对象

默认条件下,Spring容器启动,则会创建对象.(类比:饿汉式),如果开启了懒加载.则用户什么时候使用.则对象什么时候创建(类比:懒汉式).

注解: @Lazy 该注解只对单例模式有效 .多例模式均是懒加载.

5.Spring的生命周期

对象创建/初始化/业务调用/对象销毁

6.Spring DI 依赖注入

将Spring容器中的对象进行引入

@Autowired:将Spring容器对象按照类型注入

如果注入的类型是接口,则自动的查找其实现类对象进行注入

* 注意事项: 一般spring框架内部的接口都是单实现,特殊条件下可以多实现

按照名称注入:@Autowired+@Qualifier(name="")

@PropertySource 加载指定路径的配置文件

7.MVC设计思想

M:Model 数据层

V:View 视图层

C:Control 控制层

MVC的主要目的:降低代码的耦合性

基于MVC设计思想,在后端为了提高代码的扩展性,一般将后端代码分为三层

1.控制层 controller 与前端页面交互的 @controller

2.业务层 Service 编辑业务逻辑 @Service

3,持久层 Mapper 实现数据库的相关操作 @Mapper/@Repository

被调用的一般有接口和实现类:C(调用)---->S(调用)------>M

8.Spring-AOP:面向切面编程

代理模式说明:在业务层不方便做但是又不得不做的事情,可以放到代理对象中,通过这样的设计可以解决业务的耦合问题

Jdk代理:要求被代理对象必须是接口或者是其实现类, 类型名称: class com.sun.proxy.$Proxy9

Cglib代理:有些类没有接口,无法生成Jdk代理对象,代理对象是被代理者的子类

总结:Spring中的Aop 利用代理对象,再不修改源码的条件下,对方法进行扩展

编辑配置类,添加@EnableAspectJAutoProxy,让AOP机制有效

9.AOP中的专业术语

1.切面=切入点表达式+通知方法

@PointCut() 切入点:可以理解为if判断 ,

2.切入点表达式
     *   2.1 bean("对象的Id")
     *   2.2 within("包名.类名")
     *   2.3 execution(返回值类型 包名.类名.方法名(参数列表))
     *   2.4 @annotation(注解的路径)

3.定义通知方法:
     *   1.前置通知  在目标方法执行之前执行.@Before("pointcut()")
     *   2.后置通知  在目标方法执行之后执行.@AfterReturning()
     *   3.异常通知  在目标方法执行之后抛出异常时执行.@AfterThrowing()
     *   4.最终通知  都要执行的通知 @After

说明: 上述的四大通知一般用于记录程序的运行状态.只做记录.

     *   5.环绕通知  在目标方法执行前后都要执行的通知 @Around

10.框架之间的调用关系

10.Spring-Mvc简单参数传递

常识: 通过浏览器的地址栏 只能发起GET请求.

  1. @ResponseBody 将返回的数据转化为JSON串, 如果是字符串本身 原数据返回
  2. @RequestMapping("/hello") 实现浏览器的请求路径与方法的映射

11.RestFul参数接收

 restful格式 URL: http://localhost:8080/user/tomcat/18/男

restFul参数接收的语法:

* 1.参数使用{}进行包裹,并且指定属性名称

* 2.使用注解@PathVariable进行参数接收

* 3.restFul要求请求的路径不能出现动词

12.Linux系统常用操作命令总结

检查ip地址: ip addr if config

查询该目录下的所有文件: ls

定位该文件所在位置: pwd

创建a目录:mkdir a

在当前目录下创建b,c,d三个目录:mkdir b c d

创建文件:vim/vi    i(编辑)-->esc(退出)--> : wq (保存并退出)

复制文件a取名b: cp a b

关闭防火墙: systemctl stop firewall service

查看防火墙状态: firewall -cmd --state

关于日志查看命令:

        cat 8091.log 输出文档所有内容

        more 8091.log 

        tail -10 nginx.config 查看nginx.config的最后10行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值