模版设计模式

模版设计模式 模版模式:封装固定的流程 优点:封装不变部分,扩展可变部分 缺点:子类对父类产生了影响,阅读难度加大 模板类 public abstract class AbstractClass { //基本方法 protected abstract void doSomething();...

1 minute read

工厂设计模式

工厂设计模式 工厂模式:让子类决定创建什么样的对象,来达到将对象的创建过程封装的目的 优点:工厂方法拥抱变化,如果要增加一个产品,只需要新增一个具体的产品类就可完成系统扩展 数据库从MySQL切换到Oracle,需要改动的地方就是切换一下驱动名称(前提 条件是SQL语句是标准语句),其他的都不需要修改。 如果是用new的话,还要改动代码。 简单工厂:把对象的创建从客户端(简单工厂有多个客户端)代码中调出来(简单工厂并不是一个设计模式,而是一种编程习惯) /* * 简单工厂 */ // 汽车接口 public interface...

3 minute read

代理设计模式

代理设计模式 代理模式:控制对象访问 优点:高扩展性 接口 /** * 接口 */ public interface Star { /** * 唱歌方法...

2 minute read

观察者设计模式

观察者设计模式 观察者模式:一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新 优点:建立一套触发机制 缺点:通知默认是顺序执行,一个观察者卡壳,会影响整体的执行效率 Subject被观察者:必须实现的职责是管理(增加或减少)观察者并通知观察者。 public abstract class Subject { // 定义一个观察者数组 private Vector<Observer> obsVector...

2 minute read

单例设计模式

单例设计模式 单例模式:让对象独一无二 优点:内存中之后一个实例,减少内存开支 缺点:单例模式一般没有接口,扩展很困难 饿汉单例 public class Singleton { private static final Singleton singleton =...

1 minute read

Spring boot 日志配置

Spring Boot 日志配置 1.日志级别 ALL 最低等级,用于打开所有日志记录。 TRACE 很低的日志级别,一般不会使用。 DEBUG 指出细粒度信息事件对调试应用程序是非常有帮助的,主要用于开发过程中打印一些运行信息。 INFO 消息在粗粒度级别上突出强调应用程序的运行过程。打印一些你感兴趣的或者重要的信息,这个可以用于生产环境中输出程序运行的一些重要信息,但是不能滥用,避免打印过多的日志。 WARN 表明会出现潜在错误的情形,有些信息不是错误信息,但是也要给程序员的一些提示。 ERROR...

1 minute read

Spring boot 打成war包的方法

</center>Spring Boot 打成war包的方法</center> Spring Boot写的项目,自身嵌入了tomcat,所以可以直接运行jar包。但是,每次启动jar包创建的都是新的tomcat,这回造成上传文件丢失等问题。因此,我们需要将项目打成war包,部署到tomcat上。 修改pom.xml中的jar为war <groupId>cn.bookcycle.panda</groupId> <artifactId>panda-payservice</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> 修改为: <groupId>cn.bookcycle.panda</groupId> <artifactId>panda-payservice</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging>...

1 minute read

Springboot实战配置使用logback进行日志

SpringBoot实战配置使用Logback进行日志 在Spring Boot中使用Logback很简单 为了测试我们新建两个类 package com.xiaofangtech.sunt.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import...

2 minute read