spring 4 泛型注入

spring 4 泛型注入最近对系统进行改造,发现在泛型实例初始化的时候,得不到想要的泛型。或者需要强制转换。spring4开始支持泛型对象初始化,初始化方法如下:注:使用配置文件的方法暂时还没有发现,下面是使用javaannotation的方法:packagecom.mitchz..toolkit.chain;importjava.util.List;importjava.util.M

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159970.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • RuntimeException异常

    RuntimeException异常/*Exception中有一个特殊的子类异常RuntimeException(运行时异常)。 *RuntimeException非常特殊,它的的子类也可以直接抛出,不用声明。 *1.如果在函数内容抛出该异常,喊上可以不用声音,编译通过。 *2.如果函数上声明了该异常,调用者可以不用进行处理,编译一样能通过。 *3.之所以不用在函数上声明,因为不需要让调用者处理。 *4

    2022年7月24日
    35
  • gmapping matlab实现_gmapping学习

    gmapping matlab实现_gmapping学习一、机器人地图机器人地图一般分为三种类型:栅格地图,拓扑地图,特征地图1、栅格地图栅格地图栅格地图,在物流信息技术中有所涉猎,其就是构建一个个“小方块”,利用颜色信息来区分的地图的位置信息。在机器人建图中,栅格地图容易构建,表示且保存位置的唯一,对于短路径的规划方便;但栅格地图的路径规划效率不高,空间浪费(栅格的分辨率不依赖于环境的复杂度)并且也需要精确的机器人位置估计,其对于物体识别的人机交互问…

    2022年6月16日
    35
  • onclick与addEventListener区别

    onclick与addEventListener区别这次做项目遇到了这个问题,本来习惯性的每次都写的是addEventListener绑定click事件。但是当用addEventListener绑定了多次click事件的时候,引发了我的思考,这两者有区别吗?具体的事件分析可查看另一篇文章结论:1.onclick事件在同一时间只能指向唯一对象2.addEventListener给一个事件注册多个listener3.addEventLi…

    2022年7月12日
    24
  • Cocos2dx 3.0开发环境的搭建–Eclipse建立在Android工程

    Cocos2dx 3.0开发环境的搭建–Eclipse建立在Android工程

    2022年1月15日
    35
  • webstorm安装使用教程

    webstorm安装使用教程webstorm 安装教程

    2025年9月19日
    4
  • thinkphp3.2配置redis缓存和文件缓存

    thinkphp3.2配置redis缓存和文件缓存

    2021年10月26日
    84

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号