能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
能力说明:
掌握计算机基础知识,初步了解Linux系统特性、安装步骤以及基本命令和操作;具备计算机基础网络知识与数据通信基础知识。
码中自由一片天地。。。
今天来看下使用Spring Cloud的开源子项目Spring Cloud Netflix来管理服务的注册和发现。
在使用Git时,我们可以通过SSH和HTTP来获取Git仓库的代码
今天汇总下学过的设计模式。
访问者模式(Visitor Pattern)就是封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于其内部各个元素的新操作。通过访问者类改变元素类的执行算法,属于行为型模式。
模板模式(Template Pattern)就是在一个方法中定义一个算法的骨架,而将一些步骤的实现延迟到子类中,使得子类可以在不改变一个算法的结构前提下即可重定义该算法的某些特定步骤。
状态模式(State Pattern)就是一个对象的行为会随内部状态变化而发生改变。也属于行为型模式。
备忘录模式(Memento Pattern)就是通过一个备忘录类专门保存一个对象的某个状态,使得该对象可以随时恢复到保存的这个状态。
中介者模式(Mediator Pattern)就是用一个中介类将多个对象和类之间的交互全部放到该类中来处理,这样使得对象之间不需要显式的相互通信,降低代码的耦合性。也属于行为型模式。
策略模式(Strategy Pattern)就是一个类的行为或其算法封装起来,在运行时可以更改,相互替换,最终达到何种目的,取决于调用者传入的要求条件。属于行为型模式。
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。
责任链模式(Chain of Responsibility Pattern)就是在一个请求出去后,将请求的接受对象串为一个链路。请求对象只负责将请求发送出去,不管这个链路中哪个对象接受处理,将请求的发送者和接收者进行解耦。属于行为型模式。
观察者模式(Observer Pattern)定义了一种对象间一对多的依赖关系,一个主题目标对象能被多个观察者对象同时监听,使得每当主题目标对象状态变化时,所有依赖它的对象都会得到通知并被自动更新,属于行为型设计模式。
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。也属于创建型模式。就是使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。
建造者模式(Builder Pattern)属于创建型模式,也是一种创建对象的方式。其目的就是将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。原理就是使用多个简单的对象一步一步构建成一个复杂的对象。
单例模式(Singleton Pattern)负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。也属于创建型模式。
抽象工厂模式是工厂方法模式的升级版本,工厂方法模式的工厂是创建出一种产品,而抽象工厂是创建出一类产品。
上面我们学习了简单的静态工厂模式,就是将用一个工厂类来根据传入不同的参数来返回不同的对象,今天来看下比简单工厂模式稍微复杂一点的工厂模式。
工厂模式(Factory Pattern)就是不通过new关键字而使用工厂类来创建对象,能够让创建对象变得简单而且更方便的修改对象。属于创建型模式。它提供了一种创建对象的最佳方式。
代理模式(Proxy Pattern)就是提供一个代理对象,这个对象可以作为其他对象的代理来控制对其他对象的访问。一个类代表另一个类的功能。属于结构型模式。
享元模式(Flyweight Pattern)就是搞一个缓存池,找对象先在池中找,如果未找到匹配的对象,再创建新对象。通过重用现有的同类对象减少创建对象的数量,以减少内存占用和提高性能。也是属于结构型模式。
外观模式(Facade Pattern)应该是最好理解的一个设计模式了,在我们项目中向外部提供一个外部可以访问系统的接口,然由这个接口去耦合子系统或者子接口,外部与子接口完全解耦。这种类型的设计模式属于结构型模式。
桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
适配器(Adapter Pattern)可以将两个不兼容的接口的功能连起来。适配器就是两个不兼容的接口之间的桥梁。也属于结构型模式。
过滤器模式(Filter Pattern)或者叫标准模式(Criteria Pattern),就是在全部对象中过滤出我们所定义的标准对应的对象,也属于结构型模式。
装饰器模式(Decorator Pattern)就是在不改变原始对象本质的前提下,对现有类进行包装,从而提供出额外的功能。
什么是组合模式呢?
我们今天搞一下全局异常处理,在SpringBoot中用自定义的页面来替换掉默认的异常页面。
Mybatis Plus(简称 MP)是一个Mybatis(opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
MybatisPlus也提供了代码生成器,并且更加厉害,能直接生成controller、service、mapper、xml等,并且还支持各种配置。
在开发中,我们使用Mybatis最麻烦的就是写每个表对应的Mapper接口及XML配置文件,当然还有实体类,既然每个单表都有对应的一套,那么肯定就有自动生成这些代码文件的工具,那就是代码生成器:逆向工程-MyBatis generator。
存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集。经编译后存储在数据库中。现在要使用Mybatis调用数据库的存储过程。我们来看下如何实现。
如果发愁写SQL语句,在Mybatis中,提供了一种生成SQL语句的工具,以下为所在类包:
在前面的笔记里,我们发现在Mapper接口中,使用了@Secelet等注解的方法,就不需要在xml中编写方法签名对应的标签。这是因为,在初期 MyBatis 是一个 XML 驱动的框架。配置信息是基于 XML 的,映射语句也是定义在 XML 中的。后来在 MyBatis 3 中提供了基于 Java 语言的API配置方式,也就是注解。注解提供了一种简单且低成本的方式来实现简单的映射语句。
今天看下Mybatis动态的拼装sql怎么实现。
今天看下Mybatis的结果映射。
上篇看了简单的增删改查标签的使用及官网的介绍,第一次见那么全面的官网,点赞! 今天继续记录下细化的一些特性。
今天详细看下Mybatis mapper映射文件,由于MyBatis强大的语句映射,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成本,让用户能更专注于 SQL 代码。
在SpringBoot中使用PageHelper对Mybatis查询数据分页。
什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。
今天来将client注册到Server服务,并在管理页面上查看各种信息。Client
Spring Boot中的监控和管理软件Spring Boot Admin.该软件能够将 Actuator 中的信息进行界面化的展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能。
这篇记录连接和操作Zookeeper的工具类,方便以后创建项目时可以直接CV。
前面学习了Zookeeper的安装及原生API连接,还创建了一个名叫myNode的节点,今天在zkCli用命令来查看一下Zookeeper的节点等信息。
Apache kafka的下载安装和配置。
Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
在SpringBoot中使用ActiveMQ来进行简单的收发消息。
本来是要学习下SpringBoot中集成ActiveMQ,需要先安装一个ActiveMQ,所以先记录下在本地安装的步骤。
在SpringBoot中发布WebService。
SpringBoot自动配置了邮件发送的功能,封装成了一个starter,提供了邮件服务实例(JavaMailSenderImpl)。
SpringBoot集成Quartz来实现定时任务处理。 Quartz的功能很强大,我们今天只看下在SpringBoot中最基础的使用是怎么实现的。