- 博客(36)
- 收藏
- 关注
原创 将基于Spring的UnitTest集成到Maven中
在进行persistence layer的开发时,我们总是要写写UnitTest来验证我们提供给上一层的API是经过验证了的。通常我们需要单独的为UnitTest编写一份独立的Spring ApplicationContext配置文件,基于Maven约定大于配置的实践,我们将Spring ApplicationContext配置文件放在项目的src/test/resources下,Test
2013-04-06 15:50:40 1444
原创 Java的动态代理实现
子: package com.demo.dynamicproxy; public interface IHello { public void sayHello() ; } package com.demo.dynamicproxy; public class HelloProxy implements IHello { private IHello speaker = new HelloSpeaker(); public HelloPro
2012-08-30 21:54:36 79
Audit Trail Framwork实现系列-需求
ame, 如果一个用户 A 于今天2 点将一个Supplier sp1 的Name 从a 改成b, 那么就要记下来该用户A 在今天2 点将Supplier sp1 的Name 属性从 a 改成了b 。 业务中将这些修改称作Amend Log ,针对某个业务对象,可查看其Amend Logs ,如对某个Supplier ,其展示给用户的显示模式如下: Action Data Key From
2012-08-25 21:27:25 108
Spring BeanFactory学习
方法,可以取得IoC的容器管理的Bean。我们所熟悉的ApplicationContext也是实现了该接口。 下面是BeanFactory接口的源代码: public interface BeanFactory { String FACTORY_BEAN_PREFIX = "&"; Object getBean(String name) throws BeansException; <T> T getBe
2012-08-23 22:32:08 75
原创 自定义的Native SQL Query返回强类型的Bean
需要显示地将其转化成强类型的Java Bean类,如何减少这些繁琐的转换呢? 解决方案: 将原始数据集的每条记录根据一定的规则将其自动映射成Java Bean 对象,比如为Query 返回的列名在Java Bean类中查找匹配的字段(忽略_,空格,大小写,等), 使用反射将该列的值赋值到Java Bean的字段中。 Spring 中为我们提供了一个现成的类用来实现此功能的类-BeanPropertyRowMapper,该类就是使用反射依据列名在Java Bean类中查找匹配的属性,如下是其
2012-08-22 15:00:14 324
.Net应用程序的运行过程
CorDllMain指令(根据是exe文件还是dll文件不同)。若是非托管程序,就进入到入口函数了,若是托管程序就会跳入到另一个函数中。这个函数在一个叫做MSCorEE.dll的动态链接库文件中,当安装了.net框架时就会被复制在系统目录下。系统会根据托管程序PE文件中的信息找到这个DLL,然后通过MSCorEE.dll的PE文件信息找到这个_CorExeMain函数的入口地址,然后修改刚才的JMP指令要跳转的地址,从而将控制跳转到了_CorExeMain这个函数里面去。然后,在这个函数里面,CLR被启动了
2010-08-14 22:56:07 149
Database Change Notification
iated with the queries. The notifications are published by the database when the DML or DDL transaction commits. Once use this feature for change notification of column level, and found that once the amount of updated records is more than a small v
2010-08-06 14:21:19 183
第三步 确定将如何分布层次和组件(完)
在Web应用系统中,如果你的表示组件以同步方式访问你的业务组件,考虑将业务层和表示层的组件部署到同一个物理级上去以获得最大的性能和简易的操作管理,除非安全限制两层之间需要有一个可信边界。 在胖客户端应用系统中,UI处理在客户端,出于安全和简易的操作管理方面的考虑,你可能会倾向于将业务组件部署到一个独立的物理级上。 将业务实体部署到与使用这些业务实体的代码相同的物理级上。这将意味着可能将他们部署到多个地方;将数据实体副本部署到其中的程序逻辑使用了或引用了这些数据实体的表示级上或数据级上。将服务
2010-07-15 22:06:42 78
原创 Types at Runtime
a handler to an opaque data structure that represents the object’s type. Every instance of a given type will have the same type handle value in its object header. To support down-casts and side-casts, CIL defines two opcodes: isinst and castclass. Both op
2010-06-28 17:11:16 71
原创 Types and Base Types
other hand, disallows direct instantiation of the type and makes it useful only as a base type. The policy for dealing with collisions between reused method names and reused field names might be different. The CLR supports two basic policies to use when
2010-06-25 10:38:07 64
原创 Type Fundamentals
ype is first load. The CLR will allocate memory for non-static(instance) fields each time it allocates an instance of the type. By default, the exact memory layout of a type is opaque. The CLR supports two ways of declaring fields whose value is constant.
2010-06-25 10:37:15 75
原创 Types and Base Types
pe. The policy for dealing with collisions when method names or member names are reused is somewhat different. In C#, member names collisions use hide-by-name while method names collisions use hide-by signature. When the CLR allocate a new object, it cal
2010-06-05 12:17:08 65
Types and Interfaces
rfaces as partitioning the set of all possible objects into subsets. Which subsets an object belongs to depends on which interfaces the object’s type has declared compatibility with. The CLR allows the concrete type to declare the methods interface forced
2010-06-05 11:01:51 71
Types and Initialization
at most one type initializer, and it must take no parameters and return no value. It is called automatically by CLR. The following shows a type initializer in C#: namespace EssentialNet { public class Customer { public static string na
2010-06-05 10:19:58 50
原创 Architectural Guidance for Composite Smart Clients
Use Case Analysis Overall WorkItem design Use Case refinement Final WorkItems design and packaging WorkItem implementation and tests Indentifying WorkItems RootWorkItem acts as central entry point for global se
2010-06-04 11:26:29 64
Run out of Temporary tablspace
ises at last which causes the application crashed. Later restart application server, the used space releases immediately, but the used space increases once application is online. The application restarted at 8:00PM 2010/02/01, the application crashed afte
2010-05-13 17:38:01 92
基于逻辑分层的设计
设计成为基于软件组件来分组的逻辑组集。这些逻辑组就叫做层。分层有助于区分不同的由这些软件组件提供的功能的类型,从而使得做出一个能够具有高可复用这些软件组件的设计变得更为简单。每一个逻辑层可包含多个不同的组件类型,且具有相同类型的组件可再被划分为一个个子层,每个子层都展现着特定功能的类型。 通过标识出存在于大多数系统中的通用组件的类型,你可以构造出应用程序或服务的分层映射,然后使用此映射来作为你设计的蓝图。将应用系统分成具有特定角色和功能的层有助于最大化地增加代码的可维护性、应用系统以不同方式部署时优化应用
2010-05-11 18:08:53 113
Convert Date with Time Zone
p TIMESTAMP, pv_from_tz VARCHAR2, pv_to_tz VARCHAR2) RETURN TIMESTAMP WITH TIME ZONE AS BEGIN IF pv_timestamp IS NULL THEN RETURN NULL; END IF;
2010-05-11 15:31:41 75
String Split
e TABLE SQL function and PL/SQL function to do this. Example: CREATE OR REPLACE TYPE GTYP_STR_TABLE IS TABLE OF VARCHAR2 (32767); / CREATE OR REPLACE FUNCTION split(pv_list VARCHAR2, pv_del VARCHAR2 := ',') RETURN gtyp_str_table PIPELINED IS
2010-05-10 16:52:42 72
String Aggregation
tic Function in 11g Release 2 The LISTAGG analytic function was introduced in Oracle 11g Release 2, making it very easy to aggregate strings. Example: SELECT type, LISTAGG(oid, ',') FROM rcp_company group by type; WM_CONCAT function
2010-05-07 19:14:57 75
Migrate DB data using expdp/impdp
t db? Here we can use network_link feature of expdp/impdp. There are two ways to implement the migration. Note that we must have privileges to read/write a directory and privilege of create database link on target database. data migration directly fr
2010-05-07 19:08:36 46
原创 How to deallocate unused spaces
ministrator (DBA) can deallocate unused extents using the following SQL syntax: ALTER TABLE table_name DEALLOCATE UNUSED;
2010-05-06 17:55:20 79
the meaning of PCTFREE, PCTUSED
SED Parameter The PCTUSED parameter sets the minimum percentage of a block that can be used for row data plus overhead before new rows are added to the block. Rows are inserted up to 80% only, Because PCTFREE specifies that20% of the block must remain
2010-05-05 16:02:11 53
How to recovery data /table
_delete. Once you get the data before delete operation, how to recovery the data is needless to expatiate. 2. Flashback dropped table: Flashback table table_name to before drop;
2010-05-05 10:59:43 66
软件架构设计
er to implement it. I will try my best to upload high quality artices and knowledge tips at least one per workday. The artices and knowledge tips include Software Architecture/Design, Practice and Pattern, .Net programming, Toplink, Oracle database and so
2010-05-03 00:13:19 70
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人