能力说明:
了解变量作用域、Java类的结构,能够创建带main方法可执行的java应用,从命令行运行java程序;能够使用Java基本数据类型、运算符和控制结构、数组、循环结构书写和运行简单的Java程序。
暂时未有相关云产品技术能力~
一个写代码的....
在实际的开发或者线上环境中,一般都不仅仅是一个数据库走天下,而是根据业务进行拆分多个数据库,今天就来学习如何对springboot进行多数据源配置。
Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
Spring 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(Authentication*)和用户授权(Authorization) 两个部分。
距离上一篇文章已经过去一个多月了,最近忙着项目上线,连轴转了一个多月,头发都少了不少!今天分享的是MP入门使用教程的最后的部分,也是使用的比较多的地方,就是如何使用MP进行条件查询!
距离上一篇文章已经过去一个多礼拜了!年后第一周就各种加班,忙成狗,今天分享的是MP入门使用教程的中篇部分!
今天是大年初二,xdm都去哪里玩了?我在家宅了一天,没地方去的那就继续一起学习,内卷起来!
在绝大多数的java应用中,很多场景都是采用的是同步的方式交互,那么一旦如果有第三方进行交互,则很有可能就会产生交互延迟的问题,那么这种时候就得考虑使用多线程,但是在Spring3以后它就已经内置了异步任务供我们使用。
发送邮件是很多公司必须的业务场景之一。常见的比如预警邮件、入职邮件、报告邮件等等。我们公司就有很多场景需要使用到邮件功能,今天就一起来学习如何使用springboot实现邮件业务场景,掌握邮件业务类的核心逻辑。
在springboot中有几种处理url请求参数的注解,它们分别是:
日志系统作为一个应用系统的重要部分之一,它能够有助于我们在系统在线上环境中如果有问题,及时发现问题,并且定位问题,从而解决问题,保证服务的高可用,减少生产事故的发生。所以日志的重要性,不言而喻。
文件上传是很多业务场景需要实现的功能,今天就简单以Springboot框架为基础实现文件上传的接口。
SpringBoot的配置文件除了支持application.properties文件格式还支持application.yaml格式的配置文件。
Spring从3.1版本开始定义了两个接口来统一不同的缓存从而帮助简化开发过程。它们分别是:org.springframework.cache.Cache和org.springframework.cache.CacheManager接口。
Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库,其具备如下特性:
命令模式(Command Pattern)又叫动作模式或事务模式。指的是将一个请求封装成一个对象,使发出请求的责任和执行请求的责任分割开,然后可以使用不同的请求把客户端参数化,这样可以使得两者之间通过命令对象进行沟通,从而方便将命令对象进行储存、传递、调用、增加与管理。命令模式是一种对象行为型模式。
解释器模式(Interpreter Pattern)指的是给定一种语言,定义它的文法的一种表示,并定义一个解释器,这个解释器就是被用来解释这门指定语言中句子。它是一种类行为型模式。
迭代器模式(Iterator Pattern)主要是提供了一种访问一个容器对象中各个元素的方法,并且不会暴露该对象的内部细节。迭代器模式是一种对象行为型模式。
责任链模式(Chain of Responsibility Pattern)又叫也叫职责链模式,指的是为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。它是一种对象行为型模式。
状态模式(State Pattern)指的是将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化,在其内部状态改变时改变它的行为。状态模式是一种对象行为型模式。它和策略模式有一点很像,就是将一些复杂的逻辑放在一个专门的上下文类中进行处理。
备忘录模式(Memento Pattern)又叫快照模式,它指的是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。它是一种对象行为型模式。
策略模式(Strategy Pattern)也被称为政策模式(Policy)。它指的是定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,算法的变化不会影响使用算法的客户。
模版方法模式(Template Method)定义一个操作中算法的框架,并且将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。
中介者模式(Mediator Pattern)又被称为调停者模式。它定义了一个中介对象来封装一系列对象之间的交互关系。中介者使各个对象之间不需要显式地相互引用,从而使耦合性降低,而且可以独立地改变它们之间的交互行为。它是一种对象行为型模式。
前面的几篇文章分别介绍了创建型设计模式和结构型设计模式,接下来的几篇文章将介绍行为型设计模式
享元模式(Flyweight Pattern)指的是运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种对象结构型模式。
组合模式(Composite Pattern)又叫做部分-整体模式,它在树型结构(可以想象一下数据结构中的树)的问题中,模糊了简单元素和复杂元素的概念,客户端程序可以像处理简单元素一样来处理复杂元素,而使得客户端程序与复杂元素的内部结构进行解藕。
桥接(Bridge)模式又称为柄体(Handle and Body)模式或接口(Interface)模式,它将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。
外观(Facade)模式又叫作门面模式,是一种为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部与其中子系统的通信必须通过一个统一的外观对象进行,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,使得这一子系统更加容易使用,提高了程序的可维护性。外观模式是一种对象结构型模式。
今天被领导批了!
在编程语言中一般有两种方式给一个类或者对象增加额外的行为或者功能:
代理模式可以说是在日常开发中听到用到最多的设计模式之一了。
前面的几篇文章分别介绍了设计模式中的创建型设计模式,它们分别是:
在现实世界中的很多东西都是由很多组成部分构成的,比如房子它由砖头、水泥、石灰、钢筋等组成,即一个个简单的组成部分构成了一个复杂的房子。同样在软件系统中也存在很多复杂对象,而复杂对象的一些属性就相当于盖房子的材料,创建对象的过程就相当于盖房子的过程。由于组合部件的过程很复杂,因此,这些部件的组合过程往往被“外部化”到一个称作建造者的对象里,然后建造者返还一个已经建造完毕的完整产品对象,而用户无须关心该对象所包含的属性以及它们的组装方式,这就是建造者模式的模式动机。
工厂模式(Factory Pattern)也是 Java中最常用的设计模式之一。这种类型的设计模式也属于创建型模式,它提供了一种创建对象的最佳方式。
作为一个从事 Java 开发的程序员,每天离不开ide的帮助。一开始学习java的时候基本都是使用eclipse进行开发, 后来接触了idea,发现是真的香,比eclipse好用太多了,能够大大提升开发的效率。
Vue实例有一个完整的生命周期,也就是说从开始创建、初始化数据、编译模板、挂在DOM、渲染-更新-渲染、卸载等一系列过程,被称为Vue实例的生命周期,而钩子函数就是在某个阶段给我们一个做某些处理的机会。
在java中map是一个键值对对象,将键映射到值的对象并且一个映射不能包含重复的键,每个键最多只能映射到一个值。比如:
在python中对于list和tuple,有很多的方式得到里面的元素,如果要输出里面的所有元素,可以采用for循环的形式,得到list或tuple中的每个元素,这就是迭代,凡是能够进行for循环的对象就是可迭代对象。 在java中的迭代方式有两种,一种直接for循环,一种采用迭代器 for循环的使用:
java中的有两种线程:守护线程(Daemon)和用户线程(User)。
StringBuilder和StringBuffer的区别是面试的时候被提及最多的问题之一了,我们都知道stringbuffer是线程安全的,而stringbuilder不是线程安全的。通过stringbuffer和stringbuilder的源码,我们可以发现stringbuilder和stringbuffer都是继承了abstractstringbuilder这个
冒泡排序是一种交换排序算法,元素通过两两的比较,交换不满足次序要求的元素,直到整个数组都满足次序要求为止。
开发vue项目的时候一般是通过vue-cli脚手架进行开发。之所以成为脚手架就是因为他通过webpack搭建的开发环境直接生成开发所需要的基本模板,我们只需要在模板中进行开发即可。接下来详细记录下在自己的电脑上安装vue-cli脚手架的步骤以及问题。
前面的文章讲到了如何用CDN的方式引入vue.js。今天这篇文章介绍如何在vue中调用方法以及传参!
最近公司需要进行一些前端的开发工作用到了Vue前端框架,所以准备自学Vue,顺便几下学习的过程以及一些问题。
前面的一篇文章从零开始学设计模式(二):单例模式介绍了什么是单例模式以及单例模式的几种常见的实现方式。今天这篇文章接着介绍设计模式中的原型模式Prototype。
我们知道在一个函数内部是可以调用其他函数。那么如果一个函数在内部调用函数自身,这个函数就是递归函数。
进程通信就是指进程之间的信息的传播和交换。
变量值共享可以使用静态变量形式,所有的线程都可以使用同一个静态变量。如果想实现每一个线程都有自己的共享变量如何解决?Java提供ThreadLocal类来解决这个问题。
在Java多线程中独占锁的实现可以使用synchronized关键字来实现线程之间的同步互斥,但在JDK1.5中新增加ReentranLock(可重入锁)类也可以达到同样的效果,并且在扩展功能上更加强大,比如具有嗅探锁定、多路分支通知等,而且在使用上也比synchronized更加灵活,也更适合复杂的并发场景。
在Java线程编程中, join()方法主要是让调用该方法的thread在完成run方法里面的部分后, 再执行join()方法后面的代码。