Spring 泛型依赖注入

news2024/11/17 23:30:08

Spring 泛型依赖注入,是利用泛型的优点对代码时行精简,将可重复使用的代码全部放到一个类之中,方便以后的维护和修改,同时在不增加代码的情况下增加代码的复用性。

示例代码:

  1. 创建实体类
    Product
    
    package test.spring.model;
    
    public class Product {
    	private int id ;
    	private String name;
    	/* setter getter省略 */
    	@Override
    	public String toString() {
    		return "Product [id=" + id + ", name=" + name + "]";
    	}
    	
    }
    User
    package test.spring.model;
    
    public class User {
    	private int id;
    	private String name;
    
    	/* setter、getter省略 */
    
    	@Override
    	public String toString() {
    		return "User [id=" + id + ", name=" + name + "]";
    	}
    
    	public User() {
    		super();
    	}
    
    }
  2. 创建Dao层相关接口及实现类

    对dao层的相同功能提取出来,创建一个带泛型的BaseDao类用于共用。
    package test.spring.Dao;
    
    import org.springframework.stereotype.Repository;
    
    /*必须加入注解,将BaseDao注入Spring容器,因为BaseService中有引用该类*/
    @Repository
    public class BaseDao<T> {
    	public void add(T t) {
    		System.out.println("BaseDao...."+t);
    	}
    
    }

    UserDao接口
    package test.spring.Dao;
    
    import test.spring.model.User;
    
    public interface UserDao {
    	public void add(User user);
    
    }
    

    UserDao实现类
     

    package test.spring.Dao;
    import org.springframework.stereotype.Repository;
    
    import test.spring.model.User;
    @Repository ("userDaoImpl")
    public class UserDaoImpl extends BaseDao<User> implements UserDao {
    
    }
    

    ProductDao接口
     

    package test.spring.Dao;
    
    import test.spring.model.Product;
    
    public interface ProductDao {
    	public void add(Product pro);
    }

    ProductDao实现类
     

    package test.spring.Dao;
    
    import org.springframework.stereotype.Repository;
    
    import test.spring.model.Product;
    @Repository("productDao")
    public class ProductDaoImpl extends BaseDao<Product> implements ProductDao {
    
    
    }

  3. Spring配置
    <?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.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
    	<context:component-scan base-package="test.spring" >	</context:component-scan>
    	
    </beans>
  4. 测试
    package testSpring;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import test.spring.model.Product;
    import test.spring.model.User;
    import test.spring.service.ProductService;
    import test.spring.service.UserService;
    
    public class TestSpring {
    	@Test
    	public void testUser() {
    		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
    		
    		  UserService userService=(UserService) ac.getBean("userService");
    		  userService.add(new User());
    		 System.out.println("-----------------------------");
    		ProductService  proService= (ProductService) ac.getBean("prodcutService");
    		proService.add(new Product());
    
    	}
    }
    结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1896663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年APMCP亚太杯中文赛B题完整解析 | 代码与论文分享

B题 洪水灾害的数据分析与预测 解题思路问题一问题二问题三问题四 论文问题一2.1 Kolmogorov-Smirnov分布检验模型的建立与求解2.2 基于斯皮尔曼相关系数的相关性检验 代码问题一Q1_1.mQ1_2.mQ1_3.m &#xff08;后续资料更新 关注公众号 云顶数模 领取相关资料&#xff09; 解…

Twitter API接口教程编程指南!如何使用?

Twitter API接口教程怎么用&#xff1f;如何高效利用API接口发信&#xff1f; 无论是为了分析趋势、构建自动化工具&#xff0c;还是开发社交媒体应用&#xff0c;掌握Twitter API接口是至关重要的。AokSend将详细介绍Twitter API接口教程的相关内容&#xff0c;帮助您快速上手…

【网络安全】第3讲 消息认证技术(笔记)

一、认证技术概述 1、网络常见攻击 2、对信息网络安全的攻击有&#xff08;两种类型&#xff09; &#xff08;1&#xff09;被动攻击 —— 加密技术 通过侦听和截取手段获取数据 &#xff08;2&#xff09;主动攻击 —— 认证技术 通过伪造、重放、篡改、乱序等手段改变数据…

“谋士三国”诸葛亮的锦囊妙计 - 策略模式

“当代码如三国&#xff0c;智慧如孔明&#xff0c;何愁天下设计不归一统&#xff1f;” 乱世之中&#xff0c;英雄辈出。三国的战场上&#xff0c;不仅刀光剑影&#xff0c;更有智慧的较量。诸葛亮的锦囊妙计&#xff0c;不正是今日软件设计中策略模式的完美写照吗&#xff1…

五、框架实战:SSM整合原理和实战-个人版

五、框架实战&#xff1a;SSM整合原理和实战 文章目录 五、框架实战&#xff1a;SSM整合原理和实战一、SSM整合理解1.1 什么是SSM整合&#xff1f;1.2 SSM整合核心问题明确1.2.1 第一问&#xff1a;SSM整合需要几个IoC容器&#xff1f;1.2.2 第二问&#xff1a;每个IoC容器对应…

数据结构预科

在堆区申请两个长度为32的空间&#xff0c;实现两个字符串的比较【非库函数实现】 要求&#xff1a; 1> 定义函数&#xff0c;在对区申请空间&#xff0c;两个申请&#xff0c;主函数需要调用2次 2> 定义函数&#xff0c;实现字符串的输入&#xff0c;void input(char …

深度学习 --- stanford cs231学习笔记八(训练神经网络之dropout)

6&#xff0c;dropout 6&#xff0c;1 线性分类器中的正则化 在线性分类器中&#xff0c;我们提到过正则化&#xff0c;其目的就是为了防止过度拟合。例如&#xff0c;当我们要用一条curve去拟合一些散点的数据时&#xff0c;常常是不希望训练出来的curve过所有的点&#xff0c…

【C#】ProgressBar进度条异步编程思想

1.控件介绍 进度条通常用于显示代码的执行进程进度&#xff0c;在一些复杂功能交互体验时告知用户进程还在继续。 在属性栏中&#xff0c;有三个值常用&#xff1a; Value表示当前值&#xff0c;Minimum表示进度条范围下限&#xff0c;Maximum表示进度条范围上限。 2.简单实…

探索人工智能在电子商务平台与游戏发行商竞争中几种应用方式

过去 12 年来&#xff0c;电脑和视频游戏的发行策略发生了巨大变化。数字游戏的销量首次超过实体游戏的销量 在20132020 年的封锁进一步加速了这一趋势。例如&#xff0c;在意大利&#xff0c;封锁的第一周导致数字游戏下载量 暴涨174.9%. 展望未来&#xff0c;市场有望继续增…

配置基于不同IP地址的虚拟主机

定义配置文件vhost.conf <directory /www> allowoverride none require all granted </directory> <virtualhost 192.168.209.136:80> documentroot /www servername 192.168.209.136 </virtualhost><virtualhost 192.168.209.138:80> document…

电阻负载柜或无功负载组?

选择正确电源测试解决方案的快速指南 如果您在市场上寻找负载组&#xff0c;您无疑会遇到电阻式和反应式这两个术语。为了使负载组规范尽可能简单&#xff0c;您需要了解不同类型的负载测试解决方案之间的区别&#xff0c;以及哪种解决方案最适合您的应用。 什么是电阻负载组&…

AntDesign上传组件upload二次封装+全局上传hook使用

文章目录 前言a-upload组件二次封装1. 功能分析2. 代码详细注释3. 使用到的全局上传hook代码4. 使用方式5. 效果展示 总结 前言 在项目中&#xff0c;ant-design是我们常用的UI库之一&#xff0c;今天就来二次封装常用的组件a-upload批量上传组件,让它用起来更方便。 a-uploa…

Gartner发布软件供应链安全指南:软件供应链攻击造成的损失将从 2023 年的460亿美元上升到2031年的1380亿美元

软件供应链安全是一个关键的风险和合规性问题&#xff0c;但大多数组织都以分散的方式处理它。缺乏一个包罗万象的框架会遗留安全漏洞。通过实施三支柱框架&#xff0c;安全和风险管理领导者可以确保广泛的保护。 主要发现 对软件供应链的攻击给组织带来重大的安全、监管和运营…

Twitter群发消息API接口的功能?如何配置?

Twitter群发消息API接口怎么申请&#xff1f;如何使用API接口&#xff1f; 为了方便企业和开发者有效地与用户互动&#xff0c;Twitter提供了各种API接口&#xff0c;其中Twitter群发消息API接口尤为重要。AokSend将详细介绍Twitter群发消息API接口的功能及其应用场景。 Twit…

船舶雷达与导航中M7/8防水插座应用优势

船舶雷达与导航系统是船舶安全航行的重要组成部分&#xff0c;而7/8防水插座在这些系统中起着至关重要的作用。其中防水MIN-change 7/8"航空法兰插座成型预铸电缆式、组装式、面板式法兰座、T-型三通可选 7/8防水插座的电气性能 7/8防水插座因其优良的电气性能而被广泛应…

【matlab 路径规划】基于改进遗传粒子群算法的药店配送路径优化

一 背景介绍 本文分享的是一个基于订单合并的订单分配和路径规划联合优化&#xff0c;主要背景是骑手根据客户需求&#xff0c;从药店取药之后进行配送&#xff0c;配送的过程中考虑路径的长度、客户的服务时间窗、车辆的固定成本等要素&#xff0c;经过建模和优化得到最优的配…

收银系统源码-营销活动-幸运抽奖

1. 功能描述 营运抽奖&#xff1a;智慧新零售收银系统&#xff0c;线上商城营销插件&#xff0c;商户/门店在小程序商城上设置抽奖活动&#xff0c;中奖人员可内定&#xff1b; 2.适用场景 新店开业、门店周年庆、节假日等特定时间促销&#xff1b;会员拉新&#xff0c;需会…

【漏洞复现】万户协同办公平台——反序列化

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 万户协同办公平台ezEIP是一个综合信息基础应用平台&#xff0c;…

14-11 2024 年的 13 个 AI 趋势

2024 年的 13 个 AI 趋势 人工智能对环境的影响和平人工智能人工智能支持的问题解决和决策针对人工智能公司的诉讼2024 年美国总统大选与人工智能威胁人工智能、网络犯罪和社会工程威胁人工智能治疗孤独与对人工智能的情感依赖人工智能影响者中国争夺人工智能霸主地位人工智能…