- 浏览: 141041 次
- 性别:
- 来自: 南宁
文章分类
- 全部博客 (137)
- J2SE API基础 (19)
- JAVA Structure/Algorithm (1)
- 设计模式及UML(pd/rose) (11)
- SSH (32)
- JPA/EJB/JSF (0)
- Jsp/Servlet (1)
- XML (0)
- DWR/Dojo/JQuery(Ajax) (1)
- Js/css/HTML (3)
- Java报表开发 (0)
- 网络协议及认证加密算法 (2)
- Java多线程网络编程 (1)
- Lucence (0)
- Oracle Developer (5)
- Oracle DBA (3)
- mysql/SQLServer/DB2 (5)
- Weblogic配置/调试 (0)
- Tomcat/JBoss/Websphere (10)
- Linux/Unix操作部署及shell编程 (9)
- C/C++编程 (4)
- 系统分析 (0)
- 项目管理(CVS&风险控制) (0)
- JUnit单元和J2EE集成测试 (2)
- 软设/招聘 (6)
- IT English (8)
- Mathematics/Data Mining (1)
- Android开发爱好 (1)
- Flash制作爱好 (0)
- Professional wisdom (4)
- 序言 (1)
- 聊天记录 (0)
- 理想 (3)
- 承诺 (0)
- oifuslfjsldkj_chatrecord (1)
最新评论
-
blues1021:
dafeiwudi 写道什么叫外频和陪频啊?一般电脑都显示主频 ...
计算机组成原理和结构-时钟周期、机器周期、总线周期、指令周期含义和关系 -
dafeiwudi:
什么叫外频和陪频啊?一般电脑都显示主频,它不表示运算速递,我们 ...
计算机组成原理和结构-时钟周期、机器周期、总线周期、指令周期含义和关系
Spring2.5注释
一、加载Spirng容器,在web.xml中:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
将Spring注册监听。
二、编写ApplicationContext.xml容器文件,当用户调用相应的Action类导致响应的注释的加载,将会导致ApplicationContext.xml的加载,在它加载的时候会搜索bean下匹配的注释处为其注入对象,所以Spring 容器中匹配的候选 Bean 数目必须有且仅有一个。
如果是使用 @Override
注释直接写入:
- <?xml version= "1.0" encoding= "UTF-8" ?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
- <bean id="boss" class = "com.baobaotao.Boss" >
- <property name="car" ref= "car" />
- <property name="office" ref= "office" />
- </bean>
- <bean id="office" class = "com.baobaotao.Office" >
- <property name="officeNo" value= "002" />
- </bean>
- <bean id="car" class = "com.baobaotao.Car" scope= "singleton" >
- <property name="brand" value= " 红旗 CA72" />
- <property name="price" value= "2000" />
- </bean>
-
</beans>
- <bean class ="org.springframework.beans.factory.annotation.
- AutowiredAnnotationBeanPostProcessor"/>
-
- package com.baobaotao;
- public class Boss {
- private Car car;
- private Office office;
- // 省略 get/setter
- @Override
- public String toString() {
- return "car:" + car + "\n" + "office:" + office;
- }
-
}
(1)是@Autowired的注释bean:
- package com.baobaotao;
- import org.springframework.beans.factory.annotation.Autowired;
- public class Boss {
- @Autowired
- private Car car;
- @Autowired
- private Office office;
-
…
- ?xml version= "1.0" encoding= "UTF-8" ?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
- <!-- 该 BeanPostProcessor 将自动起作用,对标注 @Autowired 的 Bean 进行自动注入 -->
- <bean class ="org.springframework.beans.factory.annotation.
- AutowiredAnnotationBeanPostProcessor"/>
- <!-- 移除 boss Bean 的属性注入配置的信息 -->
- <bean id="boss" class = "com.baobaotao.Boss" />
- <bean id="office" class = "com.baobaotao.Office" >
- <property name="officeNo" value= "001" />
- </bean>
- <bean id="car" class = "com.baobaotao.Car" scope= "singleton" >
- <property name="brand" value= " 红旗 CA72" />
- <property name="price" value= "2000" />
- </bean>
-
</beans>
Spring 允许我们通过 @Qualifier 注释指定注入 Bean 的名称,这样歧义就消除了,可以通过下面的方法解决异常:
清单 13. 使用 @Qualifier 注释指定注入 Bean 的名称 ,如下:
- @Autowired
- public void setOffice( @Qualifier ( "office" )Office office) {
- this .office = office;
-
}
(4)@PostConstruct
(5)@PreDestroy
(6)@Component 注释连接:http://coolyongzi.iteye.com/blog/192957
Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller。在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。虽然目前这 3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对分层中的类进行注释,而用 @Component 对那些比较中立的类进行注释。
注释配置和 XML 配置的适用场合
是否有了这些 IOC 注释,我们就可以完全摒除原来 XML 配置的方式呢?答案是否定的。有以下几点原因:
(1)注释配置不一定在先天上优于 XML 配置。如果 Bean 的依赖关系是固定的,(如 Service 使用了哪几个 DAO 类),这种配置信息不会在部署时发生调整,那么注释配置优于 XML 配置;反之如果这种依赖关系会在部署时发生调整,XML 配置显然又优于注释配置,因为注释是对 Java 源代码的调整,您需要重新改写源代码并重新编译才可以实施调整。
(2)如果 Bean 不是自己编写的类(如 JdbcTemplate、SessionFactoryBean 等),注释配置将无法实施,此时 XML 配置是唯一可用的方式。
(3)注释配置往往是类级别的,而 XML 配置则可以表现得更加灵活。比如相比于 @Transaction 事务注释,使用 aop/tx 命名空间的事务配置更加灵活和简单。
所以在实现应用中,我们往往需要同时使用注释配置和 XML 配置,对于类级别且不会发生变动的配置可以优先考虑注释配置;而对于那些第三方类以及容易发生调整的配置则应优先考虑使用 XML 配置。Spring 会在具体实施 Bean 创建和 Bean 注入之前将这两种配置方式的元信息融合在一起。
Spring 在 2.1 以后对注释配置提供了强力的支持,注释配置功能成为 Spring 2.5 的最大的亮点之一。合理地使用 Spring 2.5 的注释配置,可以有效减少配置的工作量,提高程序的内聚性。但是这并不意味着传统 XML 配置将走向消亡,在第三方类 Bean 的配置,以及那些诸如数据源、缓存池、持久层操作模板类、事务管理等内容的配置上,XML 配置依然拥有不可替代的地位。
发表评论
-
Unity3DHouse中成功删除信息
2011-08-10 01:12 812//在jsp页面传入的参数在Action类中调用deleteH ... -
hibernate3.0中实现修改数据记录
2011-08-10 01:11 6851.查询页面中传入参数: <a href=& ... -
Unity3DHouse4项目save(object1)到库问题的解决
2011-08-10 01:10 7061.添加时点击没有任何响应和提示,google了一遍有说是 ... -
Unity3DHouse4系统未解问题
2011-08-10 01:08 7971.struts1.2+spring 2.2+Hibern ... -
Struts表单提交的text String数据可以作为HQL中的Integer类型处理
2011-08-10 01:06 8731.传入数据的表单中的声明 :<form metho ... -
6月28日房产的登录模块报错
2011-08-10 01:04 8231.JSP语法报错 exception org.ap ... -
struts的jsp Action中传入EL表达式参数及myeclipse操作技巧(涛)
2011-08-10 01:03 8761.<a href="/searchBuild ... -
Struts标签之Cannot find bean under name org.apache.struts.taglib.html.BEAN错误
2011-08-10 01:02 1291Cannot find bean under name ... -
【转】关于在HQL中的模糊查询问题
2011-08-10 01:02 778来自:20 ... -
Struts中的Action二次请求不认路径../的解决方法
2011-08-10 01:00 843地址栏没有了项目名称:http://localhost:808 ... -
myEclipse项目部署问题之解决方法
2011-08-10 00:58 1008myeclipse下工程: 1.安装myclipse时6.5 ... -
Strut2的属性驱动,模型驱动的理解
2011-08-10 00:58 1077因为在struts1的版本中,属性的拦截以及控制的处 ... -
Hibernate注释中的参照完整性和复合主键类解析
2011-08-10 00:57 1041在引入了或声明了相关表或类后就能够使用它下面的方法,例如: ... -
【转】hibernate的@EmbeddedId嵌入式主键类详解
2011-08-10 00:56 1039复合主键也可以采用 ... -
Spring 2.*有注释的配置文件中各层配置详解
2011-08-10 00:55 852<?xml version="1.0" ... -
【转】Struts2注解使用解析
2011-08-10 00:54 807如果希望使用 struts2 ... -
《转》struts.xml 模块化管理
2011-08-10 00:52 816... -
《转改》Struts2和Spring的集成原理
2011-08-10 00:50 6882009年09月02日 星期三 下午 ... -
房产销售系统的服务器配置问题?
2011-08-10 00:48 704Tomcat在外面的安装时抛出404找不到资源,测试后 ... -
《学生选课系统课程设计》提交过程的感悟
2011-08-10 00:46 765今天去提交数据库课程设计,昨晚把数据库安装了一晚JDK,m ...
相关推荐
Spring 2.5的注释驱动和基于注释的MVC极大地简化了Spring应用的开发,减少了XML配置,提高了代码的可读性和可维护性。通过合理利用这些注解,开发者可以构建出更加高效、灵活且易于理解的Spring MVC应用。在实际项目...
总的来说,《精通Spring2.5》这本书会详细讲解这些特性和实践,帮助读者深入了解Spring框架,掌握如何利用Spring 2.5进行高效的企业级应用开发。书中涵盖的内容包括但不限于:Spring的核心概念、IoC和AOP的实现原理...
Spring管理的Bean有其特定的生命周期,包括初始化、正常使用和销毁。在Spring 2.5中,开发者可以通过实现接口或使用注解来定制Bean的生命周期行为,如初始化方法、销毁方法以及Bean的作用域。 **国际化支持** ...
开发者可以使用`@Autowired`、`@Qualifier`和`@Resource`等注解来简化装配过程,无需编写XML配置文件。 2. **注解驱动的开发**:Spring 2.5引入了大量的注解,如`@Controller`、`@Service`、`@Repository`和`@...
2. **AOP(面向切面编程)**:Spring 2.5支持更强大的AOP功能,允许开发者定义和执行横切关注点,如日志、事务管理等,这些关注点可以独立于业务逻辑进行处理。 3. **XML配置增强**:在Spring 2.5中,XML配置文件...
Spring 2.5大幅扩展了对Java注解的支持,包括`@Autowired`、`@Qualifier`、`@Required`等,这些注解使得开发者可以直接在类和方法上声明依赖,而无需XML配置。这极大地减少了配置文件的复杂性。 3. **AOP(面向切...
Spring 2.5 AOP(面向切面编程)是Java应用程序中的一个重要概念,它允许开发者在不修改原有代码的情况下插入新的行为或监控。这个例子旨在帮助我们理解和应用Spring框架的AOP特性。以下是对该主题的详细解释: 一...
通过阅读《Spring2.5-中文参考手册.chm》这份文档,开发者可以深入了解Spring 2.5的各种特性和用法,解决实际开发中遇到的问题,提升开发效率。文档不仅包含详细的API参考,还包含丰富的示例和最佳实践指导,是学习...
在学习和使用Spring 2.5时,理解这些核心概念至关重要。框架图能帮助我们理清各个组件的功能和相互作用,从而提高开发效率。对于初学者,可以先从了解IoC和AOP的基本概念开始,然后逐步深入到具体的包和模块,最后...
Spring 2.5 是 Spring 框架的一个重要版本,它在之前的版本基础上引入了许多增强功能和改进,为开发者提供了更强大的工具集。这个压缩包包含的“spring常用包”很可能是为了帮助开发者理解并使用 Spring 2.5 的核心...
Struts1.2、Spring2.5和Hibernate3.2是经典的Java企业级开发框架组合,它们各自在应用程序的不同层次上发挥着重要作用。Struts1.2是一个MVC(Model-View-Controller)框架,主要负责处理用户界面与业务逻辑之间的...
这使得开发者可以在类或方法级别使用注解,如`@Component`、`@Service`、`@Repository`和`@Controller`,简化XML配置文件。 在集成测试方面,Spring Test模块得到了增强,提供了更多的测试支持,包括模拟对象、Web...
《Spring 2.5中文文档》是一份详细阐述Spring框架2.5版本特性和使用方法的资源,旨在帮助...链接指向的博客文章可能提供了更多关于文档使用和Spring 2.5实战的经验分享,是深入学习和应用Spring 2.5的重要参考资料。
1. **依赖注入 (Dependency Injection, DI)**:Spring 2.5对依赖注入进行了优化,支持了基于注解的配置(@Autowired和@Qualifier),这使得开发者无需通过XML配置就能实现组件之间的依赖关系,提高了代码的可读性...
Struts2.1、Spring2.5和Hibernate3.3是经典的Java企业级开发框架组合,它们各自在应用程序的不同层面提供了强大的支持。本篇将详细阐述这三个组件的整合过程,以及各自的核心特性。 首先,Struts2是一个基于MVC设计...
在这一版本中,Spring引入了许多关键改进和新特性,极大地提升了开发者的工作效率和应用程序的可维护性。以下是对Spring 2.5源代码中一些核心知识点的详细解释: 1. **依赖注入(Dependency Injection, DI)**:...
这个"Spring2.5-中文参考手册chm.zip"文件包含了关于Spring 2.5版本的详细中文指南,对于学习和理解Spring框架具有很高的价值。 Spring框架的核心特性包括依赖注入(Dependency Injection,DI)、面向切面编程...
这篇博文“Spring 2.5 - applicationContext.xml提示信息的配置”主要探讨了如何在Spring 2.5版本中为`applicationContext.xml`提供有用的提示信息,以帮助开发者更好地理解和调试配置。以下将详细讲解相关知识点。 ...
Spring框架是Java开发中不可或缺的一部分,它为应用程序提供了一个全面的基础设施,包括...虽然许多功能在后续版本中得到了进一步的优化和扩展,但对于仍在使用Spring 2.5的项目,理解这些关键知识点仍然是至关重要的。