我的编程空间,编程开发者的网络收藏夹
学习永远不晚

spring中实例化bean无效怎么解决

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

spring中实例化bean无效怎么解决

这篇文章主要讲解了“spring中实例化bean无效怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“spring中实例化bean无效怎么解决”吧!

spring中实例化bean无效

在做Struts2和Spring整合时遇到Spring实例化无效的情况,

Action中代码如下

public class UserAction extends ActionSupport {    @Resource    private UserService userService;    public String execute(){        //userService.saveUser(new Object());        System.out.println(userService);        System.out.println("struts2spring整合成功");        return "success";    }}

applicationContext.xml中配置如下

<?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"        xmlns:tx="http://www.springframework.org/schema/tx"        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd                http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">    <!-- 自动扫描与装配bean -->    <context:component-scan base-package="com.bjwl"></context:component-scan></beans>

通过注解实例化UserService时一直得到的是null。最后经过查找,发现没有导入Struts2-Spring-plugin.jar的原因。 

spring实例化bean顺序问题,导致注入失败

我们可以通过Spring进行非常方便的管理bean,只需要在类上面加一个注解就可以进行bean的注入,也就是所谓的DI。今天碰到了个小问题,来总结一下。

问题如下

public abstract class TestBean {    public String str;        public TestBean(){        this.str = initStr();    }        protected abstract String initStr();}public class TestSon extends TestBean {    @Resource    public String str;    @Override    protected String initStr() {        return this.str;    }}

但是发现这个str始终是null。

原因

在实例化TestBean的时候不能确认str已经实例化,所以是先建立对象,再进行注入str的值。那么创建对象的时候,根据构造方法创建的对象中,还没有注入str的值,所以只能为null。

解决

我们需要确认在str已经注入进来的情况下再对父类中的str赋值,那么这个时候需要子类实现 InitializingBean 这个接口,实现其中的afterPropertiesSet()

public class TestSon extends TestBean implements InitializingBean{    @Resource    public String str;    @Override    protected String initStr() {        return this.str;    }    @Override    public void afterPropertiesSet() throws Exception {        super.str = this.str;    }}

问题成功解决。注入成功

感谢各位的阅读,以上就是“spring中实例化bean无效怎么解决”的内容了,经过本文的学习后,相信大家对spring中实例化bean无效怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

spring中实例化bean无效怎么解决

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

spring中实例化bean无效怎么解决

这篇文章主要讲解了“spring中实例化bean无效怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“spring中实例化bean无效怎么解决”吧!spring中实例化bean无效在做S
2023-06-29

Spring中bean实例化怎么实现

本文小编为大家详细介绍“Spring中bean实例化怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Spring中bean实例化怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。bean实例化bean
2023-07-05

Spring createBeanInstance怎么实例化Bean

本篇内容介绍了“Spring createBeanInstance怎么实例化Bean”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Sprin
2023-07-05

Spring Bean实例化方式怎么实现

这篇“Spring Bean实例化方式怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring Bean实例化方式
2023-07-05

详解Spring中bean实例化的三种方式

今天我想来说说如何通过xml配置来实例化bean,其实也很简单。 使用xml配置来实例化bean共分为三种方式,分别是普通构造方法创建、静态工厂创建、实例工厂创建,OK,那么接下来我们来分别看看这几种方式。普通构造方法创建这种创建方式使我们
2023-05-31

spring中@Field注解无效怎么解决

在Spring中,@Field注解不是一个内置的注解。可能你是指的是javax.persistence.Field注解。如果你使用的是javax.persistence.Field注解,可能是因为该注解在Spring中无效。这是因为Spri
2023-08-16

Spring Bean的配置与实例化怎么实现

这篇文章主要介绍“Spring Bean的配置与实例化怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring Bean的配置与实例化怎么实现”文章能帮助大家解决问题。一、 Spring
2023-07-02

spring中bean注入无效怎么解决和new创建对象的区别是什么

这篇文章主要介绍“spring中bean注入无效怎么解决和new创建对象的区别是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“spring中bean注入无效怎么解决和new创建对象的区别是什么”
2023-06-29

mybatis拦截器无法注入spring bean怎么解决

这篇文章主要介绍“mybatis拦截器无法注入spring bean怎么解决”,在日常操作中,相信很多人在mybatis拦截器无法注入spring bean怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
2023-06-29

oracle无法实例化视图怎么解决

如果Oracle无法实例化视图,可能是因为视图的依赖对象不存在或者权限不足。以下是一些解决方法:确保视图所依赖的表或其他对象存在并且没有被修改或删除。检查当前用户是否具有访问视图所依赖的对象的权限,如果没有,需要向管理员请求相应的权限。
oracle无法实例化视图怎么解决
2024-03-05

sqlserver中row_number使用无效怎么解决

在SQL Server中,可以使用ROW_NUMBER函数来为结果集中的行分配一个唯一的连续编号。如果ROW_NUMBER函数无效,可能是由于以下几个原因:语法错误:请确保ROW_NUMBER函数的语法正确。正确的语法是ROW_NUMBER
sqlserver中row_number使用无效怎么解决
2024-04-09

sql中insert使用无效怎么解决

如果在SQL中使用INSERT语句时遇到无效情况,可能是因为存在以下一些常见问题:表结构不匹配:确保要插入的数据与目标表的列名和数据类型匹配。主键或唯一约束冲突:尝试插入的数据与表中已存在的主键或唯一约束冲突,需要确保插入的数据不会导致重复
sql中insert使用无效怎么解决
2024-05-06

linux图形化网络修改无效怎么解决

如果在Linux上进行图形化网络修改无效,可以尝试以下解决方法:1. 检查网络管理工具:确保使用的是适合你的Linux发行版的网络管理工具。不同的发行版可能使用不同的工具来管理网络设置。常见的网络管理工具包括NetworkManager和W
2023-10-19

android中widget使用无效怎么解决

确保你正确地添加了widget到你的主屏幕。有时候widget添加到主屏幕后可能需要重新启动设备才能生效。确保你的widget没有被禁用。有时候你可能会在设置中禁用了你的widget,需要去设置中重新启用。清除应用的缓存和数据。有时候应
android中widget使用无效怎么解决
2024-04-08

android中slider使用无效怎么解决

如果在Android中使用Slider控件时遇到无效的问题,可能是由于以下几个原因:检查Slider控件的属性设置是否正确。确保在布局文件中正确设置了Slider控件的属性,如最小值、最大值、当前值等。检查代码中是否正确引用了Slider控
android中slider使用无效怎么解决
2024-04-08

oracle中text组件无效怎么解决

在Oracle中,Text组件通常是指Oracle Text,用于全文搜索和文本分析的功能。如果Text组件无效,可能是由于以下几个原因造成的:没有正确安装或配置Oracle Text组件:确保Oracle Text已经正确安装并且已经在数
oracle中text组件无效怎么解决
2024-04-09

openstack中的实例显示无状态怎么解决

在OpenStack中,实例显示无状态通常是由于实例的临时文件或状态信息丢失导致的。以下是解决此问题的一些常见方法:1. 使用持久化存储:在启动实例时,可以将实例的数据存储到持久化存储(如Cinder卷)中。这样即使实例被重启或重新创建,数
2023-10-11

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录