自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

FirstMrRight的博客

追求优雅代码的程序员

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

原创 设计模式之外观(门面)模式

外观(门面)模式外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。类似的实际例子有消息中间件,把一个数据丢到消息中间件,谁需要,谁去消息后中间件去拿。这种设计模式可以用于解耦。我们举个栗子,你要去政府办一件事,你需要先从门口去一楼,再从门口去二楼、最后从门口去五楼,这样整个流程会特别繁琐,外观模式就提供一个门面接口(Facade),门面内把原来的

2020-12-26 20:34:45 1150 1

原创 客官留步,您真的会使用@Component+@Bean注解(配置类)吗?

由此及彼我在写如何在Spring中优雅的使用单例模式?一文的时候有使用到@Component(“xxx”)注解,总所周知,该注解可以将普通的Java类实例化到Spring容器中,可以替代Spring 4.0 版本之前xml配置,xxx就等同于xml中的bean标签的id(所以需要保证唯一),不知道大家有没有了解过Spring配置类的Full模式和Lite模式?如果您第一次听到这个概念,您不妨花费几分钟往下读一读,或许可以让您少掉几根秀发。详细介绍Full模式、Lite模式是针对于Spring的配置“类

2020-12-05 23:18:53 3265 5

原创 BeanUtils.copyProperties知多少?

事出有因近期在读《阿里巴巴开发手册》的时候发现:阿里强制避免使用BeanUtils进行属性的拷贝,但是不得不承认的是,在我自己的项目中确实使用过Apache的Beanutils进行属性拷贝,在读了开发手册后,感觉项目中的代码可以优化一下,基于不同包下的BeanUtils性能和特性有所不同,当然用法也不尽相同,所以,可以你可能会跳入因为导错包导致对象拷贝为null的坑。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dBUkz72I-1606834874223)(C:\Use

2020-12-01 23:03:18 1849 3

原创 Resource引发的报错

事出有因:一个正常运行的项目再次运行的时候突然报错:Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.Consider the following:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.If

2020-12-28 22:39:33 2608

原创 设计模式之装饰者模式

装饰者模式定义:装饰是一种结构设计模式, 允许你通过将对象放入特殊封装对象中来为原对象增加新的行为。为对象增加新的行为可以理解为在原基础上的扩展,抛开设计模式而言,我们首先想到的解决方式是继承,如果你想给一款低配版版汽车装上倒车影像,你可以你的Car可以继承自RoadRadar ,当你想继续提升行使品质的时候,你希望在汽车上安装Bose音响,此时,显然Car不能再继承一个Bose类,因为Java不支持多继承,显然这样也不符合“对修改关闭,对扩展开放”的原则。引入装饰着模式的思想,我们把Car作为一个被

2020-12-27 15:49:52 109

原创 将一张表的字段更新到另一张表中

语法:MySQL:UPDATE a,b SET a.1=b.1 WHERE a.2=b.2 实例update expense_voucher as ev,inventory as iv set ev.storage_time= iv.first_warehousing_time where ev.store_item_id = iv.id and ev.rksj is null参考:链接

2020-12-23 11:49:37 1559

原创 基于RBAC模型的SpringSecurity权限控制能力

RBAC权限模型全名为:Role-Based Access Control 译为基于角色的访问控制。RBAC权限框架基于角色进行鉴权,在该框架中具有三大模块:角色(Role)、用户(User)、权限(Permissions),RBAC使用最小特权原则,当前请求访问的用户具备那些角色,该角色具备那些权限,所具备的权限中是否包含本次访问所需的权限?若具有,正常访问返回,若不具有,给予用户提示,所以,RBAC可以把权限粒度做到方法级。SpringSecurity是基于RBAC模型轻量级权限控框架,与之对等

2020-12-20 22:39:36 1272

原创 MyBatis-Plus代码生成器使用

导入所需依赖: <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.1</version> </dependency> &lt

2020-12-16 22:53:19 202

原创 SpringBoot整合Redis、MyBatis-Plus

最近笔者在搭一个自己的小框架,基于SpringBoot全家桶整合了SpringSecurity、Redis、MyBatis-Plus、RSA加密等,所以我打算将搭建过程记录下来以做学习只用,好了废话不多说,下面开始。针对Redis在项目中的使用场景,最基础的便是存取用户登录凭证----token,所以必须使用数据库去查询登录用户信息,那么文章就先从整合MyBatis-Plus开始。SpringBoot整合MyBatis-Plus写在前面:MyBatis-Plus是一个非常强大且轻量的ORM框架,

2020-12-15 23:06:10 973 1

原创 RBAC权限---SpringBoot整合Security

引入SpringSecurity模块 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>加入这个依赖后表示所有的接口都是被保护的状态,访问的时候被Securi

2020-12-13 21:47:54 352

原创 如何获取yml里的配置数据?

当我们在yml进行一些配置的时候,在Java中需要拿到yml中自定义的配置,我们可以使用**@ConfigurationProperties**注解去读取yml中的配置数据。使用方式demo在yml自定义jwt配置(jwt需要顶格,否则相当于在其他配置下,在Java代码中会拿不到数据)jwt: # 密匙KEY secret: JWTSecret # HeaderKEY tokenHeader: Authorization # Token前缀字符 tokenPrefix: Sa

2020-12-13 01:02:14 2585 4

原创 Date类型与String类型转换或转为其他日期格式

String类型转DateSimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd ");//或者是具体到秒//("yyyy-MM-dd HH:mm:ss")String s= "2011-07-09 "; Date date = formatter.parse(s);Date类型转StringString date = formatter.format(new Date());//格式化数据自定义获取当前时间格式S

2020-12-10 23:30:49 1626

原创 Failed to execute goal on project xxx: Could not resolve dependencies for project

项目结构是一个父项目,多个子项目目录:例如:common --------------(父项目)fristDemo ------------(子项目)如果在子项目中调用了父项目,而对(子项目)打包时,就报:Failed to execute goal on project fristDemo Could not resolve dependencies for projec出现原因pom依赖引用错误,可能是依赖名称错误打包时在子项目打包解决:检查依赖是否报红检查是

2020-12-09 22:20:50 2870

原创 工厂模式之抽象工厂

工厂模式之抽象工厂是一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。类继承自抽象工厂,即可生产指定对象。新增实体的时候无需修改已有代码。比如食物这个工厂,在现实世界中,它可以生产面包、鸡蛋、肉等,在魔法世界中,食物工厂可以生产魔法豆、会唱歌的火鸡、HP口服液等,我们把食物比作是最大的一个抽象工厂,现实世界(ModernFactory)抽象工厂和魔法世界(MagicFactory)抽象工厂继承自最大的食物抽象工厂,然而bread面包、egg鸡蛋、meat肉类都继承自ModernFact

2020-12-08 22:57:21 243 3

原创 数据加密的各种姿势

数据加密数据按加密方式可分为对称加密和非对称加密和hash加密。对称加密:加解密密钥相同,假如有一把锁具,锁具在关闭(加密时)和开启(解密时)使用的是同一把钥匙(使用相同的密钥),则可以将该加密方式称为对称加密。常见的对称加密方式如:DES、3DES、Blowfish、IDEA、RC4、RC5、RC6 和 AES图片源自网络非对称加密:密钥分为公钥和私钥,如果后端返回的明文接口数据使用公钥进行加密脱敏,前端在解密时则需要私钥进行解密,使用公钥则无法对已加密数据进行解密。反之,如果后端接

2020-12-06 22:23:56 301

原创 如何在Spring中优雅的使用单例模式?

返璞归真单例模式设计模式之初,是脱发的万恶之源,手动滑稽。Java使用构造方法去创建对象可以有三种方式:使用new关键字使用Class.getInstance(通过反射调用无参构造方法)使用Constructor.newInstance(实则也是通过反射的方式调用任何构造方法)单例模式私有化了构造方法,所以其他类无法使用通过new的方式去创建对象,在其他类使用该类的实例时,只能通过getInstance去获取。但是可以通过Constructor反射的方式获取私有化的构造器然后通过构造方法去创

2020-12-02 23:46:20 1566 1

原创 安装docker并使用docker安装mysql

安装docker并使用docker安装mysql安装Docker1、 Docker 教程地址:https://www.runoob.com/docker/centos-docker.install.html2、安装docker命令:yum install docker-io3、启动docker命令:service docker start4、查看docker是否启动成功命令:ps -ef|grep docker使用docker安装mysql1、查询mysql命令:docker se

2020-12-01 21:11:50 113

空空如也

空空如也

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

TA关注的人

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