最近对系统进行改造,发现在泛型实例初始化的时候,得不到想要的泛型。或者需要强制转换。
spring 4 开始支持泛型对象初始化,初始化方法如下:
注:使用配置文件的方法暂时还没有发现,下面是使用java annotation的方法:
package com.mitchz..toolkit.chain; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.asiainfo.iposs.toolkit.chain.spring.TestMessageContext; import com.google.common.collect.Lists; import com.google.common.collect.Maps; /** * @author zhangya * @version 1.0 * @since 2014年5月25日 * @category com.mitchz.toolkit.chain */ @Configuration public class TestConfiguration { @Autowired @Qualifier("getCustomerInfo") HandlerCommand<String, Object, TestMessageContext> getCustomerInfo; @Autowired @Qualifier("testDriveVehicle") HandlerCommand<String, Object, TestMessageContext> testDriveVehicle; @Autowired @Qualifier("negotiateSale") HandlerCommand<String, Object, TestMessageContext> negotiateSale; @Autowired @Qualifier("arrangeFinancing") HandlerCommand<String, Object, TestMessageContext> arrangeFinancing; @Autowired @Qualifier("closeSale") HandlerCommand<String, Object, TestMessageContext> closeSale; @Autowired @Qualifier("chain1") HandlerChain<String, Object, TestMessageContext> chain1; @Autowired @Qualifier("chain2") HandlerChain<String, Object, TestMessageContext> chain2; @Bean(name = "chain1") public HandlerChain<String, Object, TestMessageContext> createChain1() { List<HandlerCommand<String, Object, TestMessageContext>> commands = Lists .newArrayList(); commands.add(getCustomerInfo); commands.add(testDriveVehicle); commands.add(negotiateSale); commands.add(arrangeFinancing); commands.add(closeSale); return new HandlerChain<String, Object, TestMessageContext>(commands); } @Bean(name = "chain2") public HandlerChain<String, Object, TestMessageContext> createChain2() { List<HandlerCommand<String, Object, TestMessageContext>> commands = Lists .newArrayList(); commands.add(getCustomerInfo); commands.add(arrangeFinancing); commands.add(closeSale); return new HandlerChain<String, Object, TestMessageContext>(commands); } @Bean(name = "catalog") public HandlerCatalog<String, Object, TestMessageContext> createCatalog() { Map<String, HandlerChain<String, Object, TestMessageContext>> commands = Maps .newHashMap(); commands.put("chain1", chain1); commands.put("chain2", chain2); return new HandlerCatalog<String, Object, TestMessageContext>(commands); } }
完整的例子参考:
http://spring.io/blog/2013/12/03/spring-framework-4-0-and-java-generics
相关推荐
SpringIOC_泛型依赖注入,泛型依赖注入,注入一个组件的时候,他的泛型也是参考标准
综合运用Java反射、泛型和注解实现的类似Spring的核心注入
SSH笔记-泛型依赖注入,当继承类完毕之后,根据泛型依赖注入的特性,被继承类会参照继承类所引用了的其他的引用关系自动建立对应引用关系,这就是泛型依赖注入
spring的生命周期及BeanPostProcessor的使用,注解方式创建bean 及使用Autowried标签关联类的属性 ,泛型依赖注入的使用 spring-3 演示使用动态代理模式实现面向切面编程 使用注解方式进行AOP编程及使用配置xml方式...
1.创建第一个 Spring 程序案例 2.Spring IoC案例 3.Spring Bean案例 4.Spring 表达式语言案例 5.Spring xml 配置案例 ...7.Spring 泛型依赖注入案例 8.Spring AOP案例 9.Spring JDBCTemplate案例 10.Spring 事务案例
例如,假设您有以下配置:假设前面的bean实现了一个泛型接口(即存储和存储),您可以@Autowire存储接口并将泛型用作限定符,如下面的示例所示:// <St
Spring 4.0已经发布RELEASE版本,不仅支持Java8,而且向下兼容到JavaSE6/JavaEE6,并移出了相关废弃类,新添加如Java8的...其中两个我一直想要的增强就是:支持泛型依赖注入、对cglib类代理不再要求必须有空参构造器了
Bean、通过 FactoryBean 配置 Bean、通过注解配置 Bean、泛型依赖注入、AOP 基础、前置通知、后置通知、返回通知、异常通知、环绕通知、切面的优先级、切点表达式、使用 XML 文件的方式配置 AOP、使用 JdbcTemplate ...
用spring提供的HibernateTemplate注入到GenericHibernateDao中,这样在各个实现类就可以直接调用HibernateTemplate来实现额外的查询操作了。 如果在实现类中不想调用某个方法(例如:update()),就可以覆盖它,方法...
Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为...
自动接线错误引导 带有有限泛型的服务的Spring Boot自动装配问题
Spring中注入属性值细节、自动装配、bean之间的关系、bean的作用域、使用外部属性文件、SpEL、IOC容器中Bean 的生命周期、泛型依赖注入。
简易的spring demo,包含了bean自动装配,泛型依赖注入,Aop切面编程的实例
注解驱动的依赖性注入(annotation-driven dependency injection),使用注解而非XML元数据来自动侦测classpath上的Spring组件,注解对生命周期方法的支持,一个新的web控制器模型将请求映射到加注解的方法上,在...
Spring4.0 引入了众多 Java 开发者期盼的新特性,如泛型依赖注入、SpEL、校验及格式化框架、Rest风格的 WEB 编程模型等
Spring4.0 引入了众多 Java 开发者期盼的新特性,如泛型依赖注入、SpEL、校验及格式化框架、Rest风格的 WEB 编程模型等。这些新功能实用性强、易用性高,可大幅降低 JavaEE 开发的难度,同时有效提升应用开发的优雅...
Spring4.0 引入了众多 Java 开发者期盼的新特性,如泛型依赖注入、SpEL、校验及格式化框架、Rest风格的 WEB 编程模型等。这些新功能实用性强、易用性高,可大幅降低 JavaEE 开发的难度,同时有效提升应用开发的优雅...
Spring4.0 引入了众多 Java 开发者期盼的新特性,如泛型依赖注入、SpEL、校验及格式化框架、Rest风格的 WEB 编程模型等。这些新功能实用性强、易用性高,可大幅降低 JavaEE 开发的难度,同时有效提升应用开发的优雅...
注解驱动的依赖性注入(annotation-driven dependency injection),使用注解而非XML元数据来自动侦测classpath上的Spring组件,注解对生命周期方法的支持,一个新的web控制器模型将请求映射到加注解的方法上,在...
spring demo,包含了bean的自动装配,aop以及泛型依赖注入的实现,jdbc和jdbc的xml配置以及注解两种实现方式。每个功能的程序入口为各自包里面的main方法