MyBatis-Plus概述
简介
MyBatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
愿景我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。
特性
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
支持自定义全局通用操作:支持全局通用方法注入( W ...
SpringBoot集成Dubbo和Zookeeper
什么是分布式系统?在《分布式系统原理与范型》一书中有如下定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”;
分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。
分布式系统(distributed system)是建立在网络之上的软件系统。
首先需要明确的是,只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,应用程序也不能进一步优化的时候,我们才需要考虑分布式系统。因为,分布式系统要解决的问题本身就是和单机系统一样的,而由于分布式系统多节点、通过网络通信的拓扑结构,会引入很多单机系统没有的问题,为了解决这些问题又会引入更多的机制、协议,带来更多的问题。。。
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,急需一个治理系统确保架构有条不紊的演进。
...
SpringBoot异步,定时,邮件任务
在我们的工作中,常常会用到异步处理任务,比如我们在网站上发送邮件,后台会去发送邮件,此时前台会造成响应不动,直到邮件发送完毕,响应才会成功,所以我们一般会采用多线程的方式去处理这些任务。还有一些定时任务,比如需要在每天凌晨的时候,分析一次前一天的日志信息。还有就是邮件的发送,微信的前身也是邮件服务呢?这些东西都是怎么实现的呢?其实SpringBoot都给我们提供了对应的支持,我们上手使用十分的简单,只需要开启一些注解支持,配置一些配置文件即可!那我们来看看吧~
异步任务1.创建一个SpringBoot项目导入Web模块。创建一个Service包
2.创建一个AsyncService类.编写方法,假装正在处理数据,使用线程设置一些延时,模拟同步等待的情况。
123456789101112@Servicepublic class AsyncService { public void hello(){ try { Thread.sleep(3000); } catch (Interrupte ...
SpringBoot集成Swagger
Swagger简介兴起原因由于前后端分离项目的兴起开发模式变为:
前端 -> 前端控制层、视图层
后端 -> 后端控制层、服务层、数据访问层
前后端通过API进行交互
前后端相对独立且松耦合
产生的问题:前后端集成,前端或者后端无法做到“及时协商,尽早解决”,最终导致问题集中爆发
解决方案:首先定义schema [ 计划的提纲 ],并实时跟踪最新的API,降低集成风险
简介
Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口类似,Swagger 消除了调用服务时可能会有的猜测。
号称世界上最流行的API框架
Restful API 文档在线自动生成器 => API 文档 与API 定义同步更新
直接运行,在线测试API
支持多种语 ...
SpringBoot集成SpringSecurity
在 Web 开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大的调整,因而需要更多的开发时间,影响应用的发布进程。因此,从应用开发的第一天就应该把安全相关的因素考虑进来,并在整个应用的开发过程中。市面上存在比较有名的:Shiro和Spring Security !
简介
Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它实际上是保护基于spring的应用程序的标准。
Spring Security是一个框架,侧重于为Java应用程序提供身份验证和授权。与所有Spring项目一样,Spring安全性的真正强大之处在于它可以轻松地扩展以满足定制需求
从官网的介绍中可以知道这是一个权限框架。想我们之前做项目是没有使用框架是怎么控制权限的?对于权限 一般会细分为功能权限 ...
SpringBoot整合MyBatis
环境搭建创建SpringBoot项目与整合JDBC一致,使用Druid数据源。pom.xml加入MyBatis依赖。
12345<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version></dependency>
配置数据库连接信息,使用Druid数据源,与其不变。
12345678910111213141516171819202122232425262728293031spring: datasource: username: root password: kylin # 假如时区报错了,就增加一个时区的配置 url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC& ...
SpringBoot整合Druid数据源
Druid简介Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。
Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。
Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。
Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。
Spring Boot 2.0 以上默认使用 Hikari 数据源,可以说 Hikari 与 Driud 都是当前 Java Web 上最优秀的数据源,重点介绍 Spring Boot 如何集成 Druid 数据源,如何实现数据库监控。
Github地址:https://github.com/alibaba/druid/
配置参数com.alibaba.druid.pool.DruidDataSource 基本配置参数如下
配置
缺省值
说明
name
配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来。 如果没有配 ...
SpringBoot整合JDBC
SpringBoot整合JDBC需要配置JDBC依赖,和Mysql驱动。
整合JDBC我们首先创建一个SpringBoot项目,引入相应的模块。
项目创建好之后发现pom.xml中帮我们自动导入了以下启动器和依赖
配置yaml(properties)配置文件连接数据库
1234567spring: datasource: username: root password: kylin url: jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC&characterEncoding=utf-8 driver-class-name: com.mysql.cj.jdbc.Driver
配置完数据库用户名密码和数据库地址驱动等一系列配置之后,我们就可以直接使用了。SpringBoot已经默认帮我们进行自动配置了。我们可以去测试类进行测试了。
1234567891011121314151617181920212223242526272829303132package com.kylin;import ...
SpringBoot配置嵌入式Servelt容器
SpringBoot默认使用Tomcat作为嵌入式的Servlet容器
定制和修改Servlet容器的相关配置
通过SringBoot文件修改和server有关的配置
123456789server.port=8081server.context-path=/crudserver.tomcat.uri-encoding=UTF-8//通用的Servlet容器设置server.xxx//Tomcat的设置server.tomcat.xxx
编写一个EmbeddedServletContainerCustomizer:嵌入式的Servlet容器的定制器,来修改Servlet容器的配置。Spring Boot2.0以上版本EmbeddedServletContainerCustomizer被WebServerFactoryCustomizer替代
SprinBoot-1.0x
EmbeddedServletContainerCustomizer
1234567891011@Bean //一定要将这个定制器加入到容器中public EmbeddedServletConta ...
Vue学习-6
v-bind指令 v-bind 主要用于属性绑定,比方你的class属性,style属性,value属性,href属性等等,只要是属性,就可以用v-bind指令进行绑定
v-bind指令用法<a v-bind:href='url'>跳转</a>
缩写形式<a :href='url'>跳转</a>
v-bind 和 v-on的区别
v-bind 绑定属性
v-on 绑定事件
指令v-model底层原理分析通过 v-on监听输入框的输入事件,将输入的值通过input事件处理函数存到data中给输入框,通过v-bind 绑定属性 value 把数据渲染到页面上
还可以将其简写
样式绑定之class绑定绑定对象通过v-bind:class = {键:值}
键代表一个类名 如果这个值为true表示显示这个类名 如果这个值 为false 表示不显示这个类名
可以看见当为true的时候类名是加上的。为false则没有类名
绑定数组如何绑定一个数组
通过v-bind:class =[ ...