自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Shiro(2)-MD5+salt+hash+认证+授权

MD5 算法作用: 一般用来加密 或者 签名(校验和)特点:MD5算法不可逆,如果内容相同无论执行多少次md5生成结果始终一致生成结果:始终是一个16进制 32位长度字符串shiro中MD5 +随机盐 //创建一个md5算法 Md5Hash md5Hash = new Md5Hash("kcl123"); String s = md5Hash.toHex(); System.out.println(s); //202cb962ac59

2021-04-30 22:50:05 142 2

原创 Shiro(1)-权限管理-身份认证-授权-shiro认证概念

什么是权限管理基本上涉及用户参与的兄系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源权限管理包括用户身份认证和授权两部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限,方可访问。什么是身份认证身份认证就是判断一个用户是否为合法用户的处理过程。最常用的简单身份认证方式是,系统通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户和口令一致,来判

2021-04-30 17:10:08 358 2

原创 Mybatis--SpringBoot整合Mybatis-注解方式-配置文件方式

原理pom只引入mysql再引入org.mybatis.springboot包 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </depe

2021-04-30 11:55:15 441 2

原创 Mybatis-HM(7)-延迟加载-缓存

延迟加载简介在一对多中,我们有一个用户,它有100个账户在查询用户的时候,要不要把关联的账户查出来?在查询账户的时候,要不要把关联的用户查处理来?在查询用户时,用户下的账户信息应该是什么时候使用,什么时候查处理来!在查询账户时,账户所属的用户信息,应该一起查询出来。什么是延迟加载?在真正使用数据时才发起查询,不用的时候不查询,按需加载(懒加载)什么是立即加载不管用不用,只要一调用方法,就查询处理啊在对应的四种表关系中: 一对多、多对一、一对一、多对多延迟加载:一对多,多对多立即加载:

2021-04-30 09:22:51 105

原创 Mybatis-HM(6)-多对多查询

准备工作drop table if EXISTS `user`;CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(16) NOT NULL COMMENT '用户名称', `birthday` datetime DEFAULT NULL COMMENT '生日', `sex` char(1) DEFAULT NULL COMMENT '性别', `address` varcha

2021-04-29 18:20:34 75

原创 Mybatis-HM(5)-一对一查询-一对多查询

准备用户和账户一个用户可以由多个账户一个账户只能属于一个用户,多个账户也可以属于一个用户建立两张表,用户表,账户表,让用户表和账户表具备一对多的关系,需要使用外键在账户中建立两个实体列,用户实体类和账户实体类,让用户和账户的实体类实现一对多的关系建立连个配置文件:用户的配置文件+用户的配置文件实现配置,当我们查询用户时,可以同时得到用户下所包含的账户信息,当我们查询账户时,可以同时得到账户所属用户信息CREATE TABLE `user` ( `id` int(11) NOT NUL

2021-04-29 17:58:57 101

原创 Mybatis-HM(4)-连接池-事务控制-If标签-Where标签

连接池实际开发中都会使用连接池,可以减少我们获取连接所消耗的时间连接池就是用于存储连接的一个容器容器其实就是一个集合对象,该集合必须是线程安全的,不能两个线程拿到同一个连接该集合还必须实现队列的特征:先进先出Mybatis连接池提供了3中方式的配置配置的位置是:主配置文件mybatisConfig.xml中的dataSource标签,type属性就是表示采用哪一种连接池方式type的取值有:POOlED: 采用传统的 javax.sql.DataSource规范中的连接池,mybat

2021-04-29 11:27:06 104

原创 Mybatis-HM(3)-模糊查询-ResultMap-SqlSession分析-Properties连接文件外置-TypeAliases-Package

模糊查询推荐使用这种方式,使用的prepareStatement的方式 List<User> findByNameLike(String name); <select id="findByNameLike" parameterType="String" resultType="com.kcl.pojo.User"> select * from user where username like #{name} </select>

2021-04-28 23:57:33 183 2

原创 java.util.Date与数据库datetime类型转换--Java数据类型与MySql类型对照表

定义实体类User定义的出生日期birthday类型是java.util.Date类型public class User { private int id; private String username; private Date birthday; private String sex; private String address;}数据库中存储的birthday是datetime类型CREATE TABLE `user` ( `id` int(

2021-04-28 20:42:28 2231

原创 Mybatis-HM(2)--注解--CRUD基本使用-注解进阶

查查询中携带参数使用注解注解实现,就不需要写mapper的interface的实现类了接口中的函数可以和mapper里面的<select>中的参数一一对应,当然也可以和注解一一对应 @Select("select * from user where username = #{name}") List<User> findUserByName(String name);不过mybatis里面的config,mappers文件的映射文件,就不是映射到res

2021-04-28 18:28:21 117

原创 JAVA--java.util.Date类与java.sql.Date类---日期格式化

java.util.Date类精确秒6个构造方法,4个已经过时Date() 系统时间Date(long date) 分配date对象并初始化,以表示从基准事件,即1970年1月1日 00:00:00来指定毫秒数Date(String s) 已过时,由DateFormat.parse(String s)取代//1.使用无参Date d1 = new Date();System.out.println("d1 = " + d1); // d1 = Wed Apr 28 17:16:04 CS

2021-04-28 18:26:50 861

原创 Mybatis-HM(1)-mybatisConfig和mapper和SQLSession

准备工作create table `user`( `id` int not null AUTO_INCREMENT , `username` VARCHAR(16) not null COMMENT '用户名称', `birthday` datetime DEFAULT null COMMENT '生日', `sex` char(1) default null COMMENT '性别', `address` varchar(256) DEFAULT null COMM

2021-04-28 15:57:17 163

原创 Redis(2)-概述和Mac系统安装redis

应用场景配合关系型数据库做高速缓存高频次,热门访问的数据库,降低数据库IO分布式架构,做session共享多样的数据结构存储持久化数据通过List实现按自然时间排序的数据,更新N个数据利用zest有序集合,排行榜Expire过期,时效性数据,比如手机验证码原子性,自增方法,用于计数器,秒杀利用set集合,取出大量数据中的重复数据利用list集合,构建队列pub/sub模式,发布订阅消息系统Redis安装redis官网需要gcc环境国内homebrew/bin/zsh

2021-04-28 13:46:53 106

原创 Redis(1)-NoSQL简介

NoSQL简介解决功能性问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN解决扩展性问题:Struts、Spring、SpringMVC、Hibernate、Mybatis解决性能问题:NoSQL、Java线程、Hadoop、Nginx、MQ、ElasticSearchWeb 1.0时代数据访问量有限,高性能的单点服务器可以解决大部分问题Web2.0时代手机时代,web访问量增大,单点服务器cpu及内存压力大,数据库服务io压力大解决CPU和内存压

2021-04-28 10:40:43 91

原创 SpringBoot-请求拦截器查看本地Cookie,判断用户是否登录

用户登录时,服务器创建一个 token值,并设置一个cookie保存至浏览器User user = new User();//使用token辨认用户String token = UUID.randomUUID().toString();user.setToken(token);user.setName(gitHubUser.getLogin());user.setAccountId(String.valueOf(gitHubUser.getId()));user.setAvatarUrl(gi

2021-04-28 08:47:05 1763

原创 CSS样式总结

左右居中margin: 0 auto上下左右居中,abslute+transformposition: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%);

2021-04-27 23:51:19 85

原创 vue3-vue.config.js-配置别名

//会和项目公共的配置进行合并module.exports = { configureWebpack: { resolve: { extensions: [], alias: { // '@': 'src' 内部已经配置了这个 'assets': '@/assets', 'common': '@/common', 'components': '@/components', 'network'

2021-04-27 22:38:14 820

原创 Github-使用-supermal项目

创建仓库git remote add origin https://github.com/kcl1997/supermall.gitgit push -u orgin mastergit add . git commit -m 'description'git push创建vue.config.js新建.edit.config文件root = true[*]charset = utf-8indent_style = spaceindent_size = 2

2021-04-27 10:44:31 111

原创 Axios-拦截器interceptors

有4个拦截:请求成功 | 请求失败 | 响应成功 | 响应失败export function request(config) { const instance = axios.create({ baseURL: 'http://123.207.32.32:8000', timeout: 5000 }) //拦截器 instance.interceptors.request.use( //发送成功 config=>{

2021-04-26 23:02:56 400

原创 Vue-Axios基本使用-并发请求-全局配置-Axios实例-模块封装

Axios基本使用导入axioscnpm npm install axios --saveimport axios form 'axios'axios({ url: 'http://123.207.32.32:8000/home/multidata' // axios自动调用promise,并进入resolve函数继续调用}).then(res=>{ console.log(res)})

2021-04-26 20:09:46 425

原创 Vuex-Actions(替换Mutation的异步操作)-Modules模块-对象解构

actions引子修改info的name<h2>info:{{$store.state.info}}</h2> <button @click="updateInfo">修改info的name</button> updateInfo(){ this.$store.commit('updateInfo') }mutations updateInfo(state){ //请求服务器更改 setTim

2021-04-26 12:04:42 401

原创 Vuex-State-Mutations携带参数|响应规则|类型常量-Getters

Vuex简介是一个专为vue.js开发的状态管理模式它采用集中式存储管理应用的所有组件的状态,并以对应的规则保证状态以一种可预测的方式发生变化Vuex也继承到Vue的官方调试工具devtools extension,提供了诸如零配置的time-travel调试,状态快照导入导出等高级调试功能什么是状态管理?你可以简单的将其看成需要多个组件共享的变量全部存储在一个对象里面然后,将这个对象放在顶层的Vue实例中,让其他组件可以使用那么,多个组件是不是就可以共享这个对象中的所有变量属性了呢?

2021-04-25 23:16:24 441

原创 JavaScript-Promise介绍-三种状态-all方法

Promise介绍Promise是ES6引入的一个语法Promise是异步编程的一种解决方案什么时候处理异步事件?网络请求我们封装一个网络请求的函数,因为不能立刻拿到结果所以我们会传入另外一个函数,在数据请求成功时,将数据通过传入的而函数回调出去如果只是一个简单地网络请求,那么这种方案不会给我们带来很大的麻烦但是当网络请求太复杂时,就会出现回调地狱回调地狱我们通过一个url1从服务器加载一个数据data1,data1中包含了下一个请求url2我们需要通过data1取出url2

2021-04-25 18:17:25 783

原创 Nginx-mac安装Nginx-配置

Nginx介绍Nginx是一个高性能的HTTP和反向代理的web服务器,同时也提供了IMAP/POP3/SMTP服务器。是由伊戈尔.塞索耶夫开发的占有内存少,并发能力强,支持高达50,000个鬓发连接数的响应反向代理VPN: 正向代理反向代理:代理服务器负载均衡轮询服务器,加权轮询…iphash对客户端请求的ip进行hash操作,然后根据hash结果将同一个…动静分离安装Ningx安装命令:sudo brew install nginxsudo: 以管理员身份运行b

2021-04-25 15:41:45 266

原创 CSS-弹性布局-定位

display: flex默认是主轴方向flex-direction: row | columnflex-wrapflex-flowjustify-content:主轴方向元素该怎么显示 flex-start | flex-end | center |space-between| space-aroundalign-itemsalign-content定位position默认方式staticrelative 相对定位, 相对于默认位置偏移,left: 5px;top:10px 右

2021-04-24 21:31:19 383

原创 Vue-路由-keep-alive

介绍router-view是vue-router的一个组件,如果直接被包在keep-alive里面,所有路径匹配到的视图组件都会被缓存keep-alive是vue内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染activated() 和 deactivated() 这两个函数,只有该组件被保持了状态使用了keep-alive时,才生效keep-alive 两个属性-include-exclude多个组件,用逗号隔开...

2021-04-24 18:00:25 105

原创 Vue-路由-传递参数-$route-$router-导航守卫-beforeEach

传递参数两种方式:params和queryparams的类型* 配置路由格式: `/router/:id`* 传递的方式:在path后面加上对应的值* 传递后形成的路径:` /router/123`, `/router/abc`1.首先编写User.vue组件2. App.vue 有一个router-link :to="'/user/'+userId",界面链接显示3. router->index.js 配置/user/:id 路由映射方式,这样就根据userid映射成功了4.

2021-04-24 16:41:49 605

原创 Vue-路由-动态路由-懒加载-路由嵌套

动态路由在某些情况下,一个页面的path路径可能是不确定的,比如进入用户界面时,我们希望的路径是/user/aaa/user/bbb除了有前面的/user之外,后面还跟上了用户的ID这种path和Component的匹配关系,我们称之为动态路由http://localhost:8080/user/zhangsanrouter main.js { path: '/user/:userId', component: User }App.vue<

2021-04-24 11:38:00 213

原创 Vue-路由-安装和配置方式

安装和使用npm install vue-router --save导入路由对象,并调用Vue.use(VueRouter)创建路由实例,并传入路由映射配置在Vue实例中挂在创建的路由实例新建router文件夹,新建index.js文件//配置路由相关的信息import VueRouter from 'vue-router'//1.通过Vue.use(插件),安装插件import Vue from "vue";Vue.use(VueRouter)//2. 创建VueRouter对

2021-04-23 23:00:16 425

原创 Vue-路由-原理简介-前端路由-hash-history

认识路由先创建一个vue-cli2项目,use vue-router略…前端渲染 后端渲染 前端路由 后端路由后端渲染jsp: (java server page) = html+css+java代码(动态从数据库读取数据)服务器端已经渲染好了,网页已经渲染好了,然后发送给前端服务器端直接生产渲染号对象的html页面,返回给客户端进行展示URL会发送给服务器,服务器会通过正则对该url进行匹配,并且最后交给一个controller进行处理controller进行各种处理,最终生成HT

2021-04-23 19:54:33 1482 8

原创 Vue-脚手架-CLI2-CLI3-箭头函数

简介CLI是Command-Line Interface,命令行界面,俗称脚手架vue cli 是一个官方发布的vue.js项目的脚手架使用vue-cli可以快速搭建vue开发环境以及对应的webpack配置使用前提-1.node 2.webpackwebpack依赖于node(npm)vue.js官方脚手架工具使用了webpack模板,他在开发中提供了一套完整的功能,能够使我们开发过程中变得高效vue CLI使用安装脚手架3终端安装!!!sudo cnpm install -g @

2021-04-23 17:26:57 281

原创 webpack-3-plugin插件-html打包压缩

Pluginloader和plugin的区别:loader主要用于转换某些类型的模块,他是一个转换器plugin是插件,他是对webpack本身的扩展,是一个扩展器plugin的使用过程:通过npm安装使用plugins,某些webpack已经内置插件在webpack.config.js中的plugins中配置插件版权声明pluginreact MIT 协议...

2021-04-23 11:29:55 177

原创 Vue(5)-CommonJS

commonJs导入导出导出:var flag = truefunction sum(a,b){ return a+b;}module.exports = { flag: flag, sum: sum}导入var {flag,sum} = require('./01.js')console.log(sum(1, 2));ES模块化的导入和导出export { flag,sum}import {flag,sum} from './01.js'方式二expor

2021-04-22 18:01:53 1139

原创 Vue(4)-插槽slot

为什么使用slot?slot的基本使用nav-bar导航栏组件,分为三部分,左中右,三个slot,预留空间<div id="app"> <cpn><button>按钮</button></cpn> <cpn><span>span</span></cpn> <cpn><h2>h2</h2></cpn></div>

2021-04-22 16:25:24 143

原创 Vue(3)-计算属性和侦听器

计算属性计算属性可以看成一种可以缓存的结果的函数(即属性,即对象),只要这个函数里的变量不变,那么这个函数的结果就不变计算属性包含watch的功能,computed的get函数体就有侦听功能!模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。例如:<div id="example"> {{ message.split('').reverse().join('') }}</div>在这个地方,模板不再是简单的声明

2021-04-22 14:24:18 107

原创 Vue(2)-v-on参数问题, v-on修饰符

v-on参数问题如果@click不需要额外的参数,该方法后的()可以不添加如果方法本身中有一个参数,那么会默认将原生事件event参数传递进去如果需要同时传入某个参数,同时需要event时,可以通过$event传入事件<div id="app"> <!--undefine--> <button @click="btn1Click()">btn1</button> <!--默认传入mouseEvent对象-->

2021-04-22 10:54:42 118

原创 Vue(1)-Component -父子组件通信

注册组件组件标签名要小写,组件要用div包裹使用组件的div需要用vue绑定,在vue绑定范围之外无法使用<div id="app"> <cpn></cpn> <cpn></cpn></div><script> Vue.component('cpn',{ template: ` <div> <h2>title</h2>

2021-04-21 20:25:50 406 1

原创 webpack-2-所有配置-template-vue终极使用方案

创建文件夹打包好后,index.html 引入bundle.js文件即可生成package.jsonnpm init在package.json中添加脚本命令"build": "webpack"3.生成package-lock.json文件,不用管npm install创建webpack.config.js文件const path = require('path')module.exports = { entry: './src/main.js', output:..

2021-04-21 16:22:42 235

原创 webpack-1-使用config-css-url-babel-loader

math.jsfunction add(a,b) { return a+b;}function sub(a,b) { return a-b;}module.exports = { add, sub}main.js//commonJS语法const{add,sub} = require("./math")var a = 10,b = 5;var t1 = add(a,b);console.log(t1);//ES6语法import {name,age,sex

2021-04-21 13:47:51 636 2

原创 Vue-node.js,Webpack-kuang 略

计算属性:重在属性插槽vue-cli安装nodejs, 使用淘宝加速器npm是软件包管理工具npm install cnpm -g

2021-04-20 18:09:17 429 1

空空如也

空空如也

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

TA关注的人

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