聊聊spring继承的问题

 更新时间:2021年09月22日 11:32:03   作者:Younger成  
这篇文章主要介绍了spring继承的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

spring继承的问题

为什么输出是0呢?

因为是子类继承父类,实例对象调用的主要是左边的父类属性和方法,所以输出结果是以左边对象为主

spring注入有继承关系的类

通过配置文件

<bean id="sysActionService" class="com.service.impy.SysActionServiceImpy" parent="baseService" >    
      <property name="sysActionDao" ref="sysActionDao" />    
  </bean>   

通过注解

只需要在子类上加注解,父类上不用加会自动注入

package com.jeremy.spring.genericityDI;
public class BaseRepository{
}

BaseService:

package com.jeremy.spring.genericityDI;
import org.springframework.beans.factory.annotation.Autowired;
public class BaseService<T> {    
    @Autowired------//这里告诉IOC容器自动装配有依赖关系的Bean
    protected BaseRepository baseRepository;--------//这里是子类继承依赖关系
    public void add(){
        System.out.println("add..............");
        System.out.println(baseRepository);
    }
}

新建一个泛型类

User:

package com.jeremy.spring.genericityDI;
public class User {
}

新建BaseRepository和BaseService的子类

UserRepository:

package com.jeremy.spring.genericityDI;
import org.springframework.stereotype.Component;
@Component
public class UserRepository extends BaseRepository{    
}

UserService:

package com.jeremy.spring.genericityDI;
import org.springframework.stereotype.Service;
@Service
public class UserService extends BaseService{
}

在Spring的配置文件中配置自动装配带有注解的Bean  

<?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.0.xsd">
<context:component-scan base-package="com.jeremy.spring.genericityDI"></context:component-scan>
</beans>

测试代码和结果

测试代码:

@Test
    public void test() {
        ApplicationContext actx=new ClassPathXmlApplicationContext("Bean-genericity-di.xml");
        UserService userService=(UserService) actx.getBean("userService");
        userService.add();
    }

测试结果:

add..............

com.jeremy.spring.genericityDI.UserRepository@16546ef

从结果看,虽然子类没有建立依赖关系,但userRepository实例还是被实例化了,就证明了父类的依赖关系,子类是可以继承的

其实这里也可以说明,就算父类不是被IOC容器管理,但是建立关系时添加了@Autowired注解,父类的关系会被继承下来

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java项目工程代码深度刨析总结

    Java项目工程代码深度刨析总结

    一个项目工程里的代码是怎样的呢?对于初学者或者没有参与过项目的零经验同学这都是未知且让人好奇的,本篇文章带你一探究竟,踏入真实项目的大门
    2022-08-08
  • Java Swing实现扫雷小游戏

    Java Swing实现扫雷小游戏

    这篇文章主要为大家详细介绍了Java Swing实现扫雷小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 详解SpringMVC的两种实现方式

    详解SpringMVC的两种实现方式

    这篇文章主要介绍了SpringMVC的两种实现方式,方式一是通过实现Controller接口,方式二是使用注解开发,本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • 如何将二进制文件流转化为MockMultipartFile文件

    如何将二进制文件流转化为MockMultipartFile文件

    文章主要介绍了如何使用Spring框架中的MockMultipartFile类来模拟文件上传,并处理上传逻辑,包括获取二进制文件流、创建MockMultipartFile对象、处理上传逻辑和返回响应,还解释了MockMultipartFile的功能和二进制文件流的定义
    2025-02-02
  • java实现给图片加铺满的网格式文字水印

    java实现给图片加铺满的网格式文字水印

    这篇文章主要给大家介绍了关于java实现给图片加铺满的网格式文字水印的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • java堆栈跟踪工具jstack的使用教程

    java堆栈跟踪工具jstack的使用教程

    jstack(stack trace for java)是java虚拟机自带的一种堆栈跟踪工具,主要用于生成java虚拟机当前时刻的线程快照,下面我们就来学习一下它的具体使用吧
    2023-11-11
  • Java中StringUtils与CollectionUtils和ObjectUtil概念讲解

    Java中StringUtils与CollectionUtils和ObjectUtil概念讲解

    这篇文章主要介绍了Java中StringUtils与CollectionUtils和ObjectUtil概念,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-12-12
  • springboot如何将http转https

    springboot如何将http转https

    这篇文章主要介绍了springboot如何将http转https,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Java实现文件和base64流的相互转换功能示例

    Java实现文件和base64流的相互转换功能示例

    这篇文章主要介绍了Java实现文件和base64流的相互转换功能,涉及Java文件读取及base64 转换相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • 深入解读MVC模式和三层架构

    深入解读MVC模式和三层架构

    这篇文章主要介绍了深入解读MVC模式和三层架构,三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)的三层架构,各层之间采用接口相互访问,需要的朋友可以参考下
    2023-04-04

最新评论