- 浏览: 22341 次
- 性别:
- 来自: 北京
最新评论
文章列表
Spring事件传播
- 博客分类:
- spring
ApplicationContext基于Observer模式(java.util包中有对应实现),提供了针对Bean的事件传播功能。通过Application. publishEvent方法,我们可以将事件通知系统内所有的ApplicationListener。
示例代码:
public class LoginAction implements ApplicationContextAware {
private ApplicationContext applicationContext;
public void setApplicationContex ...
Spring资源访问
- 博客分类:
- spring
Resource rs = ctx.getResource("classpath:config.properties");
File file = rs.getFile();
getResource方法的参数为一个资源访问地址,如:
file:C:/config.properties
/config.properties
classpath:config.properties
Spring源码学习参考
- 博客分类:
- spring
Spring源代码解析(一):IOC容器:http://www.iteye.com/topic/86339 Spring源代码解析(二):IoC容器在Web容器中的启动:http://www.iteye.com/topic/86594 Spring源代码解析(三):Spring JDBC:http://www.iteye.com/topic/87034 Spring源代码解析(四):Spring MVC:http://www.iteye.com/topic/87692 Spring源代码解析(五):Spring AOP获取Proxy:http://www.iteye.com/topic/8818 ...
Spring国际化支持
- 博客分类:
- spring
Ø 实现接口:目前Spring中提供了两个MessageSource接口的实现,即ResourceBundleMessageSource和
ReloadableResourceBundleMessageSource,后者提供了无需重启即可重新加载配置信息的特性;
Ø 配置信息如下:Bean ID必须为messageSource
<bean
Spring封装机制
- 博客分类:
- spring
BeanWrapper:抽象接口,功能很简单,提供一个设置JavaBean属性的通用方法,其实现类为BeanWrapperImpl(BeanUtils类提供了大量针对Bean的辅助函数);
BeanFactory类:是针对多个Bean的管理容器,根据给定的配置文件,BeanFactory从中读取类名、属性名/值,然后通过Reflection机制进行Bean加载和属性设定。
不采用任何框架,用servlet+jsp 一个xml配置文件,配置所有访问信息,服务器启动时加载:
<handler name="user" pluginClass="sxzf.perfect.plugins.base.UserLoginPlugin">
<!-- 用户登录:会员、系统用户先后尝试登录-->
<request name="superLogin" success="/sxzf/manage/layout/main.jsp" fail="/login.j ...
set @stmt=concat('select * from jargon where name like \'%',ucase(t),'%\' or memo like \'%',ucase(t),'%\' order by id desc limit ',snum,',',size);
prepare stmt from @stmt;
execute stmt;
DEALLOCATE PREPARE stmt;
select count(*) from jargon where name like CONCAT('%',ucase(t),'%') or memo ...
Document doc=SemanticPluginItems.loadXmlFile("D:\\个人重要资料(勿删)\\Administrator\\桌面\\11.xml");
Element root=doc.getRootElement();
List<Element> l=root.content();//获取根节点下元素列表
List<Element> l2=doc.selectNodes("//child");//获取元素名为child的节点列表
Element e = DocumentHe ...
css实现:
<style type="text/css">
html {
filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
}
/*
或者
html *{filter:gray;}
或者
body *{filter:gray;}
*/
</style>
js实现:
<script type="text/javascript">
parent.document.ge ...
JUnit的各种断言
JUnit提供了一些辅助函数,用于帮助你确定某个被测试函数是否工作正常。通常而言,我们把所有这些函数统称为断言。断言是单元测试最基本的组成部分。
[String message], []表示可选,message为自定义错误信息
1. assertEquals([String message], expected,actual)
比较两个基本类型或对象是否相等(expected和actual是原始类型数值(primitive value)或者必须为实现比较而具有equal方法);
2.assertFalse([String message],boolean ...
用实例说话:对HelleWord进行测试
package com.cathay.saga;
public class HelleWord {
public String sayHello(){
return "Hello World";
}
public String sayHello2(){
return "Hello World2";
}
}
junit测试代码:
package com.cathay.saga;
import junit.framework.TestCase;
import junit.textui. ...
运用pfc时,如果我们使用配置来执行一些数据库操作,我们要注意配置文件config.xml中mapping、reqfields及tables下表文件中字段三者的关系。三者相互对应,缺一不可。
不管我们学习任何jar包,我们必须把其使用原理、执行一个操作的流程搞清楚,这样才能更好的解决问题。
元数据这个概念,是随着企业使用的数据种类越来越丰富而发展起来的,简单的说是关于数据的数据。比如企业里面有客户的数据,员工的数据,销售的数据,财务的数据等等,这些类型的数据里面又有更细节的数据,那么元数据就是让大家能一目了然的了解这些数据的概念,知道这些数据的逻辑结构等。
元数据又可以分为技术元数据和商业元数据。商业公司的需求离不开商业语言,我们可以把商业语言描述的内容和技术层面的高层次逻辑设计的内容划分到商业元数据,而技术上的物理实现内容划分为技术元数据。
商业元数据包括项目的需求分析,产品经理的需求文档等。技术元数据在数据仓库里面比较系统化,一套完善的数据仓库解决方案一般来说都是以元数据为 ...
服务器启动时,加载配置文件,把相关的信息放在静态变量(假设静态变量为list)中。
URL=*1.req?action=*3&req=*2
*1自定义,与请求无关
*2对应config.xml中handler
*3对应*2(即config.xml中handler)中的action
一个req请求的具体请求过程:
首先判断*2在list中是否存在,即*2是否在config.xml中
其次调用实现接口Authorize的类的init()、canAccess()方法(该实现类在web.xml中配置),true继续执行,false转到错误页面/defaultError.jsp,显示错误信息 ...