TypeScript
TypeScript中的基本类型TypeScript中的基本类型: 类型声明 类型声明是TS非常重要的一个特点; 通过类型声明可以指定TS中变量(参数、形参)的类型; 指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错; 简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值; 语法: 自动类型判断 1234567let 变量: 类型;let 变量: 类型 = 值;function fn(参数: 类型, 参数: 类型): 类型{ ...} TS拥有自动的类型判断机制 当对变量的声明和赋值是同时进行的,TS编译器会自动判断变量的类型 所以如果你的变量的声明和赋值时同时进行的,可以省略掉类型声明 类型: 类型 例子 描述 number 1, -33, 2.5 任意数字 string ‘hi’, “hi”, hi 任意字符串 boolean true、false 布尔值true或false 字面量 其本身 限制变量的值就是该字面量的值 any * 任意类型 ...
Spring整合MyBatis
案例介绍使用spring整合mybatis技术,完成账户模块(Account)的基础增删改查功能 表结构如下 列名 类型 id int 主键、自增 name varchar(24) 姓名,字符串,最多24个字符 money double(10,2) 账户余额,最大值99999999.99。小数点前最多8位,小数点后最多2位。本案例使用double类型,实际开发中使用decimal(10,2) XML方式整合第一步 引入依赖需要引入mysql,mybatis,spring,druid连接池,以及整合mybatis和spring的依赖 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869<dependencies> <!--Lombok--> <dependency> <groupId>o ...
Springmvc概述及原理
1 SpringMVC 概述三层架构 表现层:负责数据展示 业务层:负责业务处理 数据层:负责数据操作 MVC(Model View Controller),一种用于设计创建Web应用程序表现层的模式 Model(模型):数据模型,用于封装数据 View(视图):页面视图,用于展示数据 jsp html Controller(控制器):处理用户交互的调度器,用于根据用户需求处理程序逻辑 Servlet SpringMVC 2 入门案例2.1 入门案例制作①导入SpringMVC相关坐标 1234567891011121314151617181920212223242526272829303132<!-- servlet3.1规范的坐标 --><dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version> ...
SpringMVC 参数校验+整合spring+mybatis
校验框架校验框架入门表单校验的重要性 表单校验保障了数据有效性、安全性 (https://gitee.com/haoyongliang/resources/raw/master/images/springmvc/day03.assets/image-20200505144306747.png) 数据可以随意输入,导致错误的结果。后端表单校验的重要性。 表单校验分类 校验位置: 客户端校验 服务端校验 校验内容与对应方式: 格式校验 客户端:使用Js技术,利用正则表达式校验 服务端:使用校验框架 逻辑校验 客户端:使用ajax发送要校验的数据,在服务端完成逻辑校验,返回校验结果 服务端:接收到完整的请求后,在执行业务操作前,完成逻辑校验 表单校验规则 长度:例如用户名长度,评论字符数量 非法字符:例如用户名组成 数据格式:例如Email格式、 IP地址格式 边界值:例如转账金额上限,年龄上下限 重复性:例如用户名是否重复 表单校验框架 JSR(Java Specification Requests):Java 规范提案 303:提供bean属性相关校验规则 JSR ...
springBoot解决跨域的三种方法
SpringBoot解决跨域的三种方式文章目录 一:什么是跨域 1:为什么会出现跨域问题 2:什么是跨域 3:非同源限制 4:如何解决跨域问题 二:SpringBoot解决跨域问题 1:配置CorsFilter(全局跨域) 2:重写WebMvcConfigurer(全局跨域) 3:使用注解@CrossOrigin(局部跨域) 一:什么是跨域1:为什么会出现跨域问题 出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port) 简单说A应用只能访问A应用后台传来数据,B应用只能访问B应用后台传来的数据,如果A应用用Ajax获取数据时的URL地址中的协议、端口、域名其中有一个和B应用对应的话,则是A应用跨域 ...
Springmvc跨域 拦截器 异常处理 restful风格
0 今日案例需要的依赖12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> ...
springboot整合shiro jwt
springboot整合shiro和jwt-完整版前言shiro框架是如今web开发做权限控制的重要选择之一,除了这个之外选择spring security的也很多。两者都有各自的优点。shiro更加简单,而spring security本来就是spring家族的,api整合起来更加友好。博主在实际项目中只用过shiro,相比spring security,shiro简单一些。但是这些安全框架都不是特别容易理解。在项目中权限控制的思路是:首先用户可以凭借手机号+密码登录,也可以凭借手机号+验证码登录。如果登陆成功将颁发给用户一个token,token由jwt制作。往后token过期之前,用户访问的凭借都是token。如果token过期或者被篡改,则要求用户重新登陆。在token有效时,用户访问需要权限的接口都要经过shiro的两个核心注解RequiresRoles以及RequiresPermissions的验证。下面将一点点带大家一步步看项目如何实现权限控制的。 如果对security有兴趣的同学,可以去看看我朋友写的系列文章:spring-security 项目整体结构说明 本来是准 ...
Spring事务 模板对象(JdbcTemplate,RedisTemplate)使用
事物知识点回顾事物的四个特征原子性(Atomicity)指事务是一个不可分割的整体,其中的操作要么全执行或全不执行 一致性(Consistency)事务前后数据的完整性必须保持一致 隔离性(Isolation)事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离 持久性(Durability)持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其任何影响 事物的四个隔离级别读未提交(read-uncommitted) ,会造成脏读 不可重复读(read-committed) ,会造成不可重复度 oracle默认 可重复读(repeatable-read) ,会造成幻读 mysql默认 串行化(serializable) 脏读:表示读取未提交的数据,解决方案 read commited 不可重复度:两次读取到的数据不一致,原因是你在读取的时候,别人修改。解决方案 repeatable-read 幻读:两次读取到的数据条数不一致,原因是你在读取的时候,别人添加或者删除 ...
Spring AOP(注解 xml)开发
Spring 的 AOP 简介什么是 AOPAOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 AOP 是 OOP 的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 AOP 的作用及其优势作用:在程序运行期间,在不修改源码的情况下对方法进行功能增强 优势:减少重复代码,提高开发效率,并且便于维护 AOP 的底层实现实际上,AOP 的底层是通过 Spring 提供的的动态代理技术实现的。在运行期间,Spring通过动态代理技术动态的生成代理对象,代理对象方法执行时进行增强功能的介入,在去调用目标对象的方法,从而完成功能的增强。 AOP 相关术语 在正式讲解 AOP 的操作之前,我们必须理解 AOP 的相关术语,常用的术语如下: Target(目标对象):代理的目标对象 Proxy (代理):一个类被 ...
Spring连接池&注解开发&集成Junit
配置数据库连接池连接池相关知识点作用减少频繁创建、频繁释放链接、提高效率 常见的连接池DBCP,C3P0,Druid 创建连接池导入spring、数据库和连接池依赖1234567891011121314151617181920<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.32</version></dependency><dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version></dependency><dependency> <groupId>com.alib ...