《JAVA开发利器MyEclipse全面详解》学习笔记之Spring及其整合

不完全依赖:
    什么时候使用?
    bean甲在bean乙之前实例化,但在bean乙中不需使用bean甲,常用于数据库开发,例如注册数据库驱动必须在所有操作之前完成,但在操作中是不会调用驱动的。

延迟初始化bean:
    lazy-init=“true”

自动装配:
    autowire=”“
        default,no,byName,byType,constructor,autodetect(翻译为自动探测,通过自省机制决定constructor或byType)

依赖注入检查:
    dependency-check=”“
        default
        none
        simple对基本类型和集合类型
        object对其他bean
        all

bean的作用域:
    scope=”“
        singleton缺省
        prototype
        request
        session
        global session

方法注入:(比较少用)
    什么时候使用?
        例如向一个作用域为singleton的bean甲注入作用域为prototype的bean乙,对于bean甲来说,容器只会创建一个bean甲实例,这样,就没法让容器提供不同的bean乙实例
    方法注入分两种方式:
        lookup方法注入
        自定义方法注入

定义bean的生命周期:
    init-method=”bean中定义的初始化方法名“
    destroy-method=”bean中定义的销毁方法名“

bean的继承:
    标记为abstract 的bean是不能被实例化的,所以当调用getBean方法时将发生错误,这种bean 的作用就是让其他bean继承

面向切面编程   
两种方式:
    配置方式
    注解方式:当需要完成一个特定功能时,只需对Java程序完成注解
        技巧:普通AOP项目通常用注解方式,与其他框架整合时用配置方式

在ApplicationContext.xml中加入
xmlns:aop="http://www.springframework.org/schema/aop"
http://www.springframework.org/schema/aop
http://ww.springframework.org/schema/aop/spring-aop-2.5.xsd

面向切面编程的作用:在某一类方法的特定位置,执行相同的功能。
例如,执行数据库时,不管执行什么操作都要执行关闭数据库的操作
    示例:
        package com.ycx.dao;
        public class BookDAOImpl implement BookDAO{
            public void addBook(String name,double price){
                System.out.println("执行增加图书操作");
}
……
……
}

        public class AspectJXML{
            public void myAfterMethod(){
                System.out.println("数据库操作后,释放数据库资源");
}
}   

关键配置:
省略上面两个类的bean配置
<aop:config>
    <aop:aspect id="myAspect" ref="">     声明切面  
        <aop:pointcut id="allMethod" expression="execution(* com.ycx.dao.*.*(..))"/>
        <aop:after pointcut-ref="allMethod" method="myAfterMethod"/>
    </aop:aspect>
</aop:config>

使用注解方式开放AOP项目:
    在ApplicationContext.xml中加入
        <aop:aspectj-autoproxy/>以启动AspectJ组件技术

spring与hibernate整合:

事务管理:
    编程式事务管理
    声明式事务管理(常用,无需改动源代码,只需修改配置文件)
        首先,必须在applicationContext.xml头文件中加入相关配置,xmlns:aop="http://www.springframework.org/schema/aop"
http://www.springframework.org/schema/aop
http://ww.springframework.org/schema/aop/spring-aop-2.5.xsd(面向切面编程所需)
    xmlns:aop="http://www.springframework.org/schema/tx"
http://www.springframework.org/schema/tx
http://ww.springframework.org/schema/ tx /spring- tx -2.5.xsd(事务管理所需)

关键配置:
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name


通过注解方式进行事务管理:
    在DAO程序类名上加@Transaction
    在applicationContext.xml文件中加入<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true">

   









   

猜你喜欢

转载自yehayeah.iteye.com/blog/1665140