• 2019年文章精选,分类整理,顺带聊几句时间观念

    写在前面首先,祝大家新年快乐,在国人的情结里,现在才是真正的年底,估计现在好多朋友已经陆续回家过节去了,祝回家的路顺风。过年回去就好好陪伴家人,不要看一些毒瘤号写的,过年时间弯道超越别人,趁着假期学习什么各种新知识,这完全瞎扯,这一年的时间该努力,努力了,吃苦也吃了,春节就好好陪伴家人吃喝玩乐。对这一年的文章做了分类整理,算是年终总结吧。
  • SpringBoot2 整合Nacos组件,环境搭建和入门案例详解

    Nacos提供一组简单易用的特性集,帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理。配置集一组相关或者不相关的配置项的集合称为配置集。配置分组Nacos 中的一组配置集,是组织配置的维度之一。当客户端无法连接到 Nacos Server 时,可以使用配置快照显示系统的整体容灾能力。Nacos版本:官方推荐的稳定版本为1.1.4。
  • MySQL基础篇(01):经典实用查询案例,总结整理

    selectt1.*,t2.empName,t2.deptIdfromtb_deptt1RIGHTJOINtb_empt2ont1.id=t2.deptIdWHEREt1.idISNULL;图6:全连接selectt1.*,t2.empName,t2.deptIdfromtb_deptt1LEFTJOINtb_empt2ont1.id=t2.deptIdUNIONselectt1.*,t2.empName,t2.deptIdfromtb_deptt1RIGHTJOINtb_empt2ont1.id=t2.deptId图7:全不连接查询两张表互不关联到的数据。selectt1.*,t2.empName,t2.deptIdfromtb_deptt1RIGHTJOINtb_empt2ont1.id=t2.deptIdWHEREt1.idISNULLUNIONselectt1.*,t2.empName,t2.deptIdfromtb_deptt1LEFTJOINtb_empt2ont1.id=t2.deptIdWHEREt2.deptIdISNULL二、时间日期查询1、建表语句CREATETABLE`ms_consume`ENGINE=InnoDBAUTO_INCREMENT=9DEFAULTCHARSET=utf8COMMENT='消费表';2、日期统计案例日期范围内首条数据场景:产品日常运营活动中,经常见到这样规则:活动时间内,首笔消费满多少,优惠多少。SELECT*FROMt1GROUPBYt1.user_id;日期之间时差场景:常用的倒计时场景SELECTt1.*,timestampdiffsecond_diffFROMms_consumet1WHEREt1.id='9';查询今日数据--方式一SELECT*FROMms_consumeWHEREDATE_FORMAT=DATE_FORMAT;--方式二SELECT*FROMms_consumeWHERETO_DAYS=TO_DAYS;时间范围统计场景:统计近七日内,消费次数大于两次的用户。
  • JavaEE基础(06):Servlet整合C3P0数据库连接池

    --核心参数配置--><propertyname="jdbcUrl">jdbc:mysql://localhost:3306/servlet-jdbc</property><propertyname="driverClass">com.mysql.jdbc.Driver</property><propertyname="user">root</property><propertyname="password">123</property><!--池参数配置--><propertyname="acquireIncrement">3</property><propertyname="initialPoolSize">10</property><propertyname="minPoolSize">2</property><propertyname="maxPoolSize">10</property></default-config></c3p0-config>4、编写工具类该工具类用来获取数据库连接,和释放相关连接。publicclassC3P0Pool{privatestaticDataSourcedataSource=newComboPooledDataSource();publicstaticDataSourcegetDataSource(){returndataSource;}/***获取连接*/publicstaticConnectiongetConnection()throwsSQLException{returndataSource.getConnection();}/***释放连接*/publicstaticvoidclose{if(resultSet!=null){try{connection.close();}catch{e.printStackTrace();}}}}二、数据操作封装1、新增数据publicclassUserJdbcInsert{publicstaticvoidinsertUser{try{Connectionconnection=C3P0Pool.getConnection();Stringsql="INSERTINTOuser_infoVALUES(?
  • JavaEE基础(05):过滤器、监听器、拦截器,应用详解

    监听器就是指在应用程序中监听相关对象状态变化的组件。ServletContextServletContextListener生命周期监听,它有两个方法,出生时调用contextInitialized(),销毁时调用contextDestroyed();ServletContextAttributeListener属性监听,它有三个方法,添加属性attributeAdded(),替换属性attributeReplaced(),移除属性时attributeRemoved()。
  • JavaEE基础(03):Http请求详解,握手挥手流程简介

    Web服务器根据接收到的请求后,处理完请求后向客户端发送响应信息。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。正在传输的类型由Content-Type加以标记。服务器处理完客户的请求,并收到客户的应答后,即断开连接。无状态HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。
  • JavaEE基础(02):Servlet核心API用法详解

    Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:接收请求数据;处理请求;完成响应。ServletContext在整个Web应用的动态资源之间共享数据。ServletResponse封装Http响应信息,在请求时创建。核心作用:1.获取初始化信息;2.获取ServletContext对象。
  • JavaEE基础(01):Servlet实现方式,生命周期执行过程

    使用Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。这些do方法需要由HttpServlet的具体子类提供,这种API封装是典型的模板方法模式。代码案例publicclassServletOneImplextendsHttpServlet{@OverrideprotectedvoiddoGetthrowsServletException,IOException{response.setContentType;response.getWriter().print;}@OverrideprotectedvoiddoPostthrowsServletException,IOException{response.setContentType;response.getWriter().print;}}2、继承GenericServletAPI 简介Servlet 接口和 ServletConfig 接口的实现类. 一个抽象类. 其中的 service 方法为抽象方法。
  • Java描述设计模式(24):备忘录模式

    一、生活场景1、场景描述常见的视频播放软件都具备这样一个功能:假设在播放视频西游记,如果这时候切换播放视频红楼梦,当再次切回播放西游记时,视频会从上次切走的时间点继续播放。下面基于备忘录设计模式来描述该场景流程。2、场景图解3、代码实现public class C01_InScene {    public static void main(String[] args) {        Record record = new Record() ;        Player player = new Pl...
  • Java描述设计模式(23):访问者模式

    利用电子设备作为运动器械进行的、人与人之间的智力对抗运动。下面基于访问者模式来描述该场景。2、场景图解3、代码实现publicclassC01_InScene{publicstaticvoidmain{DataSetdataSet=newDataSet();dataSet.addCrowd;dataSet.addCrowd;CrowdViewcrowdView=newAgainst();dataSet.display;crowdView=newApprove();dataSet.display;}}/***双分派,不同人群管理*/abstractclassCrowd{abstractvoidaccept;}classYouthextendsCrowd{@Overridepublicvoidaccept{view.getYouthView;}}classMiddleAgeextendsCrowd{@Overridepublicvoidaccept{view.getMiddleAgeView;}}/***不同人群观念的管理*/abstractclassCrowdView{//青年人观念abstractvoidgetYouthView;//中年人观念abstractvoidgetMiddleAgeView;}classApproveextendsCrowdView{@OverridepublicvoidgetYouthView{System.out.println;}@OverridepublicvoidgetMiddleAgeView{System.out.println;}}classAgainstextendsCrowdView{@OverridepublicvoidgetYouthView{System.out.println;}@OverridepublicvoidgetMiddleAgeView{System.out.println;}}/***提供一个数据集合*/classDataSet{privateList<Crowd>crowdList=newArrayList<>();publicvoidaddCrowd{crowdList.add;}publicvoiddisplay{for{crowd.accept;}}}二、访问者模式1、基础概念访问者模式是对象的行为模式,把作用于数据结构的各元素的操作封装,操作之间没有关联。结构对象角色能枚举结构中的所有元素,可以提供一个高层的接口,用来允许访问者对象访问每一个元素。
  • Java描述设计模式(22):策略模式

    一、生活场景每年双十一,各大电商平台会推出不同的满减策略,当用户的消费金额满一定额度后,会进行减去一定的优惠额度,从而来一波清仓甩卖,使用策略模式来描述该流程。public class C01_InScene {    public static void main(String[] args) {        // 选择满减策略,走相应的计算方式        FullReduce strategy = new Full100 ();        Payment price = new Payment...
  • Java描述设计模式(21):状态模式

    下面基于状态模式对该变化过程进行描述。2、代码实现publicclassC01_InScene{publicstaticvoidmain{Chameleonchameleon=newChameleon;LifeContextlifeContext=newLifeContext();//树叶环境BodyColorbodyColor=newGreenColor();lifeContext.setBodyColor;lifeContext.change;//树枝环境bodyColor=newGrayColor();lifeContext.setBodyColor;lifeContext.change;}}/***变色龙*/classChameleon{publicStringcolor;publicStringcontextDesc;publicChameleon{this.color=color;this.contextDesc=contextDesc;}}/***变色龙生存环境*/classLifeContext{privateBodyColorbodyColor;publicvoidsetBodyColor{this.bodyColor=bodyColor;}publicvoidchange{bodyColor.change;}}/***变色龙身体颜色抽象类*/interfaceBodyColor{voidchange;}/***变色龙身体颜色具体类*/classGreenColorimplementsBodyColor{@Overridepublicvoidchange{System.out.println;chameleon.contextDesc="树叶环境";chameleon.color="绿色";System.out.println;}}classGrayColorimplementsBodyColor{@Overridepublicvoidchange{System.out.println;chameleon.contextDesc="树枝环境";chameleon.color="灰色";System.out.println;}}二、状态模式1、基础概念状态模式是对象的行为模式,状态模式允许一个对象在其内部状态改变的时候改变其行为。状态模式把对象的行为封装在不同状态的对象中,每一个状态对象都是抽象状态类的子类。意图是让一个对象在其内部状态改变的时候,其行为也随之改变。符合“开闭原则”,
  • Java描述设计模式(19):模板方法模式

    一、生活场景通常一款互联网应用的开发流程如下:业务需求,规划产品,程序开发,测试交付。现在基于模板方法模式进行该过程描述。public class C01_InScene {    public static void main(String[] args) {        DevelopApp developApp = new DevelopApp() ;        developApp.templateMethod() ;    }}/** * 软件开发抽象类 */abstract class S...
  • 微服务架构案例(06):通过业务、应用、技术、存储方面,聊聊架构

    更新进度(共6节):01:项目技术选型简介,架构图解说明02:业务架构设计,系统分层管理03:数据库选型,业务数据设计规划04:中间件集成,公共服务管理05:SpringCloud 基础组件应用设计06:通过业务、应用、存储、技术等,聊聊架构一、架构的概念架构分类可细化的分为业务架构、应用架构、技术选型、代码规划、部署环境架构等。根据用户需求,设计合理的业务架构,做出相应的应用架构流程,最后落地实施,完成项目。
  • 微服务架构案例(05):SpringCloud 基础组件应用设计

    更新进度(共6节):01:项目技术选型简介,架构图解说明02:业务架构设计,系统分层管理03:数据库选型,业务数据设计规划04:中间件集成,公共服务管理05:SpringCloud 基础组件应用设计一、组件应用规划1、注册中心Eureka 组件是 Netflix 开发的,用于定位服务,基于RESTFul方式实现服务注册与发现。在Eureka注册的服务中,可以使用Feign接口的形式来进行相关服务间的请求调用,并提供超时回退,快速熔断的相关特性。
  • 微服务架构案例(04):中间件集成,公共服务封装

    更新进度(共6节):01:项目技术选型简介,架构图解说明02:业务架构设计,系统分层管理03:数据库选型,业务数据设计规划04:中间件集成,公共服务管理一、中间件简介中间件是基础软件的一类, 属于复用性极高的软件。是一种独立的系统软件,也可以是公共的服务程序,分布式架构系统借助中间件,可以在不同的技术之间共享资源,或者不同的服务直接传递信息。该案例的中间件和公共服务,都是基于Feign接口统一的方式提供服务。
  • 微服务架构案例(02):业务架构设计,系统分层管理

    更新进度(共6节):01:项目技术选型简介,架构图解说明02:业务架构设计,系统分层管理一、业务架构设计1、基础概念服务的架构设计决定软件的业务支撑能力,清晰的业务设计可以帮助开发人员理解系统。在业务架构设计过程中,需要根据用户需求作为核心方向,根据用户需求确定产品设计、框架搭建、服务划分、数据库规划。
个人资料

人生如果不能躺赢,那就走两步。