Java
文章平均质量分 73
蜡笔小逹
生于尘埃,溺于人海。学海无涯,吾知有限。
展开
-
漫谈设计模式(五)—— 装饰器模式
1. 需求1.1 最开始的需求假设现在有一个老板,开了一家面店,提供各种各样的面。那么编程如下。超类package decorator;abstract class Nooddles { private String name; public Nooddles(String name) { this.name = name; } public String getName() { return name; } @Overridepublic String to原创 2020-07-18 14:38:39 · 181 阅读 · 0 评论 -
漫谈设计模式(四)—— 原型模式
1.前言原型模式是创建型设计模式之一。本来已经决定不写相关部分的内容,因为其内容并不是很难。后来想了一下,里面涉及到的思考点和细节点比较多,还是应该总结一下。其次,设计模式本身可能并不会很难,哪怕是对花点时间多去看一些例子,总归能看懂,但是设计模式之难不在其本身,难在其应用场景,你可能知道它是怎样实现的,但是你不知道它应该在什么场合下被使用。使用好了它有益于系统,而滥用则会为系统增加复杂度和冗余度,它考察编程人员举一反三的能力和设计思维。此外,原型模式也算是相对比较常见常用的设计模式之一。基于此,还原创 2020-05-23 23:28:27 · 273 阅读 · 0 评论 -
漫谈设计模式(三)—— 建造者模式
1.what & why创造者模式(Builder Pattern,根据翻译的不同,又可较为创建者模式、生成器模式等),其目的是为了将对象的创建与其“表示”(representation)分离开来,这样对象可以有多个不同的“表示”。对象的创建过程保持不变,但是最终创建的对象可以有不同的表示。...原创 2020-05-13 18:15:51 · 175 阅读 · 0 评论 -
漫谈设计模式(二)—— 工厂模式(简单工厂、工厂方法、抽象工厂)
1. 必要性从易维护、高可靠、低耦合的角度来看,当需要将一种类(types)添加到系统中时,比较合理的方式是使用多态特性为这些类创建一个通用接口。这将使得可以在尽可能不改变现有类的情况下向系统添加新的types。因为是一种类,所以理想情况下这些类能够被抽象出通用接口。注意,是尽可能。假设可以并已经抽象出接口或者基类,当创建新types时,实现接口或者继承基类并扩展它们是第一个要修改的地方,这...原创 2020-04-28 10:25:51 · 266 阅读 · 0 评论 -
漫谈设计模式(一) —— 单例模式
1. 设计模式设计模式(Design patterns)是一种解决特定类型问题的巧妙而具有深刻见解的方法,随着众多开发前辈的反复使用与推敲,成为软件领域的一个分支,为众多面向对象的软件开发人员所使用。设计模式的目标是隔离代码中需要更改的部分,使得其优雅而易于维护且具备更好的可靠性。从实现目标的角度看,继承、组合都算是一种模式。1995年,由Addison-wesley出版的《Design P...原创 2020-04-23 13:17:08 · 211 阅读 · 0 评论 -
使用apache commons configuration代替java.util.Properties写配置文件
0 需求存在一个配置文件,用于记录一些数据,且这些数据可能通过用户界面更改,保存后重新写进配置文件。1 原有方式采用java.util.Properties.Properties()方法配合IO流来完成,见下方代码:public void setProperty(String properties, String key , String newValue) { Properties p...原创 2020-03-19 17:25:42 · 737 阅读 · 0 评论 -
LocalDateTime(LocalDate)+Clock 代替 Date+Calendar+DateFormat
1. Date+Calendar+DateFormatDate自从JDK1.1开始使用,根据官方源码注释:Unfortunately, the API for these functions was not amenable to internationalization. As of JDK 1.1, the Calendar class should be used to conv...原创 2019-12-31 17:30:56 · 586 阅读 · 1 评论 -
新环境下重新导入Web项目遇到的一些问题
在 Win 10 环境下,进行了一次“全新启动”操作,重新安装了系统,过程中删除了部分安装的软件,但是工作目录等文件夹已然存在。重装了tomcat 和 eclipse,将原来的工作目录作为新工作目录。1. tomcat 启动时信息乱码问题将conf/logging.properties 中的java.util.logging.ConsoleHandler.encoding由原来的UTF-8改为...原创 2019-11-11 09:54:46 · 256 阅读 · 0 评论 -
Maven 在 Ubuntu 中的使用
安装与配置首先,确保jdk已安装并配置好。其次,下载apache maven, 地址 https://maven.apache.org/download.cgi ,因为是linux,所以下载 tar.gz版本。下载完成后,解压,将文件夹移动到/usr/local下,在 /etc/profile 中做如下配置(类似jdk配置,~/.bashrc里配置应该也可以,不过这里就不做尝试了):exp...原创 2019-10-31 17:31:34 · 655 阅读 · 0 评论 -
Spring 报错 java.lang.IllegalArgumentException
在使用Spring3.2.0开发项目的过程中,在如下两个场景下遇到了报错java.lang.IllegalArgumentException的情况。Spring 3.2.0 + jdk1.8 注解注入,如(a)初始化@PostConstruct public void init() { //initialization }(b)applcaitonContext.xml&...原创 2019-09-02 10:30:57 · 2023 阅读 · 0 评论 -
Spring 报错:Unable to locate Spring NamespaceHandler for XML schema namespace
在开发项目过程中,将所用到的spring依赖包合并成一个,且先叫做Spring.jar好了。后面发现合并之后报错,而且即使spring依赖包没有合并,项目工程生成可运行jar后,也报同样的错,具体信息为org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: U...原创 2019-08-29 10:29:21 · 5281 阅读 · 0 评论 -
Spring+Mybatis连接多个数据库
1.需求开发先从需求或项目情况说起,项目用到几个简单的数据库和表,但是因为库和表简单,所以都配置在一个mapper里面。也即,一个mapper,需要对应多个数据库。数据库配置文件要放在最终生成的可执行jar同目录下的config文件里,跟其它设备的相关配置一起放在connection.properties文件中。2.开发与设计2.1 数据库配置信息屏蔽了ip信息jdbc.driv...原创 2019-08-29 09:49:39 · 5566 阅读 · 0 评论 -
could not write file:C:\Users\user\Desktop\KunMing40m\KunMing40m\.classpath
在开发昆明40米天线过程中,因为明确提出软件要运行于win7系统下,所以将原来在Ubuntu中开发的项目复制到win环境下开发。在将第三方包加入编译环境的时候,报错“could not write file:C:\Users\user\Desktop\KunMing40m\KunMing40m.classpath”,具体见下图。解决办法:查看项目文件属性是否为只读或者隐藏,若是,取消掉即可。...原创 2019-04-16 09:06:39 · 1606 阅读 · 0 评论 -
使用ant编译时build.xml样例
<?xml version="1.0"?><!-- name指定项目名称;basedir指定工作根目录,后面所有的目录都是在此基础上;当没有给定需要执行的target时,执行default中指定的target名称 --><project name="MysqlTest" basedir="." default="jar"> <!-- Defin...原创 2019-04-17 16:47:45 · 468 阅读 · 0 评论 -
eclipse中使用FatJar打包
eclipse中使用FatJar打包基本介绍1.安装1.1安装依赖包1.2 安装FatJar2 使用FatJar基本介绍FatJar是一款可以将java代码合并导出成jar文件的插件,我们可以使用fatjar进行jar文件封装。1.安装1.1安装依赖包目前FatJar版本只支持eclipse 3.4及之前的版本,当eclipse版本比3.4高时,首先需要进入Help -> Inst...原创 2019-04-15 10:39:14 · 2585 阅读 · 0 评论 -
Log4j的使用解析
Log4j的使用Log4j支持两种配置文件格式:【1】XML 格式文件【2】Java 特性文件 log4j.properties(键 = 值)其中使用log4j.properties文件作为配置文件是最常用方法。1、log4j.properties文件的相关配置1.1 rootLogger基本配置语法为:log4j.rootLogger = level , appenderNam...原创 2019-04-15 15:22:14 · 201 阅读 · 0 评论 -
JNLP的使用及碰到的一些问题
JNLP(Java Network Launching Protocol )是java提供的一种可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个java应用程序。Java桌面应用程序以JNLP 的方式发布,如果版本升级后,不需要再向所有用户发布版本,只需要更新服务器的版本,这就相当于让java应用程序有了web应用的优点。[以上内容摘自百度搜索,侵...原创 2019-04-23 13:45:11 · 4041 阅读 · 0 评论 -
Java 日常开发小纪
1. eclipse清除launch configuration清空 workspace目录下.metadata/.plugins/org.eclipse.debug.core/.launches中的内容。2. Java 读取 exel内容需要下载 jxl.jar。当出现Unable to read OLE stream错误时,需要将exel文件另存为exel97—2003工作簿,并将文件...原创 2019-04-23 14:17:00 · 138 阅读 · 0 评论 -
仿Eclipse tab 右键菜单
【项目开发】项目需要,仿Eclipse 的 tab 右键菜单,主要用于关闭tab。Eclipse(Version: Oxygen.3a Release (4.7.3a))右键菜单如下。创建菜单private JPopupMenu createPopupMenuForTab() { JPopupMenu popup = new JPopupMenu(); //创建菜单项 JMe...原创 2019-07-04 17:39:22 · 151 阅读 · 0 评论 -
phpmyadmin 下 mysql 的中文支持
基于phpmyamin操作mysql,可见搭建方法传动门之前项目中用到的都是英文,还没发现,这次自己鼓捣鼓捣,就发现了中文支持的问题。先从复现问题开始吧,都是一些简单的创建、插入等操作,但是为了能说清楚,以后能记得住,还是一点一点来吧。新建一个数据库,使用默认的排序方式。创建数据表添加字段,除了一些基本的设置和设置主键唯一且自增外,其余都默认。插入带中文的数据...原创 2019-07-05 18:33:22 · 426 阅读 · 0 评论 -
Spring/Mybatis从应用外部读取配置文件
一般配置文件(以db.properties为例)都放在classpath 下,然后这样调用<properties resource="db.properties" />。但是通常会有这样的需求,即,将配置文件放在电脑本地目录中,以便数据库变动时,方便修改配置文件。假设配置文件放在home目录下(Linux)的config文件夹中,通过<properties resource=...原创 2019-08-19 18:43:03 · 1032 阅读 · 0 评论 -
从本地文件读取射电源信息
2019-04-15在给昆明40米天线写天线控制界面的时候,因为不在现场,所以有一些因素无法得到解决。将原先放于数据库的射电源信息更改为从本地读取。射电源文件(radio.cat)放在工程目录下的config文件夹中,内容如下(每行从左到右依次为射电源名、赤经坐标、赤纬坐标、历元)orion 05:35:17.00 -05:23:28.00 J2000Omega 18:20:47....原创 2019-04-15 18:17:19 · 183 阅读 · 0 评论