`
xiamizy
  • 浏览: 90620 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
78437efc-ad8e-387c-847f-a092d52e81a6
spring framew...
浏览量:4897
社区版块
存档分类
最新评论

spring 4 泛型注入

阅读更多

最近对系统进行改造,发现在泛型实例初始化的时候,得不到想要的泛型。或者需要强制转换。

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_泛型依赖注入.zip

    在Java配置类中,我们可以使用`@Configuration`和`@Bean`注解来创建和管理Bean,同时使用`@TypeChecked`注解确保类型安全的泛型注入。 7. **Spring的类型转换系统**:Spring还提供了一套完整的类型转换系统,可以...

    SSH笔记-泛型依赖注入

    在Spring 4版本中,泛型依赖注入是一项重要的特性,它极大地提高了代码的灵活性和可维护性。本笔记将深入探讨SSH中的Spring框架如何实现泛型依赖注入。 首先,我们来理解泛型的基本概念。泛型是Java SE 5引入的一种...

    再发一个基于Hibernate+Spring 泛型GenericDao 的工程源码.

    Spring框架则是一个全面的企业级应用开发框架,提供了依赖注入、事务管理、AOP(面向切面编程)等功能,常与Hibernate结合使用以构建松耦合、模块化的应用程序。 泛型是Java 5引入的一个特性,允许在类、接口和集合...

    Java反射、泛型和注解实战之Spring核心注入IOC的实现

    通过这个实战项目,你可以深入理解Java反射、泛型和注解的用法,并且了解到如何利用它们构建一个基本的依赖注入系统,这将有助于你更好地理解和使用Spring框架。同时,这样的实践也有助于提升你的编程技能,使你能够...

    Struts2+hibernate+spring整合泛型DAO

    总结来说,"Struts2+hibernate+spring整合泛型DAO"是一种常见的Java Web开发模式,它利用三大框架的优势,结合泛型设计,提高了代码复用,降低了维护成本,使得开发者能更专注于业务逻辑,而不是基础架构。

    关于spring boot中几种注入方法的一些个人看法

    @Component 是一个泛型注解,可以用来标注任何类,使其成为 Spring 的一个组件。@Component 可以使用在类上,以便 Spring 框架可以自动检测和实例化该类。 4. @Configuration @Configuration 是一个注解,用来标注...

    spring4.0 Generic Qualifier(泛型限定).docx

    在Spring 4.0中,一个重要的改进是引入了对泛型依赖注入的支持,这使得开发者可以更加精确地控制依赖关系,从而提高了代码的可读性和类型安全性。在描述的示例中,我们看到`BaseDao`是一个泛型抽象类,它有一个泛...

    Struts2 Spring3 Hibernate 注解功能 DAO 泛型 通用分页

    2. **Spring3**:Spring是Java企业级应用的全面解决方案,包括依赖注入(DI)、面向切面编程(AOP)以及声明式事务管理等。Spring3引入了大量注解,如`@Autowired`实现自动装配,`@Service`、`@Repository`和`@...

    spring4最新源代码

    Spring4加强了对依赖注入(Dependency Injection,DI)的支持,使得配置更加灵活,同时也支持了基于注解的配置,减少了XML配置的使用。例如,@Component、@Service、@Repository和@Controller注解使得bean的声明更加...

    Spring中初始化泛型类的方法实例

    在Spring框架中,初始化泛型类是一个常见的需求,特别是在创建依赖注入的Bean时。本文将深入探讨Spring如何处理泛型类的初始化,并提供实例来帮助理解。 首先,我们需要理解Java中的泛型。泛型允许我们在类、接口和...

    Hibernate泛型DAO(结合spring模板支持)

    Spring的依赖注入机制还能帮助我们在需要的地方注入DAO实例,简化了服务层的代码。 至于`Dao经典泛型.doc`文件,可能是更深入的关于Hibernate泛型DAO的文档,可能包含了如何配置Spring、如何处理复杂查询以及如何...

    精通spring4.x代码

    Spring4.x引入了类型安全的依赖注入,允许在编译时检查依赖关系,减少了运行时错误的可能性。这得益于Java 8的泛型和方法引用的支持,使得配置更加简洁且易于理解。 2. **Java 8支持** Spring4.x全面支持Java 8,...

    spring4示例代码

    spring的生命周期及BeanPostProcessor的使用,注解方式创建bean 及使用Autowried标签关联类的属性 ,泛型依赖注入的使用 spring-3 演示使用动态代理模式实现面向切面编程 使用注解方式进行AOP编程及使用配置xml方式...

    泛型 反射 相关概念方法使用

    Spring的依赖注入可以通过反射来创建和配置对象,而泛型则用于确保容器中存储的对象类型正确。此外,很多工具类库,如Apache Commons Lang和Google Guava,也利用泛型和反射提高了代码的灵活性和可维护性。 总的来...

    ssh2 + dao泛型

    Spring提供依赖注入和AOP(面向切面编程),Struts处理MVC(模型-视图-控制器)架构中的视图和控制,Hibernate则负责对象-关系映射(ORM),简化了数据库操作。SSH2的组合使得开发者能够高效、安全地构建复杂的应用...

    SpringDemo:Spring 框架知识案例

    1.创建第一个 Spring 程序案例 2.Spring IoC案例 3.Spring Bean案例 4.Spring 表达式语言案例 5.Spring xml 配置案例 ...7.Spring 泛型依赖注入案例 8.Spring AOP案例 9.Spring JDBCTemplate案例 10.Spring 事务案例

    JdbcTemplate通用泛型Dao实现

    `来代替SQL语句中的具体值,通过`PreparedStatement`防止SQL注入。 2. **结果映射**:查询结果通常需要映射到Java对象。可以使用`RowMapper`或`ResultSetExtractor`来完成这个任务。 3. **事务管理**:`JdbcTemplate...

    Spring相关测试1全部

    8. **泛型依赖注入**:Spring支持泛型类型的依赖注入,使得在不牺牲类型安全性的前提下,可以更加灵活地管理bean之间的依赖关系。这在处理复杂的数据结构时特别有用。 通过深入理解并熟练运用这些概念,开发者可以...

    spring.zip

    总的来说,Spring4.0的更新强化了其作为Java开发基石的地位,通过泛型注入、SpEL、验证框架和REST支持,提供了更加高效、灵活和强大的开发工具。这些知识点对于任何想要深入理解和使用Spring框架的开发者来说都是至...

Global site tag (gtag.js) - Google Analytics