摘要:
spring对各种数据类型都提供了注入支持,像java基本类型,对象,集合等,这篇文章以代码实践为主,代码注释中会解释注入的细节测试类中包含了我们编程中最常见的数据结构package com.crazycoder2010.spring.injection;import java.util.List;import java.util.Map;import java.util.Properties;import java.util.Set;public class Student { private int age; private double weight; private String na 阅读全文
摘要:
spring依赖注入DISpring的依赖注入是一种将组件间依赖关系的创建和管理独立与程序以外的技术,举例说来,类A依赖于类B,通常的做法是先new 一个A对象,让后new 一个B对象,通过调用的方法将B对象注入,但是DI提供的机制可以将这种对象依赖关系的创建配置到文件中,让框架自动创建维护这个关系,而业务系统只需要关心自身业务核心思想java bean可以简单理解成那些只有简单的get,set方法的java类(还有其他方法),spring DI中管理的bean推荐这种形式,而面向接口编程也是spring推荐的方式,优势很显然--容易解耦,当需要替换新的实现类时只需要指向不同的实现就可以,但是 阅读全文
摘要:
经常在java代码中看到以下的注释($Rev: $Date),是不是很酷,怎么生成的呢?/** * A FilterChain is an object provided by the servlet container to the developer * giving a view into the invocation chain of a filtered request for a resource. Filters * use the FilterChain to invoke the next filter in the chain, or if the calling f... 阅读全文
摘要:
在当今高速发展的网络信息化时代,人们越来越重视信息的安全性问题,电子信息内容的安全已经成为倍受关注的问题,数字签名技术作为信息安全领域的一项重要技术,应用日益广泛。论述了数字签名的作用及实现方法技术,并介绍了当前数字签名的几种新技术,展望了这一领域的发展前景。 1数字签名的作用 该技术在具体工作时,首先发送方对信息施以数学变换,所得的信息与原信息唯一对应;在接收方进行逆变换,得到原始信息。只要数学变换方法优良,变换后的信息在传输中就具有很强的安全性,很难被破译、篡改。这一个过程称为加密,对应的反变换过程称为解密。数字签名技术利用散列函数保证了数据的完整性,同时结合了公钥加密与对称密钥加密的.. 阅读全文
摘要:
先看一下代理模式,这个应该是设计模式中最简单的一个了,类图代理模式最大的特点就是代理类和实际业务类实现同一个接口(或继承同一父类),代理对象持有一个实际对象的引用,外部调用时操作的是代理对象,而在代理对象的内部实现中又会去调用实际对象的操作Java动态代理其实内部也是通过Java反射机制来实现的,即已知的一个对象,然后在运行时动态调用其方法,这样在调用前后作一些相应的处理,这样说的比较笼统,举个简单的例子 比如我们在应用中有这样一个需求,在对某个类的一个方法的调用前和调用后都要做一下日志操作,一个普通的接口public interface AppService { public bo... 阅读全文
摘要:
1.什么是Java反射?Java的反射是指通过一个已知类名就可以获取到该类的内部信息,如类的成员变量,方法,构造函数,而且可以通过反射动态的调用该对象的方法,假设我们有这样一个类package com.crazycoder2010.reflect;public class Demo { private String strField; protected Integer intField; public double doubleField; float floatField; public static final Object DEMO = new Object(); public Dem 阅读全文
摘要:
重装了Ubuntu系统,但是问题也接踵而至,下载了个Eclipse,发现图标没有了,网上查询了一下,同病相连的还挺多,也有好心人发出了解决方案,如下1.打开配置编辑器 alt+f2输入gconf-editor2.找到/desktop/gnome/interface/menus_have_icons,选中3.重启一下Eclipse菜单出来了! 阅读全文
摘要:
最近把lightportal代码down下来一份,运行了一把,看的不多,但是被系统中一个小小的功能点吸引住了,感叹作者优秀的设计能力的同时,也在反思自己设计上的问题。 先来看下这个小小小小的东东是什么,做过项目的同学都知道,有些资源是需要在系统加载时就要被启动起来的,而且这些东西只需要启动一次,运行时程序只要直接读取就可以了,在j2ee中,一般都用Listener来实现(实现ServletContextListener)将初始化操作写在对应的contextInitialized方法中,大家常用的用于启动Spring容器的org.springframework.web.context.C... 阅读全文
摘要:
看了一些设计模式的书籍和文章,结合先前做过的一个真实的项目,对责任链模式作个小结 1.项目需求和背景 先前做过一个人力资源管理的产品,产品中有部分功能就是要实现员工请假审批流程,员工提交请假申请比较简单,无非就是填写一些请假单的基本信息,如请假的起至日期,请假类型(年假,病假),请假的天数,但是系统中的审批流程却比较纠结,审批的流程分为业务小组长审批->部门经理审批->副总裁审批->总裁审批->流程结束,就这样审批一层一层的传递下去,小组长只能审核1天以内的请假,部门经理能审批3天以下的请假,副总裁能审批5天以下的请假,总裁可以审批所有的请假条 2.BadPractic 阅读全文
摘要:
首先时类中的的不同类型的数据分配例如:class a{ int a1; double a2;}类的声明时不分配内存,当生成对象才分给内存。一般int为4个字节,double为8个字节,但这里如果定义,开辟内存,系统会给16个字节空间,这里存在一个虚拟的问题,就是int要实现和double内存的对齐。又如:int * p = new int(5);这里p是一个指针,此时系统将p放在栈中,在堆中开辟一个5*int的空间,此时p指向这个空间。 阅读全文