自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 CAP理论

分布式的网络环境很复杂,容易出现的很多网络问题,各节点的状态如何同步很关键。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。C:一致性 :分布式系统中所有节点的数据备份同一时间都一致A:可用性:一部分节点出现故障后,非故障节点依然可用,集群依然能够预期时间内响应P:分区容错性:在节点之间不能通信时,系统可以继续正常服务。分布式环境下,避免不了节点之间网络波动等原因导致服务调用失败,不能因为这个原因导致系统整体不可用。因此必须要满足 P(分区容错性)那还能不能同时满足 C(一致性)

2020-06-18 20:03:13 197 1

原创 3..阿里云短信功能

登陆注册往往需要手机验证码来验证,这里就用到了阿里云的短信功能···com.alibabafastjsoncom.aliyunaliyun-java-sdk-core···发送的短信验证码不能一直有效,通过redis 设置验证码的过期时间,先从redis中找验证码,如果找不到,就需要发送短信重新获取;第一次都需要发送,将发送的验证码保存到 redis中去,设置过期时间为 5分钟···public class MsmController {@Autowiredprivate M

2020-06-16 23:22:30 1515

原创 2. JWT生成用户token

JWT就是生成token令牌的一种规则,包含3部分内容:头信息、信息载体、防伪标志头信息一般固定,表示数据时JWT的格式信息载体:一般携带用户信息,比如账户和密码防伪标志:可以自定义一个密匙依赖:<dependencies> <!-- JWT--> <dependency> <groupId>io.jsonwebtoken</groupId> <arti

2020-06-16 22:56:25 675

原创 1.单点登录概念

微服务架构中不免需要多个模块校验用户登录信息,这里就用到了sso,即单点登录。常见实现单点登录的方式有3种1.session广播机制实际上就是session复制技术;缺点,如果模块比较多,就要将session复制到每个模块,比较消耗资源,适合模块比较少的项目。2. cookie + redis登录后,用户信息放到redis中,key:生成唯一key,value:存储用户数据cookie :将redis中的key值放到 cookie中请求的时候携带cookie发送,判断cookie与redi

2020-06-16 22:19:49 235

原创 springboot整合redis缓存首页数据

一些网站首页的数据访问频率大,且数据不经常变更,此时就非常适合将首页数据缓存到redis当中。1.添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- spring2.X集成redis所需comm

2020-06-16 20:58:07 582

原创 6.mybatis之foreach的批量操作

之前已经用标签处理了List 集合数据,foreach 标签还有强大的功能,用于批量的 增、删、改 操作1.批量添加public void insertEmployeeBatch(@Param("emps")List<Employee> emps )<insert id="insertEmployeeBatch"> insert into tbl_employee(last_name, gender, descr ) values <foreach co

2020-06-13 19:50:24 322

原创 5.mybatis动态sql之foreach

当获取一个List 集合数据时,需要遍历判断,这个时候就用到了mybatis的标签public List<TAdmin> selectByIds(@Param("ids") List ids);collection:指定迭代的集合item:表示当前从集合中迭代的元素open:开始字符close:结束字符separator:分隔符原生sql:select id, name, age from student where id in (?,?,?);<select id="s

2020-06-13 19:14:27 94

原创 4.mybatis之动态sql

当不确定查询条件有几个的时候,用动态sql判断效果很好。采用OGN表达式。标签会动态去掉第一个 and/or,所以不用担心第一个条件不存在,会多一个 and/or的情况。<select id="selectByContation" resultType="com.mybatis.demo.mybatis1.bean.TAdmin"> select * from admin <where> <if test="id!=null">

2020-06-13 19:06:50 79

原创 3.mybatis一对多查询

查询一个班级拥有的学生,一对多查询班级中包含多个学生,List 保存学生信息。@Datapublic class ClassRoom { private Integer id; private String name; private List<Student> stus;}@Datapublic class Student { private Integer id; private String name;}2.mapper接口方

2020-06-13 10:46:16 109

原创 2.mybatis关联查询

mybatis的关联查询,学生表和班级表 ,比如要查询 学生所在的 班级1.Entity (注意学生类中要有班级ClassRoom 的对象属性)@Datapublic class Student { private Integer id; private String name; private ClassRoom classRoom;}@Datapublic class ClassRoom { private Integer id; private S

2020-06-13 10:32:06 187

原创 1.springboot整合mybatis

1.先看下目录结构,sql映射文件放在mapper 文件夹中2.配置一下yml文件spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC driver-class-name

2020-06-13 10:16:58 112

原创 SpringMvc接收前端数据的几种方式

springmvc接收前端数据的几种方式springmvc 是一个优秀的 mvc框架,今天主要了解一下springmvc获取前端接口数据的方式。在说接收方式前,先了解一下前端会传给我们什么样的数据类型。常见的有3种form-data,x-www-from-urlencoded 和 json 类型。form-data数据被编码为一条消息,一般文件上传时用。x-www-from-urlencoded 格式会将表单内的数据转换为键值 对,比如,name=java&age = 23 。json

2020-06-12 21:55:30 2596 2

原创 自定义注解以及应用场景

1.先创建一个自定义注解:RetentionPolicy.RUNTIME:在运行时有效(即运行时保留),当运行 Java 程序时, JVM 会保留注释。程序可以通过反射获取该注释ElementType.TYPE :用于修饰类@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@interface AnnotationTest{ String value() default "hello"; }2.获取自定义注解中的值

2020-06-11 22:36:20 720

原创 POI读取数据,存入数据库中

以这样的office表格为数据源,POI处理数据,读取表中数据,并写入数据库,并对当中存在空行的数据给出友好提示。office主要有03 和 07版本,区别不是很大。 <!--xls--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> &l

2020-06-10 10:26:49 407

原创 解决阿里云oss上传图片,打开地址直接下载,亲测有效!

今天将图片保存到阿里云的时候,发现打开图片地址后直接下载,在网上百度了一下,也没解决,于是通过官方帮助文档解决了。1.先注意阿里云默认存储图片的请求头为 image/jpeg,此时打开图片地址就会直接下载。将请求头改为image/jpg,图片就能够打开了,哈哈,是不是很聪明! 但是每上传一次就要修改一次,肯定不符合程序猿的脑回路,那就看看官网是怎么解决的。2. 以下是阿里云官方手册提供的设置请求头的方法// 如果需要上传时设置存储类型与访问权限,请参考以下示例代码。// ObjectMetadat

2020-06-09 22:25:13 13642 3

原创 mybatis-plus配置分页插件

1.在配置类中添加分页插件的方法//分页插件 @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); }测试分页方法@Test public void testSelectPage() { Page<User> page = new Page<>(1,3); //当前页

2020-06-08 17:59:59 2507

原创 mybatis-plus配置逻辑删除

在实际操作中,删除操作并不是真实的物理删除,而是逻辑删除,在数据库表中添加一列 deleted 字段表明数据是否被删除。entity 对象中在 deleted 字段添加 @TableLogic//逻辑删除 @TableLogic @TableField(fill = FieldFill.INSERT) private byte deleted;2.配置类中添加 逻辑删除的配置@Bean public ISqlInjector sqlInjector() {

2020-06-08 15:49:11 764

原创 mybatisplus配置乐观锁

在涉及到多线程操作数据库的时候,我们往往需要通过乐观锁来保证数据的安全性,防止丢失更新。乐观锁原理:使用(Version)记录机制实现,为数据库表增加一个 “version” 字段。当读取数据时,将version字段的值一同读出,数据每更新一次,对此version值加 1。当我们提交更新的时候,判断数据库表对应记录的当前版本信息与取出来的version值进行比对,如果数据库表当前版本号与第一次取出来的version值相等,则予以更新。(和Juc当中的AutomicReference类似)1.先在数据库

2020-06-08 15:02:37 1624

原创 MybatisPlus的自动填充功能

在对数据可进行一些操作的时候,有些字段基本是固定,比如创建时间和修改时间,我们可以利用mybatisplus的自动填充功能来实现。1.首先在需要在自动填充的字段属性上添加配置FieldFill.INSERT表示插入操作时起作用,FieldFill.INSERT_UPDATE表示在插入和修改时起作用。属性的驼峰对应数据库中字段的下划线。比如:createTime对应create_time@TableField(fill = FieldFill.INSERT) private Date crea

2020-06-08 13:58:59 1872

原创 项目中自定义统一返回结果

我们在项目当中,每个人的编码风格不同,可能会返回给前端不同格式的数据,有的传字符串,有的返回List/Map。返回的状态码也不尽相同,有的返回true,有的 200 。因此,在项目中我们就需要自定义一套模板,统一定义返回的数据格式和状态码。1.先建立一个统一的状态码(可自定义状态码,也可用Enum实现)//状态码public interface ResultCode { int OK = 20000;//成功 int ERROR = 20001;//失败}2.定义一个统一的返回

2020-06-07 09:17:59 833

原创 项目中引入Swagger

swagger测试对于后端来说比postman友好很多,所以在项目中加入swagger配置,便可以用swagger进行测试。1.首先导入swagger的依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> </dependency>

2020-06-07 08:43:13 3359 1

SpringMvc接收前端数据的几种方式.md

springmvc接收数据的几种方式,根据前端传递的数据类型判断用怎样的方式去接收。 @PathVariable、@RequestParam 和 @RequestBody 的使用场景。在不同情况下如何接收,以及他们之间的区别。

2020-06-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除