`
erikchang
  • 浏览: 50665 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Spring2.5 综合应用探索

    博客分类:
  • java
阅读更多

     Spring2.5的注释注入Bean已经成为众多Spring爱好者的首选(3.0版本和2.5基本差不多),但是在使用过程中可能会出现很多的问题,笔者找了网上很多的资料,没有一个真正完整使用注释来完成一个系统,这里给笔者的使用心得及遇到主要棘手的问题贴上来,和大家共勉!

    相信大家使用Spring2.5主要都是为了注释的应用,尤其是@Controller和@Service、@Component、@Resource这些标签的应用,因为这些标签替代了更多的XML配置,使用Spring2.5注释来完成这些工作会带来很多的便利,当然初次使用肯定会遇到很多的原因!

    使用@Controller标签的时候需要注意配置步骤和配置文件的写法,首先配置web.xml文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>
	
	<servlet>
		<servlet-name>test</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>2</load-on-startup>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>test</servlet-name>
		<url-pattern>*.jhtml</url-pattern>
	</servlet-mapping>
</web-app>

 

web.xml中在context-param参数中加载applicatonContext.xml,不要再init-param中加载,因为Spring加载扫描注释Bean有个顺序

写好web.xml后需要在web.xml的同等目录下建立一个text-servlet.xml配置文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
  
	<!-- 把标记了@Controller注解的类转换为bean -->  
	<context:component-scan base-package="com.javatalker"/> 

	<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->  
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />  
<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
	<bean id="velocityCongfig"
		class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
		<property name="resourceLoaderPath">
			<value>/WEB-INF/apps/web/</value>
		</property>
		<property name="velocityProperties">
			<props>
				<prop key="input.encoding">UTF-8</prop>
				<prop key="output.encoding ">UTF-8</prop>
			</props>
		</property>
	</bean>
	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
		<property name="viewClass"
			value="org.springframework.web.servlet.view.velocity.VelocityView" />
		<property name="contentType">
			<value>text/html;charset=UTF-8</value>
		</property>
	</bean>
</beans>
	    

 在这个配置文件中主要配置spring需要扫描的包、开启Spring注释功能的识别、设定Spring视图,这样就可以了

然后写一个applicationContext.xml,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">	
	<!-- 使Spring关注Annotation -->   
	<context:annotation-config />   
</beans>

 在这个配置文件中只需要一行代码,用来告诉Spring启用注释配置。

这样就可以使用@Controller的注释来完成url的导向了,举例如下:

@Controller
public class UserAction {
	
	@RequestMapping("/user/save.jhtml")
	public ModelAndView Save(HttpServletRequest request,
			HttpServletResponse response) {
		return new ModelAndView("save.html");
	}
}

 如上代码,要注意的是UserAction是个单独的class,不继承Spring任何类,不像以前需要继承org.springframework.web.servlet.mvc.multiaction.MultiActionController,使用@Controller注释后,就可以在方法级上来完成对应的url,使用@RequestMapping来完成这项工作,比如上面的注入表示,访问UserAction中save方法就可以使用:/user/save.jhtml这样的url,这样的url比user.jhtml?method=save更加友好了吧!

关于@Controller的说明到这里就差不多了!

 

其次要强调的是注释注入Bean的应用,使用@Component这些注释可以标注一个class为Spring管理中的Bean,但是有些Bean不是class能够解决的,必须使用配置文件来完成,比如DataSource等,这样就需要使用Spring的配置文件来完成,Spring2.5开始在加载Bean的时候首先扫描xxx-servlet.xml中配置的Bean,然后扫描使用注释标注的Bean,这样一来如果给datasource这些bean配置在applicatonContext.xml中,而在某个Bean中使用@Autowired注入datasource就会出错,解决的方法很简单,就是给配置的Bean放到xxx-servlet.xml,个人感觉这个也是Spring2.5后不好的地方,相信以后很改正过来的!

分享到:
评论
3 楼 dch1287 2009-12-30  
Spring Reference Doc

另外 3.0 和 2.5 差别还是不小的 尤其是MVC这块
2 楼 chinakite 2009-12-30  
CTO是管理职位,确实可能不知道,你应该问问Senior engineer 
1 楼 erikchang 2009-12-29  
发现一个非常不好的现象,我这篇文章中提到的一些东西,询问了javaeye中CTO级别的都说不清楚,怎么很多人都认为这是新手帖呢?呵呵,这样下去不好!

相关推荐

    精通Spring2.5pdf书籍proSpring2.5

    总的来说,《精通Spring2.5》这本书会详细讲解这些特性和实践,帮助读者深入了解Spring框架,掌握如何利用Spring 2.5进行高效的企业级应用开发。书中涵盖的内容包括但不限于:Spring的核心概念、IoC和AOP的实现原理...

    Spring2.5-中文参考手册chm

    Spring2.5版本是该框架的一个重要里程碑,它在2008年发布,带来了许多新特性和改进,提升了开发者在构建应用程序时的灵活性和效率。 **依赖注入(DI)和控制反转(IoC)** Spring的核心特性之一是依赖注入(Dependency...

    spring2.5中文文档

    8. **Web应用上下文**:Spring 2.5对Web应用上下文进行了增强,支持在Servlet容器外启动Spring应用上下文,增加了更多的初始化参数。 9. **JSR-303 Bean验证**:Spring 2.5开始支持JSR-303标准的bean验证,可以通过...

    spring2.5的所有jar包

    5. **JSR-303数据校验**:Spring 2.5集成了JSR-303(Bean Validation)标准,使得数据校验可以直接应用在模型对象上,提高了代码的可读性和可维护性。 6. **Web-MVC增强**:Spring MVC在2.5版本中提供了更多的特性...

    Spring2.5 源代码

    Spring框架是Java开发中不可或缺的一部分,特别是在企业级应用开发领域,如J2EE项目中。Spring 2.5是Spring框架的一个重要版本,它引入了许多关键特性,为开发者提供了更强大的功能和更好的灵活性。让我们深入探讨...

    Spring2.5-中文参考手册chm.zip

    这个"Spring2.5-中文参考手册chm.zip"文件将帮助开发者深入理解上述所有概念,通过详细的文档和实例,指导如何有效地利用Spring 2.5进行应用开发。对于Java开发者来说,这是一份非常宝贵的学习资源,能够提升项目...

    spring 2.5中文帮助文档

    通过阅读《Spring2.5-中文参考手册.chm》这份文档,开发者可以深入了解Spring 2.5的各种特性和用法,解决实际开发中遇到的问题,提升开发效率。文档不仅包含详细的API参考,还包含丰富的示例和最佳实践指导,是学习...

    spring 2.5框架图

    Spring 2.5框架是Java开发中的一个里程碑版本,它为开发者提供了丰富的功能和改进,尤其是在企业级应用开发中。这个框架的核心在于IoC(Inversion of Control)和AOP(Aspect-Oriented Programming),旨在简化Java...

    Spring2.5 中文文档 chm格式

    这个"Spring2.5中文框架开发手册"旨在帮助中国开发者更好地理解和应用Spring框架,尤其是对于那些不熟悉英文文档的开发者来说,中文版的文档尤其宝贵。 首先,Spring框架的核心是依赖注入(Dependency Injection,...

    struts2.1+spring2.5+hibernate3.3整合之第一步(spring2.5+hibernate3.3)

    Struts2.1、Spring2.5和Hibernate3.3是经典的Java企业级开发框架组合,它们各自在应用程序的不同层面提供了强大的支持。本篇将详细阐述这三个组件的整合过程,以及各自的核心特性。 首先,Struts2是一个基于MVC设计...

    spring2.5的单独应用

    有很多新手不会分离spring的包而...吾将spring2.5的包分离出来欲给一些人以方便。只需下载该包添加到项目中引用即可,如果单独用spring管理事务,记住用JdbcTemplate来获取数据源对象。 再附xml配置文件一个,以供参考

    struts1.2 + spring2.5 + hibernate3.2框架demo

    Struts1.2、Spring2.5和Hibernate3.2是经典的Java企业级开发框架组合,它们各自在应用程序的不同层次上发挥着重要作用。Struts1.2是一个MVC(Model-View-Controller)框架,主要负责处理用户界面与业务逻辑之间的...

    传智播客spring2.5源代码

    通过对Spring 2.5源代码的深入学习,你可以了解这些特性的实现原理,更好地理解Spring框架的工作机制,并能将其应用到实际项目中,提升软件开发的质量和效率。通过视频讲解和源代码结合的方式,学习效果将更为显著。

    spring 2.5依赖包

    Spring 2.5是Spring框架的一个重要版本,它在2008年发布,引入了许多增强的功能和改进,为开发者提供了更加完善的Java企业级应用开发环境。在这个版本中,Spring框架进一步提升了其灵活性、可扩展性和易用性,使得...

    spring2.5常用包

    9. **JMS(Java Message Service)支持**:Spring 2.5 支持消息驱动的应用,通过 JMSTemplate 和 MessageListener 接口,可以方便地实现消息队列的发送和接收。 10. **国际化(i18n)**:Spring 提供了 ...

    spring2.5中文文档(PDF)

    《Spring 2.5中文文档》是一份详细阐述Spring框架2.5版本特性和使用方法的资源,旨在帮助开发者深入理解和高效应用这一流行的Java企业级应用程序开发框架。这份文档是中文版,对于中国开发者来说,提供了更为便捷的...

    Spring 2.5 AOP 例子

    Spring 2.5 AOP(面向切面编程)是Java应用程序中的一个重要概念,它允许开发者在不修改原有代码的情况下插入新的行为或监控。这个例子旨在帮助我们理解和应用Spring框架的AOP特性。以下是对该主题的详细解释: 一...

    spring2.5 mvc 完整项目

    总结,"Spring 2.5 MVC 完整项目"是一个综合性的学习和实践资源,涵盖了从项目初始化、错误处理到数据库操作的全过程。通过深入理解并实践该项目,开发者不仅能掌握Spring MVC的核心概念,还能提升在实际项目中的...

    spring2.5需要的jar

    在压缩包"spring2.5需要的jar"中,可能包含了一系列Spring框架的核心库,如spring-core、spring-context、spring-aop、spring-beans、spring-expression等。这些jar文件是构建基于Spring 2.5的应用所必需的,它们...

Global site tag (gtag.js) - Google Analytics