不完全依赖:
什么时候使用?
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">
分享到:
相关推荐
《Java开发利器Myeclipse全面详解》是一本专注于Java开发者使用的集成开发环境——Myeclipse的详尽指南。这本书深入浅出地介绍了Myeclipse的各项功能,旨在帮助Java程序员提高开发效率,提升编程技能。 Myeclipse是...
总的来说,《Java开发利器Myeclipse全面详解》是一本覆盖了MyEclipse各个方面知识的实用教程,对于想要掌握MyEclipse进行Java Web开发的读者来说,是不可或缺的学习资料。通过阅读此书,读者不仅能学会MyEclipse的...
### Java开发利器Myeclipse全面详解 #### 一、引言与版权说明 在开始详细介绍MyEclipse之前,我们先来看看这份文档的前言部分。这段话引用了荀子《劝学》中的一段名言:“吾尝终日而思矣,不如须臾之所学也……”...
通过学习《Java开发利器Myeclipse全面详解》,开发者不仅能掌握Myeclipse的基本使用,还能深入理解其高级特性,从而在实际开发工作中更加游刃有余。这本书是提升Java开发技能的重要参考资料,尤其适合初学者和有一定...
在第11章“SSH2框架整合开发”中,我们将深入探讨如何利用MyEclipse进行Struts2、Spring和Hibernate三大主流Java框架的集成应用。 Struts2是ActionServlet模型的一种实现,主要用于控制应用程序的流程,提供MVC模式...