最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在spring中實例化bean無效的問題

 更新時間:2022年02月25日 10:34:28   作者:croder  
這篇文章主要介紹了在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。最后經(jīng)過查找,發(fā)現(xiàn)沒有導入Struts2-Spring-plugin.jar的原因。 

spring實例化bean順序問題,導致注入失敗

我們可以通過Spring進行非常方便的管理bean,只需要在類上面加一個注解就可以進行bean的注入,也就是所謂的DI。今天碰到了個小問題,來總結(jié)一下。

問題如下

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;
? ? }
}

但是發(fā)現(xiàn)這個str始終是null。

原因

在實例化TestBean的時候不能確認str已經(jīng)實例化,所以是先建立對象,再進行注入str的值。那么創(chuàng)建對象的時候,根據(jù)構(gòu)造方法創(chuàng)建的對象中,還沒有注入str的值,所以只能為null。

解決

我們需要確認在str已經(jīng)注入進來的情況下再對父類中的str賦值,那么這個時候需要子類實現(xiàn) InitializingBean 這個接口,實現(xiàn)其中的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;
? ? }
}

問題成功解決。注入成功

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java反射機制的精髓講解

    Java反射機制的精髓講解

    今天小編就為大家分享一篇關(guān)于Java反射機制的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 淺談Java中的可變參數(shù)

    淺談Java中的可變參數(shù)

    下面小編就為大家?guī)硪黄獪\談Java中的可變參數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • java版簡單的猜數(shù)字游戲?qū)嵗a

    java版簡單的猜數(shù)字游戲?qū)嵗a

    猜數(shù)字游戲是一款經(jīng)典的游戲,該游戲說簡單也很簡單,說不簡單確實也很難,那么下面這篇文章主要給大家介紹了java版簡單的猜數(shù)字游戲的相關(guān)資料,文中給出了詳細的實現(xiàn)分析和示例代碼供大家參考學習,需要的朋友們下面來一起看看吧。
    2017-05-05
  • java關(guān)閉流連接IO工具類

    java關(guān)閉流連接IO工具類

    這篇文章主要為大家詳細介紹了java關(guān)閉流連接IO工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • java 流與 byte[] 的互轉(zhuǎn)操作

    java 流與 byte[] 的互轉(zhuǎn)操作

    這篇文章主要介紹了java 流與 byte[] 的互轉(zhuǎn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Spring AOP 的組成和實現(xiàn)

    Spring AOP 的組成和實現(xiàn)

    這篇文章主要介紹了Spring AOP 的組成和實現(xiàn),AOP 是一種思想,Spring AOP 是這種思想的具體實現(xiàn),本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • SpringBoot整合freemarker的講解

    SpringBoot整合freemarker的講解

    今天小編就為大家分享一篇關(guān)于SpringBoot整合freemarker的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Java接口方法默認靜態(tài)實現(xiàn)代碼實例

    Java接口方法默認靜態(tài)實現(xiàn)代碼實例

    這篇文章主要介紹了Java接口方法默認靜態(tài)實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Java類型通配符應用實戰(zhàn)分析

    Java類型通配符應用實戰(zhàn)分析

    這篇文章主要介紹了Java類型通配符應用實戰(zhàn),簡單分析了Java類型通配符概念、原理并結(jié)合實例形式給出了Java類型通配符相關(guān)使用技巧,需要的朋友可以參考下
    2019-07-07
  • Java線程間共享與協(xié)作詳細介紹

    Java線程間共享與協(xié)作詳細介紹

    這篇文章主要介紹了Java線程間共享與協(xié)作詳細介紹,Java?支持多個線程同時訪問一個對象或者對象的成員變量,更多相關(guān)介紹需要的朋友可以參考一下
    2022-09-09

最新評論

西畴县| 黄梅县| 蕲春县| 栾川县| 北安市| 会昌县| 无棣县| 根河市| 延安市| 临沂市| 屏东县| 中江县| 中山市| 光山县| 合阳县| 西贡区| 田林县| 上蔡县| 通许县| 浠水县| 通河县| 瑞金市| 衡阳县| 乌拉特前旗| 崇义县| 手游| 临安市| 吉安县| 正蓝旗| 泊头市| 屏东县| 丽江市| 林州市| 故城县| 昔阳县| 措美县| 阳信县| 东乡县| 海阳市| 阜城县| 肃北|