Browse Month

九月 2015

java之动态代理

动态代理是指客户通过代理类来调用被代理类的方法,而且是在程序运行期间根据需求动态创建目标类的代理类对象;根据不同的接口

产生背景:静态代理虽然也能完成相应需求,但是代理类和被代理类都是编译期确定的,不利于程序扩展。而且每个代理类只能服为一个接口服务,那么开发过程中必然会产生过多的代理类。那么如果代理类能自动根据不同需求动态生成相应的代理,那么可扩展性就会好很多

java碎碎念2

1.同时使用struts2和filter监听器的时候,注意web.xml配置文件中监听器的顺序,要把struts的监听放在后面。否则自定义的那个监听应该会无效。这是由于struts2的底层机制导致的,而监听是根据xml中配置的顺序依次进行的。这里具体原理不做深究,出现问题就这样解决就行了!

2.通过myEclipse自动配置struts2功能的方法是:在项目上右击-选择myEclipse-选择Add struts capali…-选择相应的版本即可。

3.struts2属性驱动和模型驱动(实现ModelDriven<T>接口)。属性驱动和模型驱动可以自动获取表单中提交过来对应名称的值。而不用程序员通过servlet api进行手动获取,减少了代码量和错误拼写。【要注意属性一定要有get和set方法。模型要实例化。】

4.struts2的拦截器中有获取web资源的接口。如可以通过继承RequestAware接口,并实现其中的方法。Struts2或自动调用该方法,给Request对应的属性赋值。也就是注入

5.dao意思是Data Access Object 数据访问对象;

6.代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

(1).职责清晰
真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰。
(2).代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了中介的作用和保护了目标对象的作用。
(3).高扩展性
结构:
         一个是真正的你要访问的对象(目标类),一个是代理对象,真正对象与代理
对象实现同一个接口,先访问代理类再访问真正要访问的对象。

7、JDBC中的事务控制 JDBC API中的JDBC事务是通过Connection对象进行控制的。Connection对象提供了两种事务模式:自动提交模式和手工提交模式。系统默认为自动提交模式,即,对数据库进行操作的每一条记录,都被看作是一项事务。操作成功后,系统会自动提交,否则自动取消事务。 如果想对多个SQL进行统一的事务处理,就必须先取消自动提交模式,通过使用Connection 的setAutoCommit(false) 方法来取消自动提交事务。Connection类中还提供了如下其他控制事务的方法: 1)public boolean getAutoCommit():判断当前事务模式是否为自动提交,如果是则返回ture,否则返回false; 2)public void commit():提交事务; 3)public void rollback():回滚事务; 注意: Java中使用JDBC事务处理,一个JDBC不能跨越多个数据库而且需要判断当前使用的数据库是否支持事务。这时可以使用 DatabaseMedaData 的supportTranslations() 方法进行检查数据库是否支持事务处理,若返回 true 则说明支持事务处理,否则返回 false 。如使用MySQL 的事务功能,就要求MySQL里的表的类型为Innodb才支持事务控制处理,否则,在Java程序中做了 commit 或 rollback ,但数据库中是不生效的。

8.&#12288;可以代替一个汉字

MyEclipse配置struts.xml提示

打开MyEclipse的窗口,选择“Window”菜单下的“Preferences”选项.在搜索框内搜索“XML Catalog”点开

然后选择右边的“Add”按钮;

在打开的对话框中,在“location”中输入struts.xml文件所对应的dtd文件的所在位置,选择“File System”按钮,找到dtd文件的位置,在struts安装目录下struts-2.0.14-all\struts-2.0.14\src\core\src\main\resources,在这个路径下边有一个“struts-2.3.dtd”的文件,接下来在“Key type”的地方选择类型为“URI”,在“Key”的地方输入“http://struts.apache.org/dtds/struts-2.3.dtd”,这句话可以上该dtd文件DOCTYPE中找到.配置好之后重启MyEclipse!