自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 新手初次尝试前后端分离项目的开发,记记心得

记录一下第一次开发前后端分离项目的一些感悟吧,防止以后再踩坑(虽然都是写明显的坑,博主比较笨)背景:项目使用的是Vue+Spring Boot的模式,接口实现rest风格,数据库框架整合Mybatis实现前后端的数据对接(端口不一致、接口与请求一致,接口的定义唯一,json类型返回)该项目是一个前后端分离且rest风格的项目,前后端分离的特点是前端和后端的工作完全分离,不互相依赖,后端为前端提供获取json数据的接口,前端要给后端传入请求必要的参数,关于如何正确的匹配到接口成功传输数据成为我们一开始的

2020-07-01 17:04:05 797

原创 学习使用SpringBoot时遇到的一些错误,记录排查

1. 错误页面:This application has no explicit mapping for /error, so you are seeing this as a fallback.Application程序应该在最外层的包,包含所有子包,Spring boot会自动加载启动类所在包下及其子包下的所有组件2.Not registered via @EnableConfigurationProperties, marked as Spring component, or scanned vi

2020-06-28 14:31:30 1165

原创 可以实现树形结构的设计模式(组合模式)

组合模式1.基本介绍组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系组合模式依据树形结构来组合对象,用来表示部分以及整体层次,属于结构性模式组合模式使得用户对单个对象和组合对象的访问具有一致性(组合模式能让用户以一致的方式处理个别对象以及组合对象)2.原理类图Component:这是组合中对象的声明接口或者抽象类,在适当情况下,实现所有类共有的接口默认行为,用于访问和管理Component的子部

2020-06-28 14:28:29 1916 1

原创 设计模式竟然能共享对象(享元模式)

享元模式1.基本介绍也叫蝇量模式:运用共享技术有效的支持大量细粒度对象常用于系统底层开发,解决系统性能问题,比如数据库连接池,可以将共用对象直接拿出来用,避免重新创建能够解决重复对象的内存浪费问题,当系统中有大量相似对象,需要缓冲池时,不需要重新创建,直接从缓冲池中获取享元模式是池技术的重要实现,String常量池、数据库连接池、缓冲池2.原理类图FlyWeightFactory:享元的工厂类,用于构建一个池容器(集合),同时提供从池中获取对象方法FlyWeight:抽象的享元角色,

2020-06-28 00:44:20 198

原创 设计模式实现监控,推送(观察者模式)

观察者模式1.基本介绍对象之间多对一依赖的一种设计模式,依赖的对象为Subject,被依赖的对象为Observer,Subject通知Observer变化2.原理类图Subject为消息发送站,他的三个方法分别:registerObServer():订阅,注册第三方,需要接受消息的对象removeObServe ():移除第三方notifyObServer():发送通知,监听到动态则传达给订阅的对象ObServer为各个第三方的对象update():被调用的方法,通过该方法

2020-06-27 13:37:23 815

原创 学习设计模式来包快递(装饰者模式)

装饰者模式(Decorator)1.基本介绍动态的将新功能附加到对象上,在功能扩展方面,它比继承更有弹性,体现了开闭原则2.原理1.原理类图2.分析装饰者模式就像是打包一个快递,要寄送的物品为主体,即被装饰类,包装即为装饰类,对主体进行包装Component :被装饰的主体ConcreteComponent:被装饰的具体的主体Decorator:装饰者在Component 和ConcreteComponent之间还可以设计一个缓冲层,创建一个公共类抽象出各个ConcreteCom

2020-06-26 14:37:33 206

原创 Springboot使用JPA来操作数据库嗷

整合JPAJPA:ORM(Object Relational Mapping);编写一个实体类(bean)和数据表进行映射;并且配置好映射关系//使用JPA注解配置映射关系@Entity //告诉JPA这是一个实体类(和数据表映射的类)@Table(name = "tbl_user") //指定和哪个数据表对应,如果省略默认类名小写public class User { @Id //设置主键 @GeneratedValue(strategy = GenerationType.

2020-06-20 19:04:42 172

原创 整合springboot和mybatis的应用

整合MyBatis1. 引入依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency>2.配置数据源使用druid

2020-06-20 19:01:23 129

原创 Druid数据源整合在springboot的web项目中

整合Druid数据源引入数据源<!-- 导入log4j--> <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId>

2020-06-20 19:00:12 173 1

原创 关于springboot的网页错误机制

1.Spring Boot默认的错误处理机制默认的处理效果:浏览器返回一个错误页面404如果是其他客户端,默认响应一个json数据原理:ErrorMvcAutoConfiguration错误处理的自动配置给容器添加了一下组件://ErrorAttributes,容器中没有这个组件则自动配置一个DefaultErrorAttributes,即我们看见的错误处理@Bean@ConditionalOnMissingBean( value = {ErrorAttributes.class

2020-06-20 18:59:05 153

原创 记录一些使用springboot编写web项目时的要点

1. 默认访问首页1.将首页添加到templates下,以启用thymeleaf模板2.编写配置类实现WebMvcConfigurer接口,重写addViewControllers方法来添加自定义视图解析器,使“/”请求可以直接映射到首页(定义内部类时要添加@Bean注解)@Configuration//WebMvcConfigurer接口中有很多方法的对应的是以往Springmvc配置文件中的属性//使用其来扩展SpringMVC的功能public class MyMvcConfig impl

2020-06-20 18:58:07 122

原创 怎么用设计模式搞个代理嗷(代理模式)

代理模式(Proxy)1.基本介绍代理模式为对象提供一个假身,以控制对该对象的访问,通过代理对象访问实际对象好在可以在目标对象实现的基础上,增强额外的功能操作,扩展目标对象的功能被代理的对象可以是远程对象,创建开销大的对象或需要安全控制的对象代理模式分为三种形式,静态代理、动态代理(JDK代理、接口代理)、Cglib代理(可以在内存中动态的创建对象,而不需要实现接口,属于动态代理)2.原理类图3.静态代理1.介绍静态代理在使用时需要定义接口或者父类,被代理对象和代理对象一起实现相同的

2020-06-20 13:36:33 90

原创 学习用设计模式搭个桥(设计模式之桥接模式)

桥接模式1.基本介绍桥接模式(Bridge)是指将实现与抽象放在两个不同的类层次中,是两个层次可以独立改变该模式基于类的最小设计原则(扩展功能时尽量少的增加类),通过使用封装、聚合、继承等行为让不同的类承担不同的职责主要特点是把抽象和行为实现分离开来,从而可以保持各部分的独立性以及对他们的功能扩展2.原理类图client:桥接模式的调用者抽象类(Abstraction):维护了Implementor即他的实现类,二者是聚合关系,Abstraction充当桥接类RefinedAbstr

2020-06-08 22:37:33 185

原创 整一个适配器(设计模式之适配器模式)

适配器模式1.基本介绍适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性,让原本因接口不匹配不能工作的两个类可以协同工作,其别名为包装器(Wrapper)适配器模式属于结构型模式分为三类:类配置器模式、对象配置器模式、接口适配器模式2.工作原理适配器模式:将一个类的接口转换为另一个接口,让原本接口不兼容的类可以兼容从用户的角度看不到被适配者,是解耦的用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法用户收

2020-06-08 22:36:38 489

原创 学习盖房子(设计模式之建造者模式)

建造者模式1.基本介绍:建造者模式又叫生成器模式,是一种对象构建模式。将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现(属性)得对象一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就构建他们,而不需要知道内部得具体构建细节2.建造者模式的四个角色:Product(产品对象):一个具体的产品对象Bulider(抽象建造者):创建一个Product对象的各个部件指定的 接口/抽象类 。指定建造流程ConcreteBulider(具体建造者):

2020-06-07 17:55:18 352

原创 原型模式的学习以及追溯Spring源码找到使用原型模式的位置

原型模式1.引出原型模式的思路Java中的Object类是所有类的根类,Object类提供了一个clone()方法,该方法可以将一个java对象复制一份,需要实现clone的类要实现Cloneable接口,该接口表示该类能够复制而且具有复制的能力2.原型模式(Prototype)的介绍用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建对象原型模式允许一个对象创建另一个可定制的对象,无需知道创建的细节工作原理:通过将一个原型对象传给要发动创建的对象,这个要发动创建的对象通过请求原型模型

2020-06-06 22:39:12 431

原创 初识工厂模式

工厂模式1.简单工厂(不属于23种)概念:简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例实现:定义一个创建对象的类,由这个类来封装实例化对象的行为应用场景:当我们会大量地创建某种、某类或者某批产品时,可以使用简单工厂模式如图一,Pizza是一个抽象类,CheessPizza和GreekPizza为实现类,多个OrderPizza可以根据需求创建Pizza对象,然而这种做法在增加新的实现类时,我们要把每个OrderPizza的具体实现都重新更改,十分不合理如图二,通过简单工厂的方式,我

2020-06-06 16:42:19 204

原创 简单认识SpringBoot支持的模板引擎Thymeleaf

模板引擎Thymeleaf模板引擎思想SpringBoot推荐的Thymeleaf(语法更简单,功能更强大)1.引入Thymeleaf<!-- 引入thymeleaf--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymel

2020-06-05 22:21:31 310

原创 熟悉SpringBoot的配置文件

Spring Boot的配置(配置文件,加载顺序,配置原理)之配置文件配置文件Spring Boot使用一个全局配置文件,配置文件名是固定的application.propertiesapplication.yml配置文件的作用:修改Spring Boot自动配置的默认值,即修改Spring Boot在底层都给我们配置好的值YAML(YAML Ain’t Markup Language)标记语言:​ 以前的配置文件;大多都使用的是xxx.xml文件;​ YAML:以数据为中心,比j

2020-06-05 22:19:40 128

原创 记录关于SpringBoot配置文件的加载

配置文件的加载1.配置文件的加载位置spring boot启动会扫描一下位置的application.properties/yml 文件作为是spring boot的默认配置文件- file:./config/ //工程根目录下的config- file:./ //工程根目录下- classpath:/config/ //项目java/resourse下的config- classpath:/ //项目java/resoutse根目录下以上是

2020-06-05 22:18:33 90

原创 对SpringBoot 2.3.0版本的简单探究

自动配置原理-当前版本SpringBoot 2.3.0(有理解错误的地方还希望大家评论指点)1. Spring Boot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration2. @EnableAutoConfiguration作用:利用AutoConfigurationImportSelector给容器中导入一些组件可以查看selectImport()方法来查看导入哪些组件List<String> configurations = t

2020-06-05 22:17:24 747

原创 简单了解SpringBoot中的日志框架

Spring Boot与日志1. 日志框架市面上的日志框架:日志门面(抽象层)日志实现JCL SLF4j jboss-logginglog4j JUL log4j2 logback对比:jboss-logging:使用场景太少JCL:落后,最后一次更新2014JUL:不强大Log4j2:多数框架无法适配log4j:没有logback完善日志门面选择:SLF4J日志实现选择:LogbackSpringBoot:底层

2020-06-05 22:15:55 180

原创 SpringBoot中的静态资源映射问题

Spring Boot与Web开发-静态资源的映射使用Spring Boot:创建SpringBoot,选中我们需要的模块SpringBoot 默认配置好场景,只需要在配置文件中指定少量配置编写业务代码对静态资源的映射规则@ConfigurationProperties( prefix = "spring.resources", ignoreUnknownFields = false)public class ResourceProperties { //可以设置

2020-06-05 22:15:00 310

原创 浅记Spring Boot 对SpringMVC的自动配置

SpringMVC自动配置1.SpringBoot官方文档对SpringMVC的默认配置:Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans.自动配置了ViewResolver(视图解析器:根据方法返回值得到视图对象,试图对象决定如何渲染)ContentNegotiatingViewResolver组合所有的视图解析器如何定制:我们可以给自己的容器添加一个视图解析器,自动的将其组合进来S

2020-06-05 22:13:56 100

原创 设计模式的23个种类和遵守的七大原则

设计模式的种类设计模式有23种,分为三类:创建型模式:单例模式、抽象工厂模式原型模式、建造者模式、工厂模式结构型模式适配器模式、桥接模式、装饰模式、组合模式外观模式、享元模式、代理模式行为型模式模板方法模式、命令模式、访问者模式迭代器模式、观察者模式、中介者模式备忘录模式、解释器模式、状态模式策略模式、责任链模式设计模式七大原则设计模式的核心思想找出代码中的可变化之处,并独立出来,不要和固定代码混在一起针对接口编程, 不要针对实现编程为了交互对象之间

2020-06-05 22:10:09 159

原创 设计模式之单例模式的了解

设计模式之单例模式1. 概念​ 所谓单例模式,就是采取一定的方法使得系统中只存在某个类的一个实例,并且该类只提供一个获取对象实例的方法(静态方法);比如Hibernate的SessionFactory2.实现1.静态常量/静态代码块方法(饿汉式)类加载的时候就完成了实例化,不存在线程同步问题,但是如果至始至终这个对象都用不到,那就变成了内存的浪费,没有达到Lazy Loading的效果步骤:构造器私有化(外部无法通过new来创建对象)类的内部创建对象向外暴露一个公共的getIn

2020-06-05 22:08:22 72

原创 SpringBoot的HelloWorld以及简单的探究

SpringBoot HelloWorld功能需求​ 浏览器发送hello请求,服务器接收请求并处理,相应HelloWorld字符串1.创建一个maven工程;(jar)2.导入SpringBoot相关依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>

2020-05-30 18:30:25 93

原创 算法学习之分治算法之大整数乘法

大整数乘法—karatsuba算法计算过程设 num1 和 num2 相乘 n为最大位数将数拆分为两个数,既 num1 = a∗10(n/2)+b num2=c∗10(n/2)+d则 所求结果为 z =num1∗num2=(a∗10(n/2)+b )∗(c∗10(n/2)+d)既num1∗num2=a∗c∗10n+(a∗d+b∗c)∗10n/2+bd则计算Z0 = a∗cZ...

2020-05-30 18:26:02 117

原创 算法学习之汉诺塔(Hanoi)问题

汉诺塔(Hanoi)问题利用了递归算法,先将n个圆盘转化为n-1个圆盘来解决,以此类推,直到只剩下一个圆盘即可开始移动//java 实现function public static void Hanoi(int n , char a ,char b,char c){ //盘子数以及三个柱子名 if(n==1){ move(n,a,b); //当递归到最上方的圆盘时,直...

2020-05-30 18:25:19 178

空空如也

空空如也

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

TA关注的人

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