1. 循环list中的所有元素然后删除重复
public static List removeDuplicate(List list) {
for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {
for ( int j = list.size() - 1 ; j > i; j -- ) {
if (list.get(j).equals(list.get(i))) {
list.remove(j);
}
}
}
return list;
}
2. 通过HashSet踢除重复元素
public static List removeDuplicate(List list) {
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
return list;
}
在groovy中当然也可以使用上面的两种方法, 但groovy自己提供了unique方法来去除重复数据
def list = [1, 2, 3, 2, 4, 1, 5]
list.unique() // [1, 2, 3, 4, 5] ......
我今天学习了徐老师讲的Spring知识,我做了简单的笔记:
反向控制(IOC)
:
bean工厂:最简单的容器,提供了基础的依赖注入支持。创建各种类型的Bean.
应用上下文:建立在bean工厂基础之上,提供系统架构服务。
ClassPathXmlApplicationContext:从类路径中加载。
FileSystemXmlApplicationContext:从文件系统加载。
XmlWebApplicationContext:从web系统中加载。
应用上下文与bean
工厂的区别:
bean工厂延迟加载所有bean,直到getBean()方法被调用。
应用上下文会在启动后预载入所有单例bean.这样可确保应用不需要等待他们被创建。
bean
的生命周期
bean被载入到容器中时,他的生命周期就开始了。bean工厂在一个bean可以使用前完成很多工作:
1.容器寻找bean的定义信息并实例化。
2.使用依赖注入,spring按bean定义信息配置bean的所有属性。
3.若bean实现了BeanNameAware接口,工厂调用Bean的setBeanName
()方法传递bean的ID。
4.若bean实现了BeanFactoryAware接口,工厂调用setBeanFactory()
方法传入工厂自身。
5.若BeanPostProcessor和be ......
我今天学习了毛老师讲的
svn cvs
知识,我做了简单的笔记:
版本控制
: 版本控制(Revision
control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。此外,版本控制也是一种软体工程技巧,借此能在软体开发的过程中,确保由不同人所编辑的同一文件档案都能得以同步。
Subversion
:是一种开放源码的全新版本控制系统。是新一代的版本控制工具,由于其优于CVS的一些特点,得到了越来越多人的关注和使用,支持可在本地访问或通过网络访问的数据库和文件系统存储库。不但提供了常见的比较、修补、标记、提交、回复和分支等功能,而且Subversion
还增加了追踪移动和删除的能力。此外,它支持非 ASCII 文本和二进制数据,所有这一切都使 Subversion
不仅对传统的编程任务非常有用,同时也适于 Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域。
SVN
工作的的基本思路是这样的:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序。由仓库管理员统一管理这些源程序.这样,就好象只有一个人在
修改文件一样.避免了冲突.每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。用户做的任何 ......
今天,我们开始了佟老师的教育办公系统的旅程:我做了简单的笔记:
1. 搭建 SSH 环境
1). 加入 Struts:
①. 加入 jar 包:
struts-1.3.8\apps\struts-blank-1.3.8\WEB-INF\lib\*.jar,
struts-1.3.8\lib\struts-extras-1.3.8.jar
②. 加入配置文件: 注意: 不能直接复制
struts-1.3.8\apps\struts-blank-1.3.8\WEB-INF\web.xml 文件到 WEB-INF 下,
因为这样会导致 el 不可用
2). 加入 Hibernate:
①. 加入 jar 包: hibernate-distribution-3.3.2.GA\lib\required\*.jar,
hibernate-distribution-3.3.2.GA\hibernate3.jar,
额外添加 slf4j- ......
今天继续佟老师的教育办公系统的旅程:
1. 员工录入的服务器端的简单验证:
1). 使用 struts 的 validator 框架
2). 验证规则同浏览器端的 jQuery 的 validator 验证.
3). 以 email 字段为例, 验证规则为非空, 且符合 email 格式
2. 员工录入的服务器端的复杂验证: 验证登录名是否在数据库中已经存在
1). 采取在 Action 的对应方法中使用 ActionMessages 的方法.
2). 可以采取 struts 的声明式异常吗?
3. 员工的录入操作
1). PY_NAME 需要根基 employee_name 字段进行动态生成, 需要额外的工具包:
pinyin4j
2). 可以通过下边的方式为 Employee 对象的 position, dept 属性赋值
Position position = new Position(employee.getPositionid());
&nbs ......
今天继续教育办公系统的旅程,今天主要讲的是权限模块:
1. 集成 spring-security 框架
1). 加入 spring-security 的两个 jar 包
2). 在 web.xml 文件中加入加入 spring-security 框架的过滤器
3). 新建 applicationContext-security.xml 配置文件,并且把 security 作为默认的命名空间,
并将其导入到 applicationContext.xml 中
4). 设计领域模型:
Authority -- 权限
Resource -- 资源
Role -- 角色
Employee -- 添加 Set<Role> roleSet
属性
& ......