首页
学习
活动
专区
工具
TVP
发布

陈本布衣

专栏成员
26
文章
40412
阅读量
28
订阅数
设计模式——搓澡模板
夏天到了,天气炎热,每天都是臭汗直冒;自己再怎么不爱干净,还是要坚持每天洗澡,不然婆娘肯定是不让上床的,毕竟,谁也不愿意啃一坨臭烘烘的肉。
用户1615728
2020-07-08
4500
Shiro那些事儿(一): Shiro初探
  权限,可以简单的理解成你能干什么,不能干什么。在管理系统中,对权限的设计可以很简单,也可以很复杂。简单点的,基本都是基于角色扮演的方式,比如系统管理员角色可以操作哪些菜单,普通用户角色可以操作哪些菜单等等,通过让不同用户扮演不同的角色,不同角色授予不同的菜单权限,来实现对访问用户的权限控制。当然,这种简单的设计其实是比较粗粒度的,仅仅是一种菜单权限的控制。如果系统比较大,对权限的控制粒度会有更加明细的需求,不仅菜单权限有可访问、可操作之分,角色之间还可能会有层级和群组的划分,如果再深入一点,还可能涉及到数据权限的控制等等。总之,系统权限,说简单其实也简单,但要想设计好也不容易,具体要根据自己的系统大小和业务来考量。不过,就我们一般的系统而言,简单的权限控制就足够满足需求了。这方面,除了你自己进行权限设计外,第三方也有很多优秀的权限框架可供选择,有名的比如 Spring 帝国中的 Security 模块, Apache 基金会的 Shiro 权限框架等等;不过相较于Spring Security,Apache Shiro 在易用性和适用广度方面,都是要稍微占优的。所以,本系列,博主从头开始,来讲讲 Shiro 的使用。
用户1615728
2019-12-26
7190
函数式编程 -> Lambda
  函数式编程,同面向对象编程、指令式编程一样,是一种软件编程范式,在多种编程语言中都有应用。百科词条中有很学术化的解释,但理解起来并不容易。不过,我们可以借助于数学中函数的概念,来理解函数式编程的要义所在。在数学中,我们常见的函数表达式形如 y=f(x),表示的是一种输入输出的映射关系:x表示输入,y表示输出,f 是表示两者之间的映射运算逻辑。在求值的时候,你完全不用考虑映射运算 f,只要给定输入 x,得到相应的输出 y;输入不变,输出也不会改变,就这么简单。类比到程序语言中来,所谓函数式编程,就是让我们以数学中函数映射的思想来编写出函数式的程序代码,让代码着重于输入和输出,而底层的映射处理逻辑,你完全可以当黑盒看待,这样,我们的业务关注点会更加清晰;而且,同数学函数一样,函数式编程的代码具有状态无关性——即相同的输入永远产生相同的输出,这在解决并发编程中共享变量状态一致性问题中有很大的应用场景。
用户1615728
2019-12-24
7340
从强转 byte 说起
  折腾的心,颤抖的手,只因在 main 函数中执行了一次 int 强转 byte 的操作,输出结果太出所料,于是入坑,钻研良久,遂有此篇。
用户1615728
2019-09-04
1.6K0
基于WebSocket实现网页版聊天室
  WebSocket ,HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议,其使用简单,应用场景也广泛,不同开发语言都用种类繁多的实现,仅Java体系中,Tomcat,Jetty,Spring等都提供了对WS的API支持。本篇不做理论探究,仅自娱自乐,简单实现网页版的聊天室功能,在实际开发场景中变通使用即可。废话不叽歪,直接撸出来——
用户1615728
2019-05-14
1.6K0
Java序列化和反序列化,你该知道得更多
序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象——百度词条解释。
用户1615728
2019-05-07
6100
Spring基础篇——Spring的AOP切面编程
  AOP,面向切面编程,作为Spring的核心思想之一,度娘上有太多的教程啊、解释啊,但博主还是要自己按照自己的思路和理解再来阐释一下。原因很简单,别人的思想终究是别人的,自己的理解才是自己的,尤其当用文字、代码来阐述一遍过后,理解层面上又似乎变得不一样了。
用户1615728
2019-04-18
4580
远程调试,你值得拥有
  远程调试就是用本地的代码调试服务器上的代码,稍微想想怎么能做到呢,肯定是本地和远程服务上的虚拟机之间实现了相互通讯啊.。术语话一点,就是本地和远程的JVM之间基于某种协议(debug协议)以套接字(socket) 的方式实现通信,从而实现在本地远程调试服务端代码的功能。既然是以套接字的方式,那可定就有服务端和客户端的概念。这里不要思维定势了,所谓服务端和客户端是相对的,并不是说你部署服务的远程端才叫服务端,实际上,只要你喜欢,你可以将本地IDE配置成服务端,让远程服务启动后来主动连接本地,当然,通常的方式还是顺势思维,就把远程配置为socket的服务端,监听客户端;而且连接的建立都是服务端先启动后监听特定端口,等待客户端连接。
用户1615728
2019-04-01
8150
像我这样的人
  我是一个特别有计划的人,也特别热爱学习,内心时刻充盈着奋发向上的心;尤其身为码农一族,更要活到老学到老!常常感叹余生苦短,时间宝贵,所以平日里,那些热门的剧是不追的,抖音是不刷的,综艺是不看的,游戏是不玩的,只是上上网了解外面世界发生的事防止自己和社会脱节,剩余的闲暇时间,都投身学习,简直难以自拔。
用户1615728
2019-03-04
4740
Java 内部类
1 、说点闲话   因为个人原因,布衣博主的技术博文大半年来一直没时间更新(WHAT ? 这是啥理由),恍恍惚惚间,一年又是头,还是得跳出来,给自己一个交代。   编程日久,项目开发中最常用的技能大概
用户1615728
2019-02-13
6660
Spring基础篇——DI/IOC和AOP原理初识
前言   作为从事java开发的码农,Spring的重要性不言而喻,你可能每天都在和Spring框架打交道。Spring恰如其名的,给java应用程序的开发带了春天般的舒爽感觉。Spring,可以说是任何一个java开发者通往技术高阶的必备基础。当然,要学好Spring,尤其是了解Spring的底层原理并不容易,需要花费很多时间和精力来潜心的研习,并在实际的项目中不断的试错和总结,才能形成属于自己的思维理解。博主对Spring最初的认识颇浅,项目中遇到问题依靠度娘大概也能笼而统之的解决。不过呢,接触Spri
用户1615728
2018-04-17
7020
Spring基础篇——Spring容器和应用上下文理解
上文说到,有了Spring之后,通过依赖注入的方式,我们的业务代码不用自己管理关联对象的生命周期。业务代码只需要按照业务本身的流程,走啊走啊,走到哪里,需要另外的对象来协助了,就给Spring说,我想要个对象——于是Spring就很贴心的给你个对象。听起来似乎很简单,使用起来也不难,但是如果仅仅是这样的拿来主义,倒也洒脱,不用费什么脑子。。。可是,你就真的不关心,Spring是从哪里把对象给你的吗?   如果你想要了解Spring深一些,而不仅仅是拿来用用,那么你就应该好好思考一下上诉问题,不然,这篇博文
用户1615728
2018-04-17
3.7K0
Spring基础篇——通过Java注解和XML配置装配bean
自动化装配的确有很大的便利性,但是却并不能适用在所有的应用场景,比如需要装配的组件类不是由自己的应用程序维护,而是引用了第三方的类库,这个时候自动装配便无法实现,Spring对此也提供了相应的解决方案,那就是通过显示的装配机制——Java配置和XML配置的方式来实现bean的装配。 Java配置类装配bean   我们还是借助上篇博文中的老司机开车的示例来讲解。Car接口中有开车的drive方法,该接口有两个实现——QQCar和BenzCar package spring.impl; import sp
用户1615728
2018-04-10
1.3K0
Java环境变量,真的还有必要配吗?
  作为年龄上堪称老鸟而技术上却是菜鸟的老菜鸟,为了祖国的编程事业,不惜拿出一个月工资,淘了一台配置稍高的二手笔记本,打算与老笔记本中的撸啊撸片彻底说再见,誓要在新机种开启一番撸啊撸的新事业。当然,撸代码离不开基本的环境搭建,每次新机上手都要百度一堆杂乱的似是而非的环境搭建教程,才勉强把开发环境搭建起来,时间耗费不少,但终是拾人牙慧,生搬硬套,从未能理解深层原理,将其内化吸收形成自己的技术积累;而环境搭建虽然基础,但编程界多少前辈大牛都是从此开始的,千万行代码的撸出也都依赖于此,所以,花时间总结一下,思考一
用户1615728
2018-04-10
2.7K0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档