1,领域对象为什么要实现Serializable接口
一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才是可序列化的。因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。
什么情况下需要序列化
a)当你想把的内存中的对象写入到硬盘的时候;
b)当你想用套接字在网络上传送对象的时候;
c)当你想通过RMI传输对象的时候;
再稍微解释一下:a)比如说你的内存不够用了,那计算机就要将内存里面的一部分对象暂时的保存到硬盘中,等到要用的时候再读入到内存中,硬盘的那部分存储空间就是所谓的虚拟内存。在比如过你要将某个特定的对象保存到文件中,我隔几天在把它拿出来用,那么这时候就要实现Serializable接口;
b)在进行java的Socket编程的时候,你有时候可能要传输某一类的对象,那么也就要实现Serializable接口;最常见的你传输一个字符串,它是JDK里面的类,也实现了Serializable接口,所以可以在网络上传输。
c)如果要通过远程的方法调用(RMI)去调用一个远程对象的方法,如在计算机A中调用另一台计算机B的对象的方法,那么你需要通过JNDI服务获取计算机B目标对象的引用,将对象从B传送到A,就需要实现序列化接口。
2,final在java中的作用
将方法声明为final,那就说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。当你将final用于类身上时,你就需要仔细考虑,因为一个final类是无法被任何人继承的,那也就意味着此类在一个继承树中是一个叶子类,并且此类的设计已被认为很完美而不需要进行修改或扩展。对于final类中的成员,你可以定义其为final,也可以不是final。而对于方法,由于所属类为final的关系,自然也就成了final型的。
final是指这个变量不可再次被赋值,而变量所代表的对象,其具有的任何属性都可以变化。
3,在spring中通过@Repository来注解定义DAO,使用@Autowired来注入bean,通过@Service注解服务层的bean,通过@Controller注解为一个Controller
4,在spring封装了对数据库操作的模板,通过注入JdbcTemplate可以直接调用模板进行操作,代码如下
5,通过applicationContext.xml对spring进行配置(将注解转化为bean,并注入,定义数据源,定义jdbc模板)
6,使用Junit4进行单元测试
1, 首先将junit-4.x.jar导入,建立要测试的类(文件夹目录与代码类一致),
2, 在测试类上加入注解
@RunWith(SpringJUnit4ClassRunner.class)//基于junit4的Spring测试框架
@ContextConfiguration(locations={“/applicationContext.xml”})//启动Spring容器
3, 将要测试的类通过@Autowired注入进来
4, 将测试方法通过@Test标注为测试方法
7,通过配置web.xml来配置Spring mvc框架
8,在控制类中
SpringMVC配置器,相当于struts中的struts.xml