软件设计原则-上

在程序设计领域, SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的五个基本原则。当这些原则被一起应用时,它们使得一个程序员开发一个容易进行软件维护和扩展的系统变得更加可能。

Read more
CentOS 安装 Oracle 11g

准备工作

下载并解压 Oracle 的软件包

  • 下载

  • oracle 下载地址

  • 本文安装的是 Oracle Database 11g Release 2,分别下载两个压缩包,可以通过 ftp 上传至服务器

    • linux.x64_11gR2_database_1of2.zip
    • linux.x64_11gR2_database_2of2.zip
  • 解压
    切换到 oracle 压缩包目录,进行解压操作

Read more
Spring 事务管理

数据库事务

事务就是一组原子性的 SQL 查询,或者说一个独立的工作单元。事务内的语句,要么全部执行成功,要么全部执行失败。

ACID

  • 原子性(Atomicity) : 整个事务中的所有操作要么全部提交成功,要么全部失败回滚。
  • 一致性(Consistency) : 数据库总是从一个一致性的状态转换到另一个一致性的状态。
  • 隔离性(Isolation) : 通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的。
  • 持久性(Durability) : 一旦事务提交,则其所做的修改就会永久保存到数据库中。
Read more
Spring 基于 AspectJ 的 AOP 开发

AspectJ

  • AspectJ 是一个面向切面的框架,Spring2.0以后新增了对 AspectJ 切点表达式的支持
  • @AspectJ 是 AspectJ 1.5 新增的功能,通过 JDK5 注解技术,允许直接在 Bean 类中定义切面
  • Spring 建议使用 AspectJ 方式来开发 AOP
  • 使用 AspectJ 需要 Spring AOP 和 AspectJ 相关的 jar 包
Read more
Spring AOP 入门篇

AOP

面向切面编程(AOP,Aspect Oriented Programming),AOP 采取横向抽取机制,取代了传统纵向继承体系重复性代码,用于解耦业务代码和公共服务代码(如日志,安全,事务等)。软件开发中经常提一个词,叫做”业务逻辑”或者”业务功能”,我们的代码主要就是实现某种特定的业务逻辑。但是我们往往不能专注于业务逻辑,比如我们写业务逻辑代码的同时,还要关注事务管理、缓存、日志等一系列通用功能,如果每个业务功能都要和这些通用功能混在一起,是一件非常低效和痛苦的事情。所以,为了将业务功能的关注点和通用化功能的关注点分离开来,就需要 AOP 技术了。通用功能的代码实现,对应的就是我们说的切面(Aspect), 简而言之,AOP就是一种在开发时将业务相关代码和业务无关的通用功能代码有机分离,而运行时又能够整合到一起形成完整功能的一整套技术

Read more