【坑】Spring中抽象父类属性注入,子类调用父类方法使用父类注入属性
运行环境
idea 2017.1.1
spring 3.2.9.RELEASE
需求背景
需要实现一个功能,该功能有2个场景A、B,大同小异
抽象一个抽象基类Base,实现了基本相同的方法BaseMethod,其中使用到Bean类中的方法
A、B分别继承Base,重写BaseMethod方法,在调用super.BaseMethod()的基础上补充自己的差异代码
错误实现与描述
1、在Base基类中注入Bean,使用@Resource注解,在子类A、B中调用super.BaseMethod()时,其中的Bean报空指针
——不能使用注解注入抽象类的属性?
2、在bean.xml中配置化注入Bean,配置bean时标明abstract="true",但部署报错
——没有在类中实现setter方法。。
3、实现了setter方法,部署成功,但是运行时Bean仍然报空指针
——
解决方法
1、在beans.xml中配置注入,配置bean时标明abstract="true"
        <bean id="baseBean"  class="com.shane.Base"  abstract="true">
		<property name="bean" ref="bean"></property>
	</bean>
2、在Base中实现Bean的setter
3、在子类中也要实现setter。。
网上找到的一个解决方法。。不知道有没有更好的。。总感觉这样写很坑。。
【坑】Spring中抽象父类属性注入,子类调用父类方法使用父类注入属性的更多相关文章
- Java中方法的继承以及父类未被子类覆盖的方法调用的问题
		
在看java继承这一块的时候发现了一个问题,即父类未被子类覆盖的方法是如何调用的? 是子类拥有了父类的该方法只是没有显示表示,还是子类调用了父类的该方法. 为此做了一下验证 代码如下: public ...
 - Spring中EmptyResultDataAccessException异常产生的原理及处理方法
		
Spring中EmptyResultDataAccessException异常产生的原理及处理方法 Spring中使用JdbcTemplate的queryForObject方法,当查不到数据时会抛出如 ...
 - spring中的传播性 个人认为就是对方法的设置 其作用能传播到里面包含的方法上
		
spring中的传播性 个人认为就是对方法的设置 其作用能传播到里面包含的方法上
 - (spring-第3回【IoC基础篇】)spring的依赖注入-属性、构造函数、工厂方法等的注入(基于XML)
		
Spring要把xml配置中bean的属性实例化为具体的bean,"依赖注入"是关卡.所谓的"依赖注入",就是把应用程序对bean的属性依赖都注入到spring ...
 - JavaEE开发之Spring中Bean的作用域、Init和Destroy方法以及Spring-EL表达式
		
上篇博客我们聊了<JavaEE开发之Spring中的依赖注入以及AOP>,本篇博客我们就来聊一下Spring框架中的Bean的作用域以及Bean的Init和Destroy方法,然后在聊一下 ...
 - 定义抽象类Shape,抽象方法为showArea(),求出面积并显示,定义矩形类Rectangle,正方形类Square,圆类 Circle,根据各自的属性,用showArea方法求出各自的面积,在main方法中构造3个对象,调用showArea方法。(体现多态)
		
实现多态的三个条件:1.要有继承2.要有抽象方法重写3.用父类指针(引用)指向子类对象 重载重写重定义的区别: 1.重载:在同一个类中进行; 编译时根据参数类型和个数决定方法调用; 子类无法重载父类; ...
 - 父类指针指向子类内存,为什么当父类的成员函数不加virtual时,访问的还是父类的成员函数,而不是子类同名的成员函数
		
我认为是这样,类的成员函数都在代码区,不同的类的成员函数在代码区有自己的类名称空间限制,类的虚函数在虚函数表中,程序执行的时候,是先在虚函数表中找该成员函数,如果没有找到,就去该类在代码区的成员函数中 ...
 - 一次性讲清楚spring中bean的生命周期之一:getSingleton方法
		
要想讲清楚spring中bean的生命周期,真的是不容易,以AnnotationConfigApplicationContext上下文为基础来讲解bean的生命周期,AnnotationConfigA ...
 - Spring AOP不拦截从对象内部调用的方法原因
		
拦截器的实现原理很简单,就是动态代理,实现AOP机制.当外部调用被拦截bean的拦截方法时,可以选择在拦截之前或者之后等条件执行拦截方法之外的逻辑,比如特殊权限验证,参数修正等操作. 但是最近在项目中 ...
 - java反射调用私有方法和修改私有属性
		
//调用私有方法package com.java.test; public class PrivateMethod { private String sayHello(String name) { r ...
 
随机推荐
- jprofile 远程监控linux上的jvm
			
环境 客户端:win7+jprofiler_windows-x64_10_0_4.exe linux服务器:tomcat7+jdk1.7+jprofiler_linux_10_0_4.sh 一.客户端 ...
 - 【Python】机器学习之单变量线性回归 利用批量梯度下降找到合适的参数值
			
[Python]机器学习之单变量线性回归 利用批量梯度下降找到合适的参数值 本题目来自吴恩达机器学习视频. 题目: 你是一个餐厅的老板,你想在其他城市开分店,所以你得到了一些数据(数据在本文最下方), ...
 - Leetcode之分治法专题-654. 最大二叉树(Maximum Binary Tree)
			
Leetcode之分治法专题-654. 最大二叉树(Maximum Binary Tree) 给定一个不含重复元素的整数数组.一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素. 左 ...
 - shell学习笔记3-后台执行命令
			
cron 系统调度进程,使用它在每天的某时间或一周.一月的不同时间运行 at 使用它在一个特点的时间允许一些特殊的作业 & 使用它在后台允许一个占用时间不长的进程 Nohup 使用它在后台运行 ...
 - 一道RAID面试题
 - Java总复习内容
			
StringBuffer定义时需要用正确的方式 例如: StringBuffer xxx = new StringBuffer("雯雯是猪"); 使用StringBuffer的连接 ...
 - segi日期计算笔记
			
计算月末最后一天 /* * 输入年月格式YM(如:201911),输入该月最后一天 */ int monthEndDay(int YM) { int endDay; ; ; == M) { == Y ...
 - HanLP-朴素贝叶斯分类预测缺陷
			
文章整理自 baiziyu 的知乎专栏,感兴趣的朋友可以去关注下这位大神的专栏,很多关于自然语言处理的文章写的很不错.昨天看到他的分享的两篇关于朴素贝叶斯分类预测的文章,整理了一下分享给给大家,文章已 ...
 - thinkphp中return $this->fetch的问题
			
当reture放在foreach循环外面,也就是现在的位置的时候,会报错.如下图.但当return放在foreach语句里面的时候就不会报错,但因为return会结束语句,这也就导致了foreach只 ...
 - centos  安装go
			
[root@golong-learning src]# wget https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz # 下载 [root@gol ...