Posts

Java 注解原理解析
前言:在学习Spring的过程中,或者其他的一些框架,都会接触到许多方便又有趣的注解,这些注解不仅没有很强的侵入性,而且让我们感受到了框架的曼妙。相对于XML的极大松耦合来说,注解处于一个中庸之道,所以了解其内部原理是有必要的。 注解的定义 Annontation是Java5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。Annontation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。 Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。 Read more

char,const char,string,memset等用法
前言:之前用到一些C++的库时,会涉及到一些数据类型的转换问题,由于一些不常用导致不是很熟悉,经过此次教训后,想要记录下来,下次翻找就会方便点。 char*,const char*和string 三者转换 const char* 转 string。直接赋值即可,string有较大的包容性,不像const char*这么严格: Read more

JAX-RS相关的RESTful
Java EE 6 引入了对 JSR-311 的支持。JSR-311(JAX-RS:Java API for RESTful Web Services)旨在定义一个统一的规范,使得 Java 程序员可以使用一套固定的接口来开发 REST 应用,避免了依赖于第三方框架。同时,JAX-RS 使用 POJO 编程模型和基于标注的配置,并集成了 JAXB,从而可以有效缩短 REST 应用的开发周期。 Read more

Jersey 的RESTful API
REST 是英文 Representational State Transfer 的缩写,有中文翻译为“表述性状态传输”。REST 这个术语是由 Roy Fielding 在他的博士论文 《 Architectural Styles and the Design of Network-based Software Architectures 》中提出的。REST 并非标准,而是一种开发 Web 应用的架构风格,可以将其理解为一种设计模式。REST 基于 HTTP,URI,以及 XML 这些现有的广泛流行的协议和标准,伴随着 REST,HTTP 协议得到了更加正确的使用。相较于基于 SOAP 和 WSDL 的 Web 服务,REST 模式提供了更为简洁的实现方案。目前,越来越多的 Web 服务开始采用 REST 风格设计和实现,真实世界中比较著名的 REST 服务包括:Google AJAX 搜索 API、Amazon Simple Storage Service (Amazon S3)等。 Read more

自动化push代码到GitHub工具
前言:因为每次写完代码,要push到GitHub上时都要进行繁琐的几个操作,无外乎git add .,git pull,git commit,git push,等这些重复工作,但是作为一个拥有者懒惰这一优点的伟大的程序员,是坚决不能忍受这个问题的。 Python开发一个自动push脚本 首先拿我的个人博客来作为需求来开发,我的博客是基于Hugo框架的,所以只要简单的几个操作就可以了,环境条件是git-bash或者CMD命令都可以,所以我得调用windows的命令行工具 Read more

C++连接SQLite3,进行增删改查
前言:这两天在公司要开发一些自动化工具,其中涉及到SQLite的访问,SQLite的文件是后缀名为.db的文件,一开始我还不了解这个数据库,直接把这些文件导入到MySQL里进行操作;后来同事提醒我这是SQLite,如果转为MySQL的话在生产环境中可能没配有MySQL的环境就回有点麻烦,我赶紧把它改了过来,不然就白费力气啦。 SQLite3 SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,不需要在系统中配置。就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件(. Read more

用TinyXML2解析XML
前言:上一篇有讲到用Python的一个库ElementTree解析XML文件,方便是方便,一开始也是贪图其方便所以采用这个方案的,但是写完之后出现一个问题,原XML文件的节点属性里嵌有一个VB脚本,VB脚本语法是由严格缩进规约的,解析完后发现VB脚本格式全乱,导致VB失效,这样这个XML文件就相当于坏了,因为只能另寻他法,但是发现这个Python很难解决节点属性格式的问题,因此只能考虑二进制读写文件。最后采用了TinyXML2这个C++的库。 TinyXML2 这个C++库是比较成熟的解析XML文件的库,他的实现是可以二进制读写文件的,所以极为满足我的需求 这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。 DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系。 在GitHub上clone这个库到本地仓库上来,地址为:https://github.com/leethomason/tinyxml2.git Read more

ElementTree解析XML文件
前言:Python对于解析数据有着很完善的各种库和社区,比如处理JSON、CSV、HTML、XML、Excel等等格式的数据,今天用ElementTree修改了XML,故记录一下。 先放样例XML <props> <prop class="CODEditProperties" id="50"/> <prop class="CODEditProperties" id="40" ccontain="1"/> <prop class="CODFillProperties" id="500" clr="0"> <matchanimatestyle/> <matchanimateflash/> </prop> </props> <children> <child class="CODRectComponent" pts="0,0;86,0;86,229;0,229;" type="Rectangle" name="Rectangle751" id="182308005" rect="0,0,87,76"> <xform m00="1. Read more