自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

myllxy

高山仰止 日久弥新

  • 博客(203)
  • 收藏
  • 关注

原创 SpringBoot源码阅读:核心 —— 自动装配(1)

SpringBoot的自动注册用@EnableAutoConfiguration来完成除开元注解,我们来看看这个注解:@AutoConfigurationPackage@Import(AutoConfigurationImportSelector.class)public @interface EnableAutoConfiguration { String ENABLED_OVERR...

2020-02-12 23:27:46 216

原创 SpringBoot @ComponentScan排除扫描

指定包扫描的根路径,让 Spring 来扫描指定包及子包下的组件。不过在上面的声明中有显式的指定了两个过滤条件:@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, c...

2020-02-11 23:18:25 7022

原创 axiso+jwt实现无状态登录

jwt是目前最流行的跨域解决认证方案 - JWT 是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准(RFC 7519)。JWT 的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源。比如用在用户登录上。

2020-02-10 18:31:21 388

原创 Spring - (9) Java注解配置

spring推出Java注解配置以替代xml的方式来进行开发,也就是说平时使用的xml其中的诸如事务数据源这些配置都可以放到一个Java类中来实现,而这个Java类我们只需要加上 @Configuration 注解就可以了我们来分析一下和xml具体有哪些区别与联系:1.创建Bean的方式如果是xml配置:你可以选择在Java类上加个@Component等注解,然后配置扫描包就能实现bean...

2020-02-10 14:52:22 184

原创 Kibana结合es的使用

安装包解压后运行kibana.bat(es已经运行的情况下):http://localhost:5601/ES文档操作es是面向文档的,存储文档的同时对其进行索引使其能被搜索到。1.创建文档:PUT /lxy/demo1/1{ "id":1, "username":"张三"}2.读取文档://返回全部数据GET /lxy/demo1/1//返回部分数据GET /...

2020-02-07 22:52:23 1480

原创 Mybatis总结(7)select查询结果封装为map

1.查一条将单独的一条数据中每一对属性名/属性值对应map中的key/value查出来{seller=6, gender=1, name=张三, tel=qqq, id=22, customerSource=1, status=已跟进} <select id="getCustomerMap" resultType="map"> SELECT * FROM t...

2020-02-06 22:04:30 2477

原创 Mybatis总结(6)多层级联映射问题

分步查询与关联不能出现在一起,类似这种结构:会造成代码冗余;应该这么写: <resultMap id="permissionResultMap" type="Permission"> <id property="id" column="id"/> <result property="name" column="name"...

2020-02-05 21:19:09 706 5

原创 Mybatis总结(5)自动填充关联对象

比如现在有三张表t_grade、t_class、t_student通过t_student的class_sn可以查到对应的class,通过class_sn可以查到对应的grade,我们在为这张表配置映射文件时大致是这种结构: <resultMap id="studentResultMap" type="Student"> <id property="id"...

2020-02-04 17:23:34 494

原创 Mybatis总结(3)基础映射

其实mybatis并不是一个dao层的完整处理方案(它并不像jpa),你可以将它单纯地看做一个提供sql映射的框架,你在xml映射文件中的配置最终都会调用jdbc的api来对数据库进行具体操作。select,insert,update,delete:像select中的where id = #{id}这种,mybatis会为其生成一个预处理sql语句,并且在where后面提供一个占位符?,然后通...

2020-02-02 17:33:29 149

原创 Mybatis总结(2)接口式编程

实际工作中使用Mybatis都是使用接口式编程:使用接口来描述给定的sql的参数和返回值public interface EmployeeMapper extends BaseMapper<Employee, Long> { void deleteRoleAndEmployee(@Param("empSn") Long empSn);}将接口与配置文件绑定&...

2020-02-01 15:45:59 162

原创 Mybatis总结(4)参数传递

一.单个参数时可以接受基本类型,对象类型,集合类型的值。这种情况MyBatis可直接使用这个参数,不需要经过任何处理。二.多个参数时1.规则任意多个参数,都会被MyBatis重新包装成一个Map传入。Map的key是param1,param2,arg1, arg0…,值就是参数的值。在dao层接口参数上可以加@Param,它的主要作用就是为参数起别名:@Param(“empSn”) L...

2020-01-31 17:34:28 425

原创 Mybatis总结(1)简介

1.什么是MybatisMyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。2.为什么要使用它相较于JD...

2020-01-31 15:38:25 133

原创 elementUI tree-transfer的使用

git地址做出效果如下:根据这个结构我们也可以判断,后台只需要查父权限然后分布查询到其下的子权限就好了按照指定的格式返回菜单对象:值得一提的是它的fromData和toData相当于是官方组件的v-model...

2020-01-29 18:25:50 2814

原创 elementUI动态菜单

动态菜单的话应该有两种思路吧,第一种是后台返回一个必须满足前台解析规则的菜单对象实体,第二种是前台拿到后台的菜单对象后(这个菜单对象不需要完全和前台匹配)取出其中的菜单名字,然后和前台写死的菜单进行比对,有相同的就显示不然隐藏。这里介绍第二种:首先,菜单是根据当前用户进行实时响应的,所以我需要在登录的时候进行菜单信息注入: /* 1.通过当前用户拿到其对应的角色 */ ...

2020-01-29 18:13:58 3122

原创 mybatis、elementui部门查询父部门与子部门

首先是查询父部门,一个子部门对应一个直接父部门: <select id="selectPageByQuery" resultMap="departmentResultMap"> SELECT d.id,d.name,d.sn,d.manager_sn,d.parent_sn,d.state, d2.id d2id,d2.sn d2sn,d2.na...

2020-01-27 12:32:12 834

原创 mybatis、elementui后端传值前端展示问题

我们应该有这样一个常识,当后台向前台返回数据时,除了普通类型字段之外(如文本),所有有关联关系的,我们都应该返回一个对象;比如我数据库中有个requence字段(该字段数据库中存储为varchar等普通字段),这个字段关联另一个对象的主键,也就是说通过这个字段可以找到另外一个对象(对象a),我们称之为映射;而现在我只需要a中的name,如下所示,我们不应该返回name,而是应该将整个对象返回,...

2020-01-10 22:40:26 839

原创 redis持久化

一.RDFredis默认是RDF的持久化策略# The filename where to dump the DBdbfilename dump.rdb# 900s内有一条数据修改即触发保存save 900 1save 300 5save 10 10可以关闭,将这几个注释掉就好,再加一个save “”:save ""# save 900 1# save 300 5# s...

2020-01-10 12:36:46 155

原创 mybatis一对多解决element中select下拉框值的填充问题

场景描述:如下,我要做一个下拉框客户来源是数据字典中的数据,电话销售、朋友介绍、移动广告是数据字典明细中的数据,前后者关系是一对多;或许你已经知道了,我只要拿到客户来源,就能根据一对多关系拿到其相关的所有的数据字典明细了1.先拿到客户来源 <el-form :model="form" label-width="80px" :rules="addFormRule...

2020-01-07 22:27:45 795

原创 mybatis使用association解决数据字典问题

场景描述:我t_customer表使用了数据字典明细中的值,但我不可能直接用数据字典中真实的值啊,那数据字典明细的存在就没有意义了,因此可以利用数据字典明细中每行的数据字典序号,它是不变的,当我在查询t_customer表所有数据的时候,拿到这个数据字典序号去数据字典明细中找到对应的值,然后替换t_customer表中对应字段就好了。1.前端拿到后端的分页数据 /* 获取...

2020-01-07 21:39:58 1521

原创 elementUI分页

后台是有未分页的所有的数据的当每页数据量以及当前页发生改变时,才进行重新分页前台在一次请求只需要返回给后台一个页面的数据而已根据这三点你就可以得到得到返回给后台每页的数据的begin、end索引在总数据中所处的位置:Mock.mock("/user/list", "post", function (options) { /* 当每页数据量以及当前页发生改变时,才进行重新分页 */...

2020-01-02 22:45:08 175

原创 在注册模块查询后台user时解决空值问题

前端要做一个在注册时显示当前用户或者邮箱是否重复注册的ajax根据情况,后端需要返回3种json:{result=可以注册}{name=用户名重复}{email=邮箱重复}当可以注册时,后端从user表中查询到的是null,平时我们需要判断是否为null,但我们可以使用jdk8的Option更优雅地来处理这种问题。如下: /** * @param name 用户...

2019-12-30 09:07:19 383

原创 浏览器对输入框的自动补全功能造成的bug解决方案

浏览器会根据你的cookie自动补全你的input输入框,有些时候会造成一些不期待发生的事比如下面这个业务场景:我根据cookie自动补全的话,密码也会同时补全,这样就相当于同时触发了两次verificationRepeat函数$("#name,#email,#password").on("input propertychange", verificationRepeat);而我...

2019-12-26 00:37:55 908

原创 关于ajax请求和普通form请求冲突所引出的表单提交问题

一.<input type=‘button‘value=“提交“>和<button type=‘button‘value=“提交“>他们不能用于提交表单,通常都用于修饰按钮的样式来使用注意后者是h5的标签,提供了更为强大的功能和更丰富的内容。<button>与</button>标签之间的所有内容都是按钮的内容,其中包括任何可接受的正文内容...

2019-12-22 13:54:00 976

原创 aisell(8) 菜单menu结构设计及背后业务思考

在真实项目中出现假数据是很少的,包括菜单的内容结构都是由数据库查询生成的,我们需要做的就是让前台需要的数据格式与后台发送给前台的数据格式一致就好 /** * 1.方法一:由于easyui的菜单需要"text": "系统管理", * 所以这里使用getText来进行匹配 * 2.方法二: * @Column (name = "name") ...

2019-12-20 14:22:09 249

原创 aisell(7) shiro处理ajax请求问题(自定义权限过滤器)

文章目录引入原因解决成功引入原因shiro只支持普通请求我们怎么去修改shiro权限拦截解决去扩展PermissionsAuthorizationFilter,我们选择继承他因为其中的很多方法我们可以直接使用而不用修改,需要修改的是当执行错误返回数据的那个方法(因为在原方法中它是只支持普通请求而无法对ajax请求作出处理的)自定义权限过滤器/** * 自定义权限过滤器 *...

2019-12-17 19:56:10 482

原创 从字节码看泛型擦除问题

Java泛型是jdk1.5引入的新特性,但并不是由Java所引入的新概念,在Java正式使用泛型之前如果要实现类型泛化,都是通过直接在参数类型处使用Object,因为Object是所有类的父类,所以编译期都不会报错,可是一旦到了运行期,你不太可能确定真实的类型能够正确转换成你想要的类型。在没有泛型之前:/** * Son extends Father * * @author myllxy...

2019-12-16 23:28:51 521

原创 aisell(5) shiro与springmvc集成

四大基石身份认证(登录) Authentication授权(权限) Authorization密码学 Cryptography会话管理 Session Management三大重要对象Subject:当前用户SecurityManager:权限管理器(所有功能管理)Realm:获取权限数据代码demo库与springmvc的集成导包<!-- shiro(权限框...

2019-12-15 07:25:56 161

原创 java多线程(9) threadlocal与弱引用

threadlocal本质的作用就是线程之间对变量操作的隔离我们看看它内部是怎么实现的set方法:

2019-12-14 17:00:16 377

原创 aisell(4) 在外键上添加懒加载的问题

文章目录一.整个Employee加载不出来了,报nosession错误1.持久化状态对象2.加过滤器二.原来的错误解决了,报nosession错误1.方式一,添加@JsonIgnoreProperties注解2.方式二,重写com.fasterxml.jackson.databind.ObjectMapper三.nosession解决了,然后又报错了1.我在哪里改了持久化对象的id2.怎么解决...

2019-12-13 20:01:02 160

原创 aisell(3) employee的crud

文章目录一.普通添加1.点击添加弹出表单2.清空表单3.重新显示隐藏组件4.保存二.普通修改1.判断是否选中一行(如果没有选中,给出提示,后面代码不再执行)2.弹出添加表单框(居中,清空表单数据)三.保存1.判断是添加还是修改2.提交前的验证和提交后的处理四.解决的数据丢失问题五.员工模块的完善1.头像 展示使用formatter2.部门 展示使用formatter3.类与表的关系4.部门回显1...

2019-12-12 19:57:35 146

原创 aisell(2) springmvc+easyui+mvc层的抽取

文章目录后台支持(dao与service)抽取Dao层创建BaseRepsitoryEmployeeRepsitoryService层后台支持(dao与service)抽取Dao层创建BaseRepsitoryEmployeeRepsitoryService层

2019-12-10 23:09:47 193

原创 aisell(1) 集成Spring+SpringDataJpa

文章目录项目导包集成SpringDataJpa1.完成Spring与Jpa的集成2.集成SpringDataJpa2.1 准备domain(父类)2.2 准备Repository接口2.3 扫描repository完成CRUD功能1 基本的CRUD2.基本的分页和排序(JpaRepository)2.1 排序2.2 分页2.3 排序+分页3.高级点的的分页和排序(JpaSpecificationE...

2019-12-09 22:53:30 196

原创 SSJ、easyui简单集成

导包 <dependencies> <!-- Spring对于web的支持 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web<...

2019-12-07 22:33:05 129

原创 JPQL&乐观锁

JPQL区别与联系JPQL和SQL很像,查询关键字都是一样的唯一的区别是:JPQL是面向对象的里面不能出现表名,列名,只能出现java的类名,属性名,区分大小写出现的sql关键字是一样的意思,不区分大小写不能写select * 要写select 别名简单查询1.查询所有员工2.查询所有员工的姓名和所属部门名称3.查询出所有在成都和广州工作的员工4.查询出所有员工信...

2019-12-04 23:35:27 172

原创 JPA进阶与映射关系

单向一对多单向一对多用得比较少(性能差),但是依然要求必须掌握,因为我们在使用双向一对多还会用到单向一对多的相应配置。保存:先一后多(5条): 先多后一(5条):查询:和多对一的区别与联系// 1.在多对一中,外键代码是写在多中的,由多主动去维护。@JoinColumn(name = "teacher_id")private Teacher teacher;// 1....

2019-12-03 20:10:53 159

原创 后台controller层和前台ajax互传json数据的一个demo

前台ajax后台controller @RequestMapping(value = "/checkDuplicateregist", method = RequestMethod.POST) @ResponseBody public Map<String, String> checkDuplicateregist(String name, String e...

2019-12-02 12:48:04 779

原创 JPA进阶与二级缓存

主键生成策略主键设置两种方式代理主键(没有业务含义,建议使用)自然主键(有业务含义:手机号,身份证,…)四种主键生成策略IDENTITY:自增策略:大多数数据库支持IDENTITY,即在数据库表中配置AUTO_INCREMENT,在插入新行时就可以实现主键自增支持的数据库:MySQL, SQL Server, DB2, Derby, Sybase, PostgreSQL效率高...

2019-11-29 22:36:32 388

原创 Git实操(4):向别人的代码库推送

fork别人的库拉取完成后会提示库的来源:把自己的的库clone到本地git clone https://gitee.com/*.git这里注意clone和pull的区别:clone是直接把整个仓库拷下来,可以直接用 而在pull之前必须先git init创建本地仓库修改内容,push到远程库会遇到这个错误:这是由于没有设置Gitee的SSH公钥。在未设置SSH公钥的情况下,...

2019-11-28 11:52:48 1578

原创 JPA基础介绍与使用

JPA简介什么是JPAJPA是Java Persistence API的简称Java EE 5.0 平台标准的 对象关系映射(ORM) 规范ORM 就是通过将Java对象映射到数据库表,通过操作Java对象,就可以完成对数据表的操作Hibernate和JPA的关系Hibernate:一个开放源代码的对象关系映射(ORM)框架对JDBC进行了非常轻量级(相对于EJB这一套)的对...

2019-11-27 21:53:30 329

原创 jQuery选择器与注册事件

选择器基本选择器id 选择器 <script> //id选择器--最常用 var myDiv1 = $("#myDiv").html(); console.debug(myDiv1) </script>.class 样式选择器 <script> //类选择器,根据你标签中的class来判断 var myDiv2 = $(...

2019-11-24 22:12:05 202

空空如也

空空如也

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

TA关注的人

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