一、springBoot
1、自动化配置原理
启动类上 @SpringBootApplication注解是一个组合注解
------- @SpringBootConfiguration :
------- @ComponentScan :
作用是自动化包扫描,默认扫描当前启动类 的同级包和子级包带有相关注解的bean
------- @EnableAutoConfiguration:
作用是开启自动化配置 (就是自动调用封装到里面的配置)
包含了 @Import({AutoConfigurationImportSelector.class}) 导入自动化配置选择器
----AutoConfigurationImportSelector自动化配置选择器会默认加载 spring-boot-antuconfigure包下面的 meta-inf/spring.factories。
--- spring.factories声明了大量的场景配置(springboot内置好的自动化配置场景),会根据 spring.factories 配置文件中的bean的路径,按需加载。
org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration,\
@ConditionalOnMissingBean
用到啥场景就调用啥场景
按需加载【判断你当前的项目中是否存储需要的类,如果存在初始化】
每个场景的自动化配置类中会导入 具体配置类,
@EnableConfigurationProperties
配置类的属性有默认值。【如果你的配置文件中配置用配置文件的,没有配置用默认的数据值】
2、springBoot的相关注解
@SpringBootApplication 标记是一个springboot的应用
@EnableAutoConfiguration 开启自动化配置
@ComponentScan 进行包扫描
@Configuration 标记当前的类是一个配置类,相当于ssm框架中的spring.xml配置文件
@Bean 相当于spring中的<bean>标签,手动把bean内容加到spring容器中
@RestController 和 @Controller 是控制类 (不同就是返回值类型不同)
@Resource 和 @Autowired注入 目的是去springioc中去找bean
@ConfigurationProperties 声明是一个配置文件,能和配置文件中的参数对应
二、Vue
1、vue的思想:
数据驱动---双向绑定
组件化
vue组件中常见的三种传值方式:父传子、子传父、非父子传值
2、vue的相关标签:
v-text:替换标签的文本内容
v-html:替换标签的源代码,
v-for:循环 用在循环的标签上面
v-model: 表单元素的绑定, 双向数据绑定,可双向更改
v_bind:绑定属性
v-on:给元素绑定事件 v-on:触发事件的形式:方法、文本框
3、vue的特点
双向绑定
解耦与视图
可复用组件
m-v-vm模式
与js不同,不是dom,是直接面向数据开发
4、m-v-vm模式:(面向数据)
module:模型 对应的是数据
view:视图 模板
vm:模型与视图之间的桥梁
5、Vue的生命周期:
vue的生命周期是指Vue实例或者组件从诞生到消亡经历的每一个阶段,在这些阶段的前后可以设置一些函数当做事件来调用,这些函数就是钩子函数。以上八个钩子函数基本贯穿了一个生命周期,最常用的是 mounted:function(){}。
beforeCreate:function(){}
created:function(){}
beforeMount:function(){}
mounted:function(){}
beforeUpdate:function(){}
updated:function(){}
beforeDestroy:function(){}
destroied:function(){}
三、Vue-cli
(一)Node
1、nodejs是什么
node是Javascript的运行环境,可以解析和执行js代码。(浏览器)
web服务端后台的开发。
命令行执行工具:(npm【装包】,webpack【打包】)
2、npm
(1)初始化:npm init -y (package.json)
(2)安装(包):npm install/i 包名@version
(3)卸载(包):npm uninstall 包名@version
(二)vue脚手架
1、含义
(1)生成一套标准的vue前端项目的目录。(工具)
(2)辅助项目的开发。
(3)只是使用框架,将来打包的时候并不打包框架
2、vue脚手架创建
(1)安装脚手架包工具:
在cmd中,输入npm install -g @vue/cli 输入vue --version查看版本号
(2)创建vue脚手架工程:
a,通过脚手架的命令创建:
vue create 项目名称
b,通过可视化界面创建:
vue ui
3、vue脚手架项目目录
vue-pro02(vuecli3.x以上脚手架项目目录结构)
node_modules library root 【项目依赖包】
public 【静态资源目录,放一些不会变动的文件 (比如用户经常要下载的模板等)】
src
-assets【静态资源目录,和public区别是会被webpack构建】
-components 【公共的组件,方便复用】
-router【项目中的路由配置文件】
views【视图组件,路由中配置跳转的组件】
-App.vue【页面组件入口】
-main.js 【程序入口文件,加载各种公共组件】
.browserslistrc【指定项目的目标浏览器的范围】
.editorconfig 【代码规范文件】
.eslintrc.js【代码规范检查规则配置文件】
.gitignore 【git上传需要忽略的文件格式】
babel.config.js【es6语法转换(es6特性浏览器还没有全部支持,所以需要转成浏览器能够认识的代码)】
package.json【项目中依赖配置文件】
四、前后端结合
1、接口
只封装方法,没有方法体,需要有实现类
2、axios
作用:发送请求
前端:发送方法-----增删改查 post delete put get
后端:参数添加注解@RequestBody
3、跨域问题
浏览器的同源策略限制,同源策略会阻止一个域的js脚本和另一个域的内容进行交互。
当一个请求URL的协议、域名、端口三者之间任意一个与当前页面的URL不同时即为跨域
解决方式:
1、jsonp的原理就是利用<script>标签没有跨域限制,通过<script>标签src属性,发送带有callback参数的GET请求,
2、服务器实现CORS接口,在Controller中放置@CrossOrigin注解,特点:所有页面都可以访问,不安全性增加
3、http代理中间商,依赖node.js,基本原理是用服务端代理解决浏览器跨域问题,然后通过配置api发送到后台进行操作
五、软件生命周期
可行性研究(能不能做):可行性研究报告
软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
需求阶段(做什么):需求规格说明书
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。
设计阶段(怎么做):概要设计、详细设计
根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等。
业务流程、功能清单,资源清单
编码阶段(写代码):软件代码
是将软件设计的结果转换成计算机可运行的程序代码。
测试阶段(找BUG):测试用例,测试报告
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。
运维阶段(维护):实施手册,服务记录与处理单
是软件生命周期中持续时间最长的阶段,包括纠错性维护和改进性维护两个方面。
六、对接第三方接口
1、发短信
在官网申请、或者使用已有的信息模板,生成类
导入相关的依赖包
导入相关类
将需要发送的信息按照封装对象的类型要求,进行处理
后台发送验证码的登录
判断发送的电话号码是否存在,
随机生成验证码,并获取
将验证码和电话号码同时验证,都符合才可以登录
2、支付宝
(1)如何保证支付过程的加密安全性
使用加密技术对信息进行编码和解码
支付宝使用的是非对称加密,如RSA
基本原理:同时生成两把密钥:私钥和公钥
买家 自己的私钥,支付宝的公钥
支付宝 自己的私钥,买家的公钥
常见的加密方式
对称加密,如AES
非对称加密,如RSA
不可逆加密,如MD5,SHA
(2)支付中如何保持数据的一致性
支付宝的24小时9次通知+卖家的补偿机制+极端下的日志异常保存
(3)支付宝的通知机制
通知方式用两种,同步和异步;
同步通知:就是用户扫码后未关闭浏览器,支付宝会同步的调用我们的接口。
异步通知:支付宝提供的补偿机制,如果同步通知没有成功,支付宝会定时请求我们的接口。
异步通知的机制:24小时之内发送9次请求,如果调用返回success了,就不会再次发送了。
(使用这种机制,来保证订单状态的一致性,只要支付宝收到钱就一定要确保通知到商户系统,商户系统修改订单状态。还可以通过商户系统定时调用支付宝交易查询接口,查询支付状况,来确保订单状态的一致性。)