springboot 建readme_README

本文深入探讨了SpringBoot的IoC、DI、DIP理论及其在实际中的应用,详细讲解了SpringBoot的模式注解、延迟实例化、注入方式、应对变化的策略以及自动装配原理。同时,文章还介绍了Vue3.0的全新特性,包括Composition API、指令使用、响应式对象、监听函数和组件编程。通过对Vue3.0的双向数据绑定、计算属性、组件props及事件处理的剖析,展示了Vue3.0在前端开发中的强大功能。此外,文章还涉及到了前端路由和状态管理Vuex的基本概念与实践。
摘要由CSDN通过智能技术生成

第一阶段 SpringBoot、JPA、Redis

第一章 Java编程思想深度理论知识

重点理论单纯interface可以统一方法调用,但是它不能统一对象实例化。

面向对象主要做两件事情:实例化对象和调用方法(完成业务逻辑)。

只有一段代码中没有new的出现,才能保持代码相对稳定,才能逐步实现OCP,实质是一段代码如果要保持稳定,就不应该负责对象的实例化。

对象的实例化是不可能消除的。

把对象实例化的过程,转移到其他代码片段。

代码中总是会存在不稳定,隔离这些不稳定,保证其他代码是稳定的。

变化造成了不稳定。

IOC、DI、DIP理论DIP(依赖倒置)高层模块不应该依赖低层模块,两者都应该依赖抽象

抽象不应该依赖细节

细节应该依赖抽象

总结一句话:面向抽象编程

DI(依赖注入)意义:松耦合,消除组件之间的直接依赖关系

实现原理:通过容器将对象注入进来。容器的作用就是装配对象,实现基本原理是工厂模式+反射。

IOC(控制反转)控制权的反转

PS积木生产厂家(程序员)

设计一个一个积木(类)

玩家/用户搭建一个一个形状

代码体现

程序员生产一个一个类,至于类如何使用,不再由程序员决定。

第二章 Spring与SpringBoot理论篇

2.1 模式注解

模式注解的目的为了实例化对象或者bean加入到IOC容器最基础的模式注解@Component

@Component的延申注解@Controller、@Service、@Repository,这三个注解与@Component的作用没多大区别,只是有语义的区分。

2.2 延迟实例化与注入时机SpringBoot默认机制会在SpringBoot应用启动时立即实例化并将实例注入到代码片段里。

可以通过@Lazy注解延迟实例化时机。可以通过无参构造函数测试@Lazy延迟实例化时机是否有效。

如果只在一方@Lazy,并没有在依赖注入一方加入@Lazy,那么延迟实例化时机没有效,原因是需要注入实例,需要立即实例化。

2.3 注入

注入方式成员变量注入

Setter方法注入

构造函数注入构造函数注入可以不用加@Autowried注解

注入分类被动注入类型byType:按照类型进行注入

byName:按照类名进行注入规则:类名UserService,变量名userService

优先级 先byType再ByName

规则不存在一个bean,直接报错

只存在一个bean,直接注入

存在多个bean,也有可能不报错。如果通过ByType之后,存在多个相同类型的bean,那么会按照byName注入。

如果以上的结果最后匹配失败,那么会报错

主动注入@Qualifier注解指定实例注入,相当于byName

2.4 应对变化的两种方案策略模式:制定一个接口,让多个类实现同一个接口解决方案:byName方式

@Qualifier指定bean名

有选择的只将一个bean加入到IOC容器

@Primary提高优先注入优先级

属性配置:修改类的属性应对变化为什么要把变化隔离到配置文件?配置文件具有集中性

清晰,没有业务逻辑

2.5 @Configuration配置原理

作用替换Bean在xml的配置方式

意义更加灵活地将一个实例加入到IOC容器

可以导入一组bean到IOC容器

2.6 条件注解

作用满足条件才会将一个bean加入到IOC容器

基本用法@Conditional + 实现Conditional接口@Conditional 注解要求传入一个元类型,而且这个类必须要实现Conditional接口。

Conditional接口提供了一个可以覆写的方法matches,这个方法要求返回boolean类型,如果true,则将bean加入到IOC容器;如果false,反之。

成品条件注解@ConditionOnProperty等@ConditionOnProperty 注解是需要跟配置文件搭配使用

其中有几个比较重要的参数

value 配置文件key名

havingValue 配置文件对应key的value

matchIfMissing 默认值false,如果为true,配置文件中没有对应key,则会加入到IOC容器@ConditionalOnBean:当SpringIoc容器内存在指定Bean的条件@ConditionalOnClass:当SpringIoc容器内存在指定Class的条件@ConditionalOnExpression:基于SpEL表达式作为判断条件@ConditionalOnJava:基于JVM版本作为判断条件@ConditionalOnJndi:在JNDI存在时查找指定的位置@ConditionalOnMissingBean:当SpringIoc容器内不存在指定Bean的条件@ConditionalOnMissingClass:当SpringIoc容器内不存在指定Class的条件@ConditionalOnNotWebApplication:当前项目不是Web项目的条件@ConditionalOnProperty:指定的属性是否有指定的值@ConditionalOnResource:类路径是否有指定的值@ConditionalOnSingleCandidate:当指定Bean在SpringIoc容器内只有一个,或者虽然有多个但是指定首选的Bean@ConditionalOnWebApplication:当前项目是Web项目的条件

2.7 自动装配原理

第二阶段 VUE

第一章 VUE的思想、WEB前端发展与Vue3.0新特性

1.1 vue3.0变化综述

vue3.0的一个很大的变动从options api -> composition api。options api 类似于小程序这种方式的api,vue2.x也是这种

const vm = new Vue(el,template)

composition api 更加函数式

1.2 vue的一些必备基础最基本三件套HTML+CSS+JAVASCRIPT

ES6

有小程序基础更好,如果没学习过小程序,推荐先学习小程序

1.3 前端发展四个阶段原生JS -> DOM

JQuery

vue/react/NG

工程化

1.5 服务端渲染VS前端渲染

一个页面三个要素:html+css+数据

服务端渲染:html+数据是在服务端结合,它最终返回的是一个html。技术栈:WEB框架+模板引擎

前端渲染:它仅仅返回一个模板html(css+js),通常来说是没有数据,数据是通过js请求api获取数据,最后才填充到html上。技术栈:Vue/React/NG

如何理解前端/后端?

可以理解为两个应用程序之间的通信。前端也是一个应用程序,服务端也是一个应用程序。服务端(B) - 前端(F)

应用场景:CMS/APP/H5,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值