`

Spring 2.5Annotation使用基本类型和${}

    博客分类:
  • java
阅读更多
最近使用了Spring2.5 annotation风格的DI,发现竟然不支持基本类型的自动装配,更别说使用PropertyPlaceholderConfigurer了。既然不支持,只能想其它的办法,最后使用XML和annotation相结合的方式解决了这个问题。
Bean定义
@Service
public class Service {

//默认是按Type装配,可以指定Qualifier使用name装配
@Autowired
@Qualifier("path")
private String path;

@Autowired
@Qualifier("pathId")
private Integer id;

public void go() {
}

}

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"
	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">
     <!-- 属性文件读入 -->
	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
                      <list>
                     <value>classpath*:config/other.properties</value>
		    </list>
		</property>
	</bean>

     <!-- 修改为对应的packge -->
     <context:component-scan base-package="com" />

      <bean id="path" class="java.lang.String">
           <constructor-arg type="java.lang.String" value="${path}" />
      </bean> 
       <bean id="pathId" class="java.lang.Integer">
           <constructor-arg type="java.lang.String" value="${path.id}" />
      </bean>  
</beans>

这样即使用了基本类型和PropertyPlaceholderConfigurer:)
分享到:
评论
5 楼 andyao 2008-03-10  
Fly_m 写道
我不觉得Annotation支持基本类型有什么好处,LZ说的
<bean id="path" class="java.lang.String">  
           <constructor-arg type="java.lang.String" value="${path}" />  
      </bean>
这一段,我不觉得这一段比<property name="xxx" value="${pathId}"/>简单多少,甚至还更复杂.我觉得单独为基本类型而再去配置文件中加入一个bean配置是一个太过的作法.什么东西,我觉得只是让程序更简单化,难道为了某种效果去复杂化了,反而不好了.


只是提一种解决问题的方法,如果不用annotation当然没有这种问题。

问题是,你的项目采用了spring annotation的方式,一个类中有一些属性要注入,这些属性包括一些基本类型。你可以选择:
  • 这个类使用XML格式配置,不使用annotation,这样不存在基本类型的问题
  • 使用我annotaiton,采用我上面提到的方法解决基本类型注入问题。

我会选择和项目更匹配的第二种方式。
选择第一种的话,项目中在类级别就存在annotaion和xml两种方式的IOC配置方式,不一致不说,增加复杂性。



4 楼 Fly_m 2008-03-07  
我不觉得Annotation支持基本类型有什么好处,LZ说的
<bean id="path" class="java.lang.String">  
           <constructor-arg type="java.lang.String" value="${path}" />  
      </bean>
这一段,我不觉得这一段比<property name="xxx" value="${pathId}"/>简单多少,甚至还更复杂.我觉得单独为基本类型而再去配置文件中加入一个bean配置是一个太过的作法.什么东西,我觉得只是让程序更简单化,难道为了某种效果去复杂化了,反而不好了.
3 楼 bulargy 2008-03-07  
还有属性文件的载入,在引入context命名空间后有一种简化的写法:
<context:property-placeholder location="classpath:config/myset.properties" />
2 楼 bulargy 2008-03-07  
  
    <bean id="pathId" class="java.lang.Integer">  
          <constructor-arg type="java.lang.Integer" value="${path.id}" />  
    </bean>


这个写错了,构造函数的类型是java.lang.String
应该是:
  
    <bean id="pathId" class="java.lang.Integer">  
          <constructor-arg type="java.lang.String" value="${path.id}" />  
    </bean>

否则会报“构造函数参数类型错误”的错~~
1 楼 andyao 2008-01-08  
其实最好的做法是Spring Annotation支持下面这种配置方式
public class Service {
   
   @Value("${path}")
   pirvate String path;
}


自动注入取出properties文件中的path值,注入到path field中

相关推荐

    struts2 hibernate3 spring2.5 annotation 整合

    3300_Registration_11可能是一个示例项目,包含了上述整合的实例,包括Action、Service、DAO、配置文件等,开发者可以通过学习和运行这个项目来理解和实践Struts2、Hibernate3、Spring2.5的整合以及注解的使用。...

    配置整合DWR3.0和Spring2.5使用annotation注解

    在本文中,我们将探讨如何将Direct Web Remoting (DWR) 3.0与Spring 2.5框架整合,并利用注解(Annotation)进行配置。DWR是一个允许JavaScript与Java服务器端进行交互的库,而Spring 2.5引入了对注解的强大支持,...

    传智播客spring2.5源代码

    6. **类型安全的集合注入**:在Spring 2.5中,可以使用泛型来指定集合类型的元素类型,Spring会自动检查注入的元素类型是否匹配,避免了运行时类型不匹配的问题。 7. **SpEL(Spring Expression Language)**:...

    spring2.5源码

    Spring 2.5引入了`Resource`接口和相关的实现,提供了一种统一的方式来处理各种类型的资源,包括文件系统、URL、类路径和JAR文件中的资源。 8. **集成第三方库** Spring 2.5加强了与第三方库的集成,如JMS、JPA、...

    Spring2.5使用AOP需要的aspectJ

    总的来说,Spring 2.5与AspectJ的结合使用提供了强大的AOP功能,允许开发者更优雅地处理横切关注点,提高代码的可维护性和可读性。正确理解和使用这些知识点对于提升Spring应用程序的架构设计和性能至关重要。

    Spring MVC 2.5 annotation 学习

    博文链接:https://pesome.iteye.com/blog/236273

    struts2 spring2.5 hibernate3.0 annotation 整合

    Struts2、Spring2.5和Hibernate3.0是Java Web开发中三个非常重要的框架,它们各自负责不同的职责,但可以协同工作以构建高效、可维护的Web应用程序。本项目整合了这三个框架,并利用注解(Annotation)进行配置,...

    spring2.5官方jar

    2. **注解驱动的开发(Annotation-based Development)**:Spring 2.5引入了大量的新注解,如`@Autowired`、`@Service`、`@Repository`和`@Controller`等,极大地减少了XML配置文件的使用。这些注解简化了组件扫描和...

    使用 Spring 2.5 TestContext 测试框架

    在本篇文章中,我们将深入探讨Spring 2.5 TestContext测试框架的核心特性和使用方法。 首先,Spring TestContext框架的核心是`@ContextConfiguration`注解,它用于指定测试类中应用上下文的配置。你可以通过此注解...

    spring2.5 api

    Spring 2.5 引入了注解配置,允许开发者在类和方法级别使用注解,如 @Component、@Service、@Repository 和 @Controller,这些注解对应了传统的 XML 中的 `&lt;bean&gt;` 元素。此外,@Configuration 类可以替代 XML 配置...

    Spring2.5中文帮助文档

    **Spring 2.5 中文帮助文档概述** Spring框架是Java平台上的...阅读"Spring2.5中文帮助手册.pdf"和"Spring2.5有哪些改进.txt"这两个文件,将能详细了解到这些改进的实施细节和使用方法,为实际开发工作提供有力支持。

    spring2.5.jar

    10. **支持Java 5和6的新特性**:Spring 2.5利用了Java 5和6的新特性,如枚举类型、泛型、静态导入和注解,提升了代码的可读性和类型安全性。 综上所述,Spring 2.5版本是Spring框架的一个重要迭代,它通过注解驱动...

    spring2.5+hibernate3.2

    spring2.5 + hibernate3.2x 标注(annotation)开发的简单示例 http://blog.csdn.net/IamHades/archive/2008/01/11/2038188.aspx

    Spring2.5的新特性

    Spring2.5在这个方向上迈出了一大步,尤其对于使用Java 5或更高版本的开发者来说,它带来了更多便利和强大的特性。 **注解驱动的依赖性注入 (Annotation-driven Dependency Injection)** Spring2.5引入了注解驱动...

    Spring2.5详细注解.doc

    在 Spring 2.5 中,我们可以使用注释来定义 Bean 和依赖关系。例如,我们可以使用 `@Component` 注释来定义一个 Bean,使用 `@Autowired` 注释来自动装配 Bean,还可以使用 `@Qualifier` 注释来指定 Bean 的名称。 ...

    spring2.5新特性的说明

    - 支持在XML配置中直接使用注解,如 `&lt;context:annotation-config&gt;` 和 `&lt;mvc:annotation-driven&gt;` 元素,分别启用注解驱动的配置和Spring MVC的注解处理器。 7. **改进的类型安全的集合注入**: - 在Spring 2.5...

    Struts2+Spring2.5+Hibernate3+annotation 整合程序

    Struts2、Spring2.5和Hibernate3是Java Web开发中的三大框架,它们的整合是构建企业级应用的常见方式。这个"Struts2+Spring2.5+Hibernate3+annotation 整合程序"旨在展示如何将这三大框架与注解(Annotation)技术...

    spring2.5开发参考手册

    Spring2.5继续坚持了简化企业级应用开发,同时给复杂问题提供强大的、非侵入性解决方案的发展趋向,特别是为那些使用Java 5或更新版本java的开发人员提供了进一步简化而强大的新特性。这些新特性包括:注解驱动的...

    Spring2.5-中文参考手册

    《Spring2.5-中文参考手册》是一份详尽阐述Spring框架2.5版本的中文文档,对于理解和应用Spring框架的开发人员来说,是不可或缺的参考资料。这份CHM(Compiled HTML Help)版本的手册,集成了Spring 2.5的所有核心...

Global site tag (gtag.js) - Google Analytics