1 文件结构 

2 具体类

 2.1两个抽象类,在Service里面写公共的方法,在各自的具体实现类里面写各自的方法

package repo;

import model.User;

/**
* Created by pinker on 2016/10/30.
*/
public abstract class Repository<T> {
public abstract T getAllUser() throws Exception;
}
package service;

import model.User;
import org.springframework.beans.factory.annotation.Autowired;
import repo.Repository; /**
* Created by pinker on 2016/10/30.
*/
public abstract class Service<T>{
@Autowired
private Repository<T> repository; public abstract T getAllUser() throws Exception; public void save()throws Exception{
System.out.println("Service----------->"+repository);
}
}
2.2 实现类
package repoimpl;

import model.User;
import repo.Repository;
/**
* Created by pinker on 2016/10/30.
*/
@org.springframework.stereotype.Repository
public class UserRepository extends Repository<User> {
@Override
public User getAllUser() throws Exception {
User user = new User(1, "HS", 23);
return user;
}
}
package serviceimpl;

import model.User;
import org.springframework.beans.factory.annotation.Autowired;
import repoimpl.UserRepository;
import service.Service; /**
* Created by pinker on 2016/10/30.
*/
@org.springframework.stereotype.Service
public class UserService extends Service<User> {
@Autowired
private UserRepository userRepository; @Override
public User getAllUser() throws Exception {
return userRepository.getAllUser();
}
}
2.3 测试类(偷懒了,因为只用了两个包,不是测试的写法)
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import serviceimpl.UserService; /**
* Created by pinker on 2016/10/30.
*/ public class test {
public static void main(String[] args) throws Exception {
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:/Spring.xml");
UserService userService = (UserService) context.getBean("userService");
userService.save();
System.out.println(userService.getAllUser());
}
}
2.4 结果

可以看出,里面既可以调用公共方法也可以调用自己特有的实现类及自己的方法
 
 

spring4新特性-泛型依赖注入的更多相关文章

  1. Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC 配置校验器

    Spring4新特性——泛型限定式依赖注入 Spring4新特性——核心容器的其他改进 Spring4新特性——Web开发的增强 Spring4新特性——集成Bean Validation 1.1(J ...

  2. Spring4学习回顾之路10-Spring4.x新特性:泛型依赖注入

    泛型依赖注入:Spring 4.x中可以为子类注入子类对应的泛型类型的成员变量的引用. 话语太过抽象,直接看代码案例,依次建立如下代码: User.java package com.lql.sprin ...

  3. Spring框架入门之Spring4.0新特性——泛型注入

    Spring框架入门之Spring4.0新特性——泛型注入 一.为了更加快捷的开发,为了更少的配置,特别是针对 Web 环境的开发,从 Spring 4.0 之后,Spring 引入了 泛型依赖注入. ...

  4. Spring新特性_泛型依赖注入

    泛型依赖注入 package com.tanlei.spring.generic; import org.springframework.beans.factory.annotation.Autowi ...

  5. 转载--浅谈spring4泛型依赖注入

    转载自某SDN-4O4NotFound Spring 4.0版本中更新了很多新功能,其中比较重要的一个就是对带泛型的Bean进行依赖注入的支持.Spring4的这个改动使得代码可以利用泛型进行进一步的 ...

  6. Spring4新特性简述

    Spring是一个java世界中极其流行 的开源框架.Spring的初衷是降低企业级开发的复杂性,并试图通过POJO对象实现之前EJB这类重型框架才能实现的功能.Spring不仅仅对服务 端开发有用, ...

  7. Spring(十六):泛型依赖注入

    简介: Spring4.X之后开始支持泛型依赖注入. 使用示例: 1.定义实体 package com.dx.spring.bean.componentscan; import java.io.Ser ...

  8. Spring基础—— 泛型依赖注入

    一.为了更加快捷的开发,为了更少的配置,特别是针对 Web 环境的开发,从 Spring 4.0 之后,Spring 引入了 泛型依赖注入. 二.泛型依赖注入:子类之间的依赖关系由其父类泛型以及父类之 ...

  9. Java JDK5新特性-泛型

    2017-10-30 22:47:11 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型. 泛型的本质 ...

随机推荐

  1. 大数据算法设计模式(2) - 左外链接(leftOuterJoin) spark实现

    左外链接(leftOuterJoin) spark实现 package com.kangaroo.studio.algorithms.join; import org.apache.spark.api ...

  2. cocos2dx - shader实现任意动画的残影效果

    本节主要讲利用cocos2dx机制实现opengl es shader脚本的绘制 这里先看下最终效果:                      这里分别实现了灰度效果及残影的效果. 一.绘制基类 这 ...

  3. Java-JMS Bug记录

    1.Junit测试时,使用for循环发送JMS(ReportQuestionSender)的时候,监听器(ReportQuestionListener)只接受到一条消息. 原因:使用Junit测试会阻 ...

  4. java遍历hashMap、hashSet、Hashtable

    一.遍历HashMap Map<Integer, String> map = new HashMap<Integer, String>(); 方法一:效率高 for(Entry ...

  5. sharepoint 创建个人网站

    One of the SharePoint 2013 puzzle pieces which got some major improvements are My Sites, User Profil ...

  6. [在线Demo]使用Hibernate多租户实现SaaS服务

    上一篇文章 基于Hibernate实现多租户(Multi-Tendency)功能简单介绍了利用Hibernate的多租户功能提供SaaS服务的方法,但其中有很多不足,后来都得到了解决. 我尝试过抽取实 ...

  7. ALSA和Pulseaudio

    小记一下,Deadbeef如果使用ALSA作为音频输出的话,会导致其他说有使用pulseaudio的程序[如Chrome]没声音.....[但是SMplayer使用ALSA的话不会...]

  8. JDBC的基本用法

    一.编程步骤 1.加载驱动 Class forName("com.mysql.jdbc.Driver"):mysql驱动 Class forName("oralce.jd ...

  9. Strtus2框架笔记

    Struts2以WebWork优秀的设计思想为核心,吸收了 Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架. Struts2引入了几个新的框架特性:从逻辑中分 ...

  10. 一个简单大方的赞后+1,踩后-1js动画效果

    js部分 <script type="text/javascript"> <!-- $(document).ready(function(e) { $('a.zh ...