03 2022 档案
Spring高级-容器实现-BeanFactory后处理器排序(一)
摘要:一、开胃菜:入门级面试题:如果一个接口有多个实现类,想取到其中某一个Bean怎么进行一个依赖注入 1、代码 package com.mangoubiubiu.show; import lombok.extern.slf4j.Slf4j; import org.slf4j.LoggerFactory;
Spring高级-容器实现-BeanFactory实现的特点
摘要:一、DefaultListableBeanFactory DefaultListableBeanFactory,是 BeanFactory 最重要的实现,像控制反转和依赖注入功能,都是它来实现 1、需求一:往DefaultListableBeanFactory里面 注册一个组件 package co
Spring Security-从入门到精通-UserDetailsService 详解
摘要:基本思路 从数据库中查出用户相关数据 (自定义逻辑 UserDetailsServic) 去执行认证逻辑增加相关权限或抛出异常 (认证逻辑)总结:通过自定义逻辑去控制认证逻辑 对比数据库中的用户和前端传来的用户 UserDetailsServic接口 package org.springframew
Spring Security-从入门到精通-入门Demo
摘要:1 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan
Spring Security-从入门到精通-简介
摘要:Spring Security 简介 1 安全框架概述 什么是安全框架? 解决系统安全问题的框架。如果没有安全框架,我们需要手动处理每个资源的访问控制,非常麻烦。使用安全框架,我们可以通过配置的方式实现对资源的访问限制。 2 常用安全框架 Spring Security:spring家族一员。是一个
SpringSecurity自定义登录页面跳转时访问页面302
摘要:1 问题原因 登录时报302 2 SecurityConfig 配置 关闭 csrf 跨站请求伪造 还是报错 package com.mangoubiubiu.security.config; import org.springframework.context.annotation.Bean; i
Spring高级-容器接口-ApplicationContext的功能
摘要:ApplicationContext的实现类拥有不同的能力 EnvironmentCapable:整合 Environment 环境(能通过它获取各种来源的配置信息) MessageSource: 国际化,提供一些针对不同语言翻译的能力 ResourcePatternResolver:通配符方式获取
Spring高级-容器接口-初识BeanFactory
摘要:一 容器接口 ConfigurableApplicationContext 1、代码 package com.mangoubiubiu.show; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringAppl
设计模式-创建者模式-装饰者模式
摘要:1 概述 我们先来看一个快餐店的例子。 快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就会显得比较麻烦。 使用继承的方式存在的问题: 扩展性不好如果要再加一种配料(火腿肠),我们就会发现需要给FriedRice和Fr
Dockerfile-自定义centos7
摘要:1 需求 自定义centos7镜像。要求 1.默认登陆路径为/usr 2.可以使用vim 2 实现步骤 1 定义父镜像:FROM centos:7 2 定义作者信息: MAINTAINER mangoubiubiu<mangoubiubiu@foxmail.com> 3 执行安装vim命令: Run
【docker】 denied: requested access to the resource is denied
摘要:1 自己构建的镜像推到docker hub 报错 创建 Access Tokens 后登陆 用指定的秘钥串 再推时还报错 镜像tag前缀一定要和 dockerhub的username 保证一致 成功推送
Dockerfile-部署SpringBoot项目
摘要:1、前期准备 2、使用Dockerfile 构建镜像 将jar包移入随便指定的目录下,/root/docker-file 新建一个Dockerfile文件 springboot_dockerfile #以java:8这个镜像为基础 FROM java:8 #指定作者信息 MAINTAINER man
Dockerfile-常用关键字及其作用
摘要:关键字作用备注 FROM 指定父镜像 指定dockerfile基于那个image构建 MAINTAINER 作者信息 用来标明这个dockerfile谁写的 LABEL 标签 用来标明dockerfile的标签 可以使用Label代替Maintainer 最终都是在docker image基本信息中
Dockerfile-镜像制作-容器转镜像
摘要:一、容器转镜像 docker commit 容器id 镜像名称:版本号 docker save -o 压缩文件名称 镜像名称:版本号 docker load -i 压缩文件名称 1 以tomcat为例子 容器转镜像 docker commit b25 mangoubiubiu_tomcat:1.0
Dockerfile-Docker 镜像原理
摘要:Docker 镜像原理 操作系统组成部分: 进程调度子系统 进程通信子系统 内存管理子系统 设备管理子系统 文件管理子系统 网络通信子系统 作业控制子系统 Linux文件系统由bootfs和rootfs两部分组成 bootfs:包含bootloader(引导加载程序)和 kernel(内核) roo
设计模式-创建者模式-适配器模式
摘要:1 概述 如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当地的插座,第2面供我们充电,这样使得我们的插头在当地能使用。生活中这样的例子很多,手机充电器(将220v转
设计模式-结构型模式-代理模式
摘要:1.1,结构型模式 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模式
Spring注解驱动开发----常用注解及其解释
摘要:注解解释 @Controller 组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上。 @Service 组合注解(组合了@Component注解),应
设计模式-创建者模式-建造者模式
摘要:创建者模式-建造者模式 1 建造者模式 1.1 概述 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。 由于实现了构建和装配的
设计模式-创建者模式-原型模式
摘要:创建者模式-原型模式 1 概述 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 2 结构 原型模式包含如下角色: 抽象原型类:规定了具体原型对象必须实现的的 clone() 方法。 具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象。 访问类:
RabbitMQ从入门到精通-HELLO-WORLD
摘要:一、引入Pom依赖 <dependencies> <!--rabbitmq 依赖客户端--> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.8.0</versi
RabbitMQ从入门到精通-单机安装
摘要:1.官网地址 https://www.rabbitmq.com/download.htm 2.文件上传 上传到/usr/local/software 目录下(如果没有 software 需要自己创建 3.安装文件(分别按照以下顺序安装) rpm -ivh erlang-21.3-1.el7.x86_
RabbitMQ从入门到精通-基本概念
摘要:1.2.1. RabbitMQ 的概念 RabbitMQ 是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包 裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑 RabbitMQ 是 一个快递站,一个快递员帮你传递快件。RabbitMQ 与
RabbitMQ从入门到精通-入门介绍
摘要:1.1. MQ 的相关概念 1.1.1. 什么是 MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常 见的上下游“逻辑解耦+物理解
设计模式-创建者模式-工厂模式
摘要:一、工厂模式 1 概述 需求:设计一个咖啡店点餐系统。 设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。 具体类的设计如下: 在java中,万物皆对
设计模式-创建者模式-单例模式(存在的问题以及解决方案)
摘要:一、 存在的问题 1. 问题演示 破坏单例模式: 使上面定义的单例类(Singleton)可以创建多个对象,枚举方式除外。有两种方式,分别是序列化和反射。 序列化反序列化Singleton类: 必须要实现Serializable 一个对象序列化的接口,一个类只有实现了Serializable接口,它
设计模式-创建者模式-单例模式
摘要:创建者模式-单例模式 创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。 这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。 创建型模式分为: 单例模式 工厂方法模式 抽象工程模式 原型模式 建造者模式 1.1 单例设计模式 单例模式(Singleton
软件设计原则-合成复用原则
摘要:合成复用原则是指:尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。 通常类的复用分为继承复用和合成复用两种。 继承复用虽然有简单和易实现的优点,但它也存在以下缺点: 继承复用破坏了类的封装性。因为继承会将父类的实现细节暴露给子类,父类对子类是透明的,所以这种复用又称为“白箱”复
设计模式-软件设计原则-迪米特法则
摘要:迪米特法则又叫最少知识原则。 只和你的直接朋友交谈,不跟“陌生人”说话(Talk only to your immediate friends and not to strangers)。 其含义是:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低
设计模式-软件设计原则-接口隔离原则
摘要:客户端不应该被迫依赖于它不使用的方法;一个类对另一个类的依赖应该建立在最小的接口上。 B类继承A类,拥有了方法1的功能,B类现只需要方法1的功能,不需要方法2的功能,被迫依赖于它不使用的方法2,改进--》方法1写在A接口,方法2写在B接口 C类需要方法1只需要实现 A接口,需要方法2 再次实现一个B
设计模式-软件设计原则-依赖倒转原则
摘要:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。 下面看一个例子来理解依赖倒转原则 【例】组装电脑 现要组装一台电脑,需要配件cpu,硬盘,内存条。只有这些配置都有了,计算