一.多环境开发 我们平常都是在自己的开发环境进行开发, 当开发完成后,需要把开发的功能部署到测试环境供测试人员进行测试使用, 等测试人员测试通过后,我们会将项目部署到生成环境上线使用. 这个时候就有一个问题是,不同环境的配置是不相同的,如不可能让三个环境都用一个数据库,所以就会有三个数据库的url配置, 在项目中如何配置? 要想实现不同环境之间的配置切换又该如何来实现呢? maven提供配置多种环境的设定,帮助开发者在使用过程中快速切换环境.具体实现步骤: 步骤1:父工程配置多个环境,并指定默认…
在编程语言的设计之初,它们除了可以进行数学计算,还常常用于逻辑推理和条件判断.为了实现逻辑判断的功能,Java引入了一种布尔类型boolean,用来表示“真”和“假”.该类型的变量只允许两个取值,即true和false,其中true对应真值,而false对应假值.如同数值变量拥有加减乘除四则运算那样,布尔变量也拥有逻辑方面的四则运算,包括“非”.“与”.“或”.“异或”,下面分别加以介绍.1.“非”运算求的是某布尔变量的对立值,若原变量值为true,则“非”运算的结果为false,若原变量值为f…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多线程第三十二章:显式锁Lock等待唤醒机制详解 下一章 "全栈2019"Java多线程第三十三章:await与signal/signalAll 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号G…
一. 配置文件格式 我们现在启动服务器默认的端口号是 8080,访问路径可以书写为 http://localhost:8080/books/1 在线上环境我们还是希望将端口号改为 80,这样在访问的时候就可以不写端口号了,如下 http://localhost/books/1 而 SpringBoot 程序如何修改呢?SpringBoot 提供了多种属性配置方式 application.properties server.port=80 application.yml server: port:…
前面介绍了AWT窗口及其面板的简单用法,其中展示出来的控件只有按钮一种,还有很多好用好玩的控件有待介绍.首先是文本标签Label,该控件用于显示一段平铺文本,它不花哨也不跳动,完全就是素面朝天的文本字符.不过,即便是文本,也能拥有鲜明的个性,犹如书法那样,可以横排也可以竖排,既可写在白纸上也可写在红纸上,还能以专门的字体来书写如楷书.行书.草书.隶书等等.这些彰显个性的功能,需要调用文本标签的相应方法来实现,下面是Label的常见方法说明:setText:设置文本内容.setAlignment:…
前面介绍了如何使用画笔工具Graphics绘制各种图案,然而Graphics并不完美,它的遗憾之处包括但不限于:1.不能设置背景颜色:2.虽然提供了平移功能,却未提供旋转功能与缩放功能:3.只能在控件上作画,无法将整幅画保存为图片:有鉴于此,AWT提供了Graphics的升级版名叫Graphics2D,这个二维画笔不但继承了画笔的所有方法,而且拓展了好几个实用的方法,包括设置背景色的setBackground方法,旋转画布的rotate方法,缩放画布的scale方法等.尤为关键的是,Graphi…
前面介绍了AWT界面编程的若干技术,在编码实践的时候,会发现AWT用起来甚是别扭,它的毛病包括但不限于下列几点:1.对中文的支持不好,要想在界面上正常显示汉字,还得在运行时指定额外的运行参数“-Dfile.encoding=gbk”:2.Label标签控件居然无法分行展示文本,连换行这么基本的功能都不支持,真是让人醉了:3.AWT没提供专门显示图像的控件,只能由程序员自己定义单独的图像视图,繁琐的操作立马吓跑一票人:考虑到AWT属于Java1时代的产物,种种不足之处尚且情有可原.可是AWT拿来开…
前面介绍了两种文本输入框的用法,不过实际应用很少需要用户亲自文字,而是在界面上列出几个选项,让用户勾勾点点完成选择,这样既方便也不容易弄错.依据选择的唯一性,可将选项控件分为两类:一类是在方框中打勾的复选框,多个复选框允许同时勾选:另一类是在圆圈中点选的单选框,一组单选框最多只能选中一个.AWT实现复选功能的控件名叫Checkbox,它由两部分组成,左边部分是个支持打勾的方框,右边部分是说明文字.Checkbox类似一种特殊的按钮,只不过Button的文字在按钮内部,而Checkbox的文字在方…
前面提过,AWT没提供能够直接显示图像的控件,这无疑是个令人诟病的短板,因为一上来就得由程序员自己去定义新控件,对于初学者来讲很不友好.这个问题在Swing中也解决掉了,不过Swing并未提供单独的图像视图,而是利用标签控件JLabel来显示图像.JLabel的setText方法用来设置标签上的文本,而setIcon方法用来设置标签上的图标,根据两个方法的调用与否状况,标签所展示的内容可分为下列三种情况:1.只调用setText方法,未调用setIcon方法,此时标签只显示文本.2.只调用set…
Swing的输入框仍然分成两类:单行输入框和多行输入框,但与AWT的同类控件相比,它们在若干细节上有所调整.首先说单行输入框,AWT的单行输入框名叫TextField,平时输入什么字符它便显示什么字符,可一旦调用了setEchoChar方法设置回显字符,TextField马上变成只显示密文字符了.然而尴尬之处在于,设置回显字符之后,就没有办法取消原来的回显设置,输入框对象从此只能傻乎乎地显示密文了.如此一来,程序代码难以判断某个输入框究竟会显示明文还是密文,也无法确定输入框文字的加密与否.这不可…
前面介绍了如何使用画笔在控件上展示图像,可是图像来源于磁盘图片,无法即兴绘制个性化的图案.所幸画笔工具Graphics不仅能够描绘图像,还支持绘制常见的几何形状,也支持绘制文本字符串,除了绘制图像用到的drawImage方法,Graphics还有下列常见的绘图方法:setColor:设置画笔的颜色.drawLine:在指定坐标的(x1,y1)与(x2,y2)两点之间画条线段.drawRect:以坐标点(x,y)为左上角,绘制指定宽高的矩形边框.fillRect:以坐标点(x,y)为左上角,绘制指…
提起AWT的标签控件Label,那个使用体验可真叫糟糕,不但不支持文字换行,而且对中文很不友好,既可能把中文显示为乱码,还不支持博大精深的各种中文字体.所幸Swing的升级版标签JLabel在各方面都做了优化,使之成为一个功能强大的标签控件,那么到底JLabel拥有哪些提升之处呢?且待笔者一一道来. 首先看JLabel相较Label增加的新方法,这些方法主要有下列几个:setOpaque:设置标签的背景是否为不透明.true表示不透明,false表示透明.注意如果想让setBackground方…
前面介绍了文本标签Label,该控件展示的文字是不可编辑的,若要用户在界面上输入文本,就得使用专门的编辑框控件.在AWT的控件家族当中,用作编辑框的有两种控件,分别是单行输入框TextField和多行输入框TextArea.TextField主要用于输入短小精悍的单行文字,跟Label一样,它拥有setPreferredSize.setText与setFont方法,但没有setAlignment方法,因为输入框内的文字只能向左对齐.除此之外,TextField还提供了下列几个与编辑框有关的方法:…
前面介绍了AWT的几种基础控件,从按钮到文本标签,从输入框到选择框,无一例外都能显示文字,唯独无法显示某张图片文件.本以为AWT会提供专门的控件来显示图片,然而偏偏没有意料之中的图像控件,这可真是弱爆了,居然不能显示姹紫嫣红的图片,让程序员情何以堪呀.不过咱程序员不是吃素的,与其坐等天上掉馅饼,不如自己动手编写符合要求的图像视图.AWT自带的界面控件,大多由Component类派生而来,该类与展示有关的方法主要有下列两个:getPreferredSize:该方法可返回控件的推荐宽高.paint:…
前面介绍的各色流式IO在功能方面着实强大,处理文件的时候该具备的操作应有尽有,可流式IO在性能方面不尽如人意,它的设计原理使得实际运行效率偏低,为此从Java4开始增加了NIO技术,通过全新的架构体系带来了可观的性能提升.NIO是“Non-blocking IO”的缩写,意思是非阻塞的IO,与之相对应,传统的流式IO又被称作BIO(“Blocking IO”的缩写),意即阻塞的IO.所谓阻塞与非阻塞,说起来挺拗口,令人不知所云,这都是设计师脑袋短路惹的祸,发明了这么难懂的词汇,害得初学者一脸懵逼…
前言   树莓派也可以做商业应用,工业控制,其稳定性和可靠性已经得到了验证,故而工业控制,一些停车场等场景也有采用树莓派作为主控的,本片介绍了研华ADVANTECH的树莓派套件组UNO-220-P4N1AE.   树莓派介绍   请参照系列博客:<树莓派开发专栏>  有技术方案等外协,可联系博主.   研华树莓派套件 使用手册   使用手册CSDN零积分下载:https://download.csdn.net/download/qq21497936/85179742  QQ群:10471346…
一.本地仓库访问私服配置 我们通过IDEA将开发的模块上传到私服,中间是要经过本地Maven的 本地Maven需要知道私服的访问地址以及私服访问的用户名和密码 私服中的仓库很多,Maven最终要把资源上传到哪个仓库? Maven下载的时候,又需要携带用户名和密码到私服上找对应的仓库组进行下载,然后再给IDEA 上面所说的这些内容,我们需要在本地Maven的配置文件settings.xml中进行配置. 步骤1:私服上配置仓库 说明: 第5,6步骤是创建itheima-snapshot仓库 第7,8…
一.聚合 分模块开发后,需要将这四个项目都安装到本地仓库,目前我们只能通过项目Maven面板的install来安装,并且需要安装四个,如果我们的项目足够多,那么一个个安装起来还是比较麻烦的 如果四个项目都已经安装成功,当ssm_pojo发生变化后,我们就得将ssm_pojo重新安装到maven仓库,但是为了确保我们对ssm_pojo的修改不会影响到其他项目模块,我们需要对所有的模块进行重新编译,那又需要将所有的模块再来一遍 项目少的话还好,但是如果项目多的话,一个个操作项目就容易出现漏掉或重复操…
一.为什么要有正则 正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证.拆份.替换功能. 例如:现在要求判断一个字符串是否由数字组成,则可以有以下的两种做法: 不使用正则完成 使用正则完成 二.Pattern.Matcher类 如果要想在程序中应用正则表达式则必须依靠Pattern类与Matcher类,这两个类都在java.util.regex包中定义.Pattern类的主要作用是进行正则规范的编写,而Matcher类主要是执行规范,验证一个字符串是否符合其规范.   常用正则规则…
Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车型号.总载人量及其车型: 二:项目分析: 数据模型分析: 业务模型分析: 显示和流程分析: 三:数据模型分析: 1.通过对现实世界的事与物主要特征的分析.抽象,为信息系统的实施提供数据存取的数据结构以及相应的约束: 2.数据结构组成:操作(方法).属性: 如现实世界中的汽车,最终会转化为一段代码:…
一.连接数据库的过程 连接数据库的过程:加载数据库驱动程序,不过只需在第一次访问数据库时加载一次,然后在每次访问数据库时创建一个Connection实例,然后执行操作数据库的SQL语句,并返回执行结果,最后在完成此次操作时销毁前面创建的Connection实例,释放与数据库的连接. 1.加载JDBC驱动程序 // 加载数据库驱动类,加载失败抛出ClassNotFoundException异常 Class.forName(Driver); 2.创建数据库连接 // 创建一个数据库连接对象,创建失败…
很多BizTalk的项目都要考虑到性能优化的问题,虽然BizTalk采用多线程处理消息的,大大提高了程序效率.但默认情况下 BizTalk的主机有很多阻止参数会控制BizTalk对服务器的资源使用率,从而约束了BizTalk的效率.之前做了一个200万条CSV数据通过 BizTalk传到数据库的程序.在不改变程序的情况下对主机性能做了一下简单优化,处理效率发生了成倍的增长. 程序逻辑 先简单的介绍一下程序的处理逻辑,CSV原文件大概有200多万条数据,文件大小50多M.每条只有两个字段总长度大概…
前面花了大量篇幅介绍布尔类型及相应的关系运算和逻辑运算,那可不仅仅是为了求真值或假值,更是为了通过布尔值控制流程的走向.在现实生活中,常常需要在岔路口抉择走去何方,往南还是往北,向东还是向西?在Java编程中,利用if语句可判断接下来要做什么,比如说:如果某个条件成立,就进行某种处理:否则的话,就进行另一种处理.if语句的具体格式为“if (条件) { /* 条件成立时的操作代码 */ } else { /* 条件不成立时的操作代码 */ }”,其中后面的else分支是可选的,下面是个if判断的…
前面介绍while循环时,有个名叫year的整型变量频繁出现,并且它是控制循环进出的关键要素.不管哪一种while写法,都存在三处与year有关的操作,分别是“year = 0”.“year<limit”.“year++”.第一个“year = 0”用来给该变量初始赋值,第二个“year<limit”则为是否退出循环的判断条件,第三个“year++”用于该变量的自增操作.这三处语句结合起来,方能实现循环的有限次数处理,而非无限次的运转.换句话说,要想实现一个标准的循环结构,就必须具备上述的三种…
一.SpringBoot简介 SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程. 使用了 Spring 框架后已经简化了我们的开发.而 SpringBoot 又是对 Spring 开发进行简化的,可想而知 SpringBoot 使用的简单及广泛性.既然 SpringBoot 是用来简化 Spring 开发的,那我们就先回顾一下,以 SpringMVC 开发为例: 创建工程,并在 pom.xml 配置文件中配置所依赖的坐…
Navigation Drawer是从屏幕的左侧滑出,显示应用导航的视图.官方是这样定义的: The navigation drawer is a panel that displays the app’s main navigation options on the left edge of the screen. It is hidden most of the time, but is revealed when the user swipes a finger from the left…
本文将整理 java.util.Arrays 工具类比较常用的方法:  本文介绍的方法基于JDK 1.7 之上.  1.  asList方法 @SafeVarargs public static <T> List<T> asList(T... a) { return new ArrayList<>(a); } 使用该方法可以返回一个固定大小的List,如: List<String> stringList = Arrays.asList("Welco…
前面讲到赋值运算符的时候,提到“x = x+7”可以被“x += 7”所取代,当然Java编程中给某个变量自加7并不常见,常见的是给某变量自加1,就像走台阶,一般都是一级一级台阶地走,犯不着一下子跳上七级台阶.那么对于变量自加1的情况,既可以写成“x = x+1”,也可以写成“x += 1”,但是早期的Java设计师嫌前面的语句不够简洁,故而创造了新的运算符“++”,该运算符表示给变量自加1,于是“x += 1”可再简化为“x++”.同理,运算符“--”表示给变量自减1,语句“x--”等价于“x…
到目前为止,我们已经学习了Java语言的好几种运算符,包括算术运算符.赋值运算符.逻辑运算符.关系运算符等基础运算符,并且在书写赋值语句时都没添加圆括号,显然是默认了先完成算术.逻辑.关系等运算,最后才进行赋值操作.也就是说,在这四类运算符当中,赋值运算符的优先级最低,那么其他三种运算符的优先级顺序又是如何排列的呢?首先来看算术运算符,Java中的算术运算符主要包括正号负号.加减乘除,以及取余数符号.对于数学上的四则运算来说,大家早已熟知乘法和除法的优先级高于加法和减法,它们在Java编程中的优…
前面提到逻辑运算只能操作布尔变量,这其实是不严谨的,因为经过Java编程实现,会发现“&”.“|”.“^”这几个逻辑符号竟然可以对数字进行运算.譬如下面的代码就直接对数字分别开展了“与”.“或”.“异或”运算: // 3的二进制为00000011,7的二进制为00000111 int andNumber = 3&7; // 对两个数字进行“按位与”运算 System.out.println("andNumber="+andNumber); int orNumber =…