时光如水

我心跳动
posts - 6, comments - 10, trackbacks - 0, articles - 4
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2006年5月16日

AOP配置
1. 创建增强advice
2. 用ProxyFactoryBean配置增强advice或增强器advisor(增强和切入点组合)


大多数Spring自带的切入点都有一个对应的PointcutAdvisor,这样方便在一个地方定义切入点和通知
                           NameMatchMethodPointcut-->NameMatchMethodPointcutAdvisor增强器
       静态切入点    RegexMethodPointcut-->RegexMethodPointcutAdvisor增强器
切入点  
       动态切入点    ControlFlowPointcut


AOP常见例子:
Spring配置文件
<bean name="/searchSubmit" class="ca.nexcel.books.actions.SearchSubmit">
 <property name="bookService">
  <ref bean="bookService"/>
 </property>
</bean>
<bean name="logger" class="ca.nexcel.books.interceptors.LoggingInterceptor"/> |(1)
<!-- AutoProxies -->
<bean name="loggingAutoProxy" class="org.springframework.aop.framework.autoproxy.
 BeanNameAutoProxyCreator"> |(2)
     <property name="beanNames">
 <value>/searchSubmit</valuesgt; |(3)
     </property>
     <property name="interceptorNames">
 <list>
     <value>logger</value> |(4)
 </list>
     </property>
</bean>
其中(1)注册拦截器
      (2)创建了一个 bean名称自动代理,它描述如何应用拦截器。
      (3)将Struts动作注册为将被拦截的bean。如果您想要拦截其他的Struts 动作,则只需要在 "beanNames" 下面创建附加的<value>标记
      (4)执行的拦截器bean的名称

posted @ 2006-05-16 16:41 qiqijava 阅读(542) | 评论 (0)编辑 收藏

 

两个主要容器

BeanFactory                   XmlBeanFactory                               

                                    FileSystemXmlApplicationContext

ApplicationContext           ClassPathXmlApplicationContext

                                    XmlWebApplicationContext

区别:

BeanFactory      延迟载入所有Bean,直到getBean()被调用才创建Bean

ApplicationContext 启动后加载所有Bean

 

Bean生命周期:BeanFactory容器

 

实例化

  设置属性

    调用BeanNameAwaresetBeanName()方法

       调用BeanFactoryAwaresetBeanFactory()方法

          调用ApplicationContextAwaresetApplicationContext()方法(如果容器为ApplicationContext)

          调用BeanPostProcessor的预初始化方法

             调用InitializingBeanafterPropertiesSet()方法

             调用定制的初始化方法(init-method参数配置的方法)

          调用BeanPostProcessor的后初始化方法

至此Bean可以被使用

 

调用DisposableBeandestroy()方法

调用定制的销毁方法(destroy-method参数配置的方法)

至此Bean被销毁

 

BeanFactoryPostProcessor例子

  1. PropertyPlaceholderConfigurer

    从多个外部属性文件中载入属性,并使用这些属性替换占位符变量

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

    <property name="locations">

        <list>

 <value>WEB-INF/mail.properties</value>

 <value>WEB-INF/jdbc.properties</value>

        </list>

     </property>

</bean>

  1. CustomEditorConfigurer

    注册定制的java.bean.PropertyEditor实现,用它把装配的属性转化为其他类型,可使用String设置给一个非String属性

posted @ 2006-05-16 16:38 qiqijava 阅读(518) | 评论 (0)编辑 收藏

便利的实现

模板方法:

      将流程中的可变部的具体实现委托给一个接口,这个接口的不同实现定义了可变部分的具体实现

Spring 把数据访问流程中的固定部分与可变部分分开,分别映射成两个类:模板 Template ,回调 Callback ,模板管理流程的固定部分,回调处填写实现细节

 

DAO 模板

 

1. 准备资源

2. 启动事务

5. 提交 / 回滚事务

6. 关闭资源和处理异常

DAO 回调

 

 

3. 在事务中执行

4. 返回数据

DAO 支持类

 

     继承

关联

 

 

posted @ 2006-05-16 16:36 qiqijava 阅读(651) | 评论 (0)编辑 收藏

2006年2月27日

解决这类问题的方法很多,今天在此简单的终结一下,把常碰到的问题解决方法记下来!
1,   MySQL5.0中文问题解决方案如下: 
    1、在dos环境下,用mysql --default-character-set=gbk -u root -p 这句话进入mysql~~ 
    2、建数据库、表,如下: 
        create database admin; 
        use admin; 
        CREATE TABLE admin ( 
        admin_name char(20) NOT NULL, 
        admin_password char(20) NOT NULL 
        ) TYPE=MyISAM, default character set gbk;

2,  JDBC的设置问题:(这里主要讲的是mysql-connector-java-3.1.8这个JDBC驱动程序而言
    这只是一个压缩包,并不需要安装,只要将其解压,使用的是文件夹mysql-connector-java-3.1.8里的文件:mysql-connector-java-3.1.8-bin.jar 
     需要配置环境变量的是JDBC驱动.在配置前先要把刚才说到的mysql-connector-java-3.1.8-bin.jar放到本地硬盘某处(我放的地方:E:\JAVA\MySQLJDBC),然后根据你放的地方,配置classpath,我的配置是这样的:
.;E:\Java\j2se5.0\lib\tools.jar; E:\Java\j2se5.0\lib\mysql-connector-java-3.1.8-bin-g.jar; E:\JAVA\MySQLJDBC\mysql-connector-java-3.1.8-bin.jar

    配置这个的目的是让你的java应用程序找到连接mysql的驱动. 
      配置完环境变量后还有很重要一步就是为JSP连接数据库配置驱动,这个其实很简单,就是把mysql-connector-java-3.1.8-bin.jar拷到某些文件夹里就行了,我在网上看了很多资料问了很多人,各种说法都有,我综合了一下,为了保险,我都全做了,呵呵,反正就是拷一个400K的文件而已,现列出要把mysql-connector-java-3.1.8-bin.jar拷进去的文件夹,如下:
E:\Java\Tomcat5.0\common\lib
E:\Java\Tomcat5.0\shared\lib 
     一般情况下只要考到Tomcat5.0上面的两个问题夹里面就可以解决问题了,如果需要,也可以将mysql-connector-java-3.1.8-bin.jar这个驱动文件拷贝到你的WEB站点的  …\WEB-INF\lib 目录下面。

3,  Eclipse中数据库插件中操作数据库时的中文编码问题:
当在Eclipse中装上来你所喜欢的数据库插件的时候,都会出现在你查询某一个数据库之后出现记录中的汉字乱码。解决方法很简单,只要在你建立数据库连接的时候把URL设置成下面这个样子就可以了:
           URL= jdbc:mysql://localhost:3306/?useUnicode=true&characterEncoding=GBK

4,   JSP网页编辑中个人经验:在经过很多的次调试之后,发现在装了myeclipse之后,有这么条小巧:
在用myeclipse编写HTML文件时charset=GBK设置成这个样子,那么在浏览器中浏览时就不会出现乱码;
而在用myeclipse编辑JSP文件时,<%@ page contentType="text/html;charset=GB2312" %>设置成这样子,且这条语句必须是整个JSP文件的第一条语句,就可以避免JSP文件在浏览器中显示时出现乱码;    对于如果在JSP网页中要从HTML页面中接收数据,那么在JSP中的接收语句的汉字编码应与数据来源的HTML的汉字编码相同;例如中的HTML的汉字编码为charset=GBK那么在JSP中的接收语句就应该这样设置:request.setCharacterEncoding("GBK");如果还要将接受的数据插入到数据库中(以插入MySQL5.0数据库为例),那么在插入数据库时的汉字编码也应与HTML文件中的汉字编码相同,我的设置如下:con= DriverManager.getConnection("jdbc:mysql://localhost:3306/sample_db?user=dazern&password=5201314&useUnicode=true&characterEncoding=GBK");这样设置后数据库中的数据才不会乱码.

    以上经验都是在myeclipse3.8.3+Tomcat5.0.28中测试过,没有错误!在此仅供大家借鉴,具体情况还得具体分析!

posted @ 2006-02-27 09:27 qiqijava 阅读(737) | 评论 (0)编辑 收藏

2006年2月15日

 1. java2s  http://www.java2s.com/
   这个网站非常好,分成三大类,分别是ExampleProducts Articles,每个大类下又分别设许多小类,还有搜索功能,这样查找起来非常方便。。比如,如果要学习SWT/JFace,只要把Example下的SWT JFace Eclipse 研究一下也就可以了。另外,这个网站还有JavaScript DHTMLC# / C SharpC / ANSI-CSQL / MySQL等类。总之,非常好。
   这是O'Reily旗下的,除了Java之外,还有Ruby、Python。
 
  3. Java学习源代码检索系统  http://www.chinaitlab.com/www/school/codesearch/index.html
   难得看见国产的,好歹也要支持一下,分类也算清楚。
 
  4. Koders  http://www.koders.com/
   是个综合查询的网站,不过它好像是从代码中查找关键词,包含的语言挺多的。
  5. Resources for Java server-side developers  http://www.java201.com/
   确切的说,它是一个资源收集的网站,代码查询并不多。不过它分类相当细,如Articles、Books、Examples、Extensions、Frameworks等类,你可以输入Spring或Hibernate作为关键词搜索一下看看。

posted @ 2006-02-15 10:28 qiqijava 阅读(219) | 评论 (0)编辑 收藏

2005年12月9日

今天想写个随笔,是关于spring的,可有些关系图不知道用什么画好。在这上面还没法画。想想还是先学习visio怎么用吧。真是书到用时方恨少呀。等学完了再写这个随笔吧。第二篇不知道要等到何年何月了。

posted @ 2005-12-09 14:22 qiqijava 阅读(168) | 评论 (0)编辑 收藏