设计模式结构型模式-适配器模式(一)
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。 我们通过下面的实例来演示适配器模式的使用。其中,音频播放器设备只能播放 mp3 文件,通过使用一个更高级的音频播放器来播放 vlc 和 mp4 文件。
MarkDownCommonMark使用
Markdown是一种用来书写结构化文档的纯文本格式,吸收了很多在电子邮件中已有的纯文本标记的特性。CommonMark主要让Markdown语法更明确。同时CommonMark还提供了一个测试工具spec_tests.py或者SpecTestCase.java对Markdown程序进行测试。 注意:如果需要其他相关插件,可以引入对应的依赖。 使用:调用其方法就可以了
java常用java工具类汇总
使用方法: 使用方法: 公用方法
SpringBootSpring Boot配合Hibernate Validator参数校验
在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦: 验证代码繁琐,重复劳动 方法内代码显得冗长 每次要看哪些参数验证是否完整,需要去翻阅验证逻辑代码 hibernate validator(官方文档)提供了一套比较完善、便捷的验证实现方式。
SpringBoot深入学习Spring Boot中的SpringApplication
默认的我们都是直接通过SpringApplication的run方法来直接启动Spring Boot,其实我们可以通过一些API来调整某些行为。 我们新建一个SpringBoot项目,Spring Boot版本为2.1.0.RELEASE,artifactId为SpringApplication,并引入spring-boot-starter-web依赖。项目结构如下所示: 我们将入口类的代码改为:
ShiroSpring Boot Shiro在线会话管理
在Shiro中我们可以通过org.apache.shiro.session.mgt.eis.SessionDAO对象的getActiveSessions()方法方便的获取到当前所有有效的Session对象。通过这些Session对象,我们可以实现一些比较有趣的功能,比如查看当前系统的在线人数,查看这些在线用户的一些基本信息,强制让某个用户下线等。 为了达到这几个目标,我们在现有的Spring Boot Shiro项目基础上进行一些改造(缓存使用Ehcache)。 为了能够在Spring Boot中使用SessionDao,我们在ShiroConfig中配置该Bean:
ShiroSpring Boot Thymeleaf中使用Shiro标签
在《Spring-Boot-shiro权限控制》中,当用户访问没有权限的资源时,我们采取的做法是跳转到403页面,但在实际项目中更为常见的做法是只显示当前用户拥有访问权限的资源链接。配合Thymeleaf中的Shiro标签可以很简单的实现这个目标。 实际上Thymeleaf官方并没有提供Shiro的标签,我们需要引入第三方实现,地址为https://github.com/theborakompanioni/thymeleaf-extras-shiro。 引入依赖后,需要在ShiroConfig中配置该方言标签:
设计模式创建型模式 - 原型模式(五)
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
设计模式创建型模式 - 建造者模式(四)
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
ShiroSpring Boot Shiro中使用缓存
在Shiro中加入缓存可以使权限相关操作尽可能快,避免频繁访问数据库获取权限信息,因为对于一个用户来说,其权限在短时间内基本是不会变化的。Shiro提供了Cache的抽象,其并没有直接提供相应的实现,因为这已经超出了一个安全框架的范围。在Shiro中可以集成常用的缓存实现,这里介绍基于Redis和Ehcache缓存的实现。 在《Spring-Boot-shiro权限控制》中,当用户访问”获取用户信息”、”新增用户”和”删除用户”的时候,后台输出了三次打印信息,如下所示: 用户wno704获取权限-----ShiroRealm.doGetAuthorizationInfo 用户wno704获取权限-----ShiroRealm.doGetAuthorizationInfo 用户wno704获取权限-----ShiroRealm.doGetAuthorizationInfo










