springboot prototype設(shè)置多例不起作用的解決操作
大多數(shù)人會(huì)直接這樣寫:
@Bean
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public TestBean getTestBean() {
return new TestBean();
}
ConfigurableBeanFactory.SCOPE_PROTOTYPE的值就是prototype
但是發(fā)現(xiàn)Autowire的時(shí)候,每一個(gè)請(qǐng)求用的還是同一個(gè)單例對(duì)象,這是因?yàn)闆]設(shè)置多例的代理模式的問題,改成如下配置就可以了:
@Bean
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE, proxyMode = ScopedProxyMode.TARGET_CLASS)
public TestBean getTestBean() {
return new TestBean();
}
補(bǔ)充知識(shí):Spring注解@Scope("prototype")
今天發(fā)現(xiàn)一個(gè)問題:頁面查出來的記錄,其它業(yè)務(wù)對(duì)其進(jìn)行修改以后,再查詢發(fā)現(xiàn)修改之前的記錄仍然還在,后來發(fā)現(xiàn)是Action沒有加@Scope("prototype")注解的原因。
Spring默認(rèn)scope是單例模式,這樣只會(huì)創(chuàng)建一個(gè)Action對(duì)象,每次訪問都是同一個(gè)Action對(duì)象,數(shù)據(jù)不安全。
一個(gè)注冊(cè)的例子,如果沒加上這個(gè)注解,注冊(cè)完成后,下一個(gè)請(qǐng)求再注冊(cè)一次,Action里會(huì)保留上一次注冊(cè)的信息。
struts2是要求每次訪問都對(duì)應(yīng)不同的Action,scope="prototype"可以保證當(dāng)有請(qǐng)求的時(shí)候都創(chuàng)建一個(gè)Action對(duì)象。
以上這篇springboot prototype設(shè)置多例不起作用的解決操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springBoot基于webSocket實(shí)現(xiàn)掃碼登錄
最近做了個(gè)新項(xiàng)目,涉及到掃碼登錄。之前項(xiàng)目使用的是 ajax輪詢的方式。感覺太low了。所以這次用webSocket的方式進(jìn)行實(shí)現(xiàn),感興趣的可以了解一下2021-06-06
java判斷對(duì)象中某個(gè)屬性是否為空方法代碼
這篇文章主要給大家介紹了關(guān)于java判斷對(duì)象中某個(gè)屬性是否為空的相關(guān)資料,最近遇到后臺(tái)接收值的時(shí)候,需要對(duì)接收對(duì)象進(jìn)行非空校驗(yàn),需要的朋友可以參考下2023-07-07
SpringBoot下使用定時(shí)任務(wù)的方式全揭秘(6種)
這篇文章主要介紹了SpringBoot下使用定時(shí)任務(wù)的方式全揭秘(6種),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02
Spring Cloud OpenFeign REST服務(wù)客戶端原理及用法解析
這篇文章主要介紹了Spring Cloud OpenFeign REST服務(wù)客戶端原理及用法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
java設(shè)計(jì)模式之策略模式在促銷活動(dòng)場(chǎng)景中的使用案例
這篇文章主要為大家介紹了java設(shè)計(jì)模式之策略模式在促銷活動(dòng)場(chǎng)景中案例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
java使用IO流對(duì)數(shù)組排序?qū)嵗v解
在本篇文章里小編給大家整理的是一篇關(guān)于java使用IO流對(duì)數(shù)組排序?qū)嵗v解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-02-02
Spring boot基于JPA訪問MySQL數(shù)據(jù)庫的實(shí)現(xiàn)
本文主要介紹了Spring boot基于JPA訪問MySQL數(shù)據(jù)庫的實(shí)現(xiàn),Spring boot結(jié)合Jpa 能夠簡(jiǎn)化創(chuàng)建 JPA 數(shù)據(jù)訪問層和跨存儲(chǔ)的持久層功能,用戶的持久層Dao接口只需要繼承定義好的接口,感興趣的可以了解一下2021-06-06
Mybatis高級(jí)映射、動(dòng)態(tài)SQL及獲得自增主鍵的解析
MyBatis 本是apache的一個(gè)開源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis。這篇文章主要介紹了Mybatis高級(jí)映射、動(dòng)態(tài)SQL及獲得自增主鍵的相關(guān)資料,需要的朋友可以參考下2016-11-11
java讀取http請(qǐng)求中的body實(shí)例代碼
下面小編就為大家?guī)硪黄猨ava讀取http請(qǐng)求中的body實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09

