你的本次兩個(gè)SQL語(yǔ)句包含在一個(gè)事物中。
在你的這個(gè)事物中包含了更新操作,而mysql的 innodb是一個(gè)行級(jí)鎖,按照mysql的默認(rèn)事物級(jí)別:Repeated Read。
如果你不及時(shí)提交或者回滾,那么造成的影響可能有如下兩種:
所以一個(gè)事物要么盡快提交,要么盡快回滾。
順便你可以去看下oracle關(guān)于事物的一個(gè)官方文檔:
https://docs.oracle.com/javas...
c:forEach有個(gè)varStatus的屬性可以試試:
<c:forEach items="${listrkl}" var="item" varStatus="status">
<c:if test="${listrkl.size() == status.index - 1}">
...
</c:if>
</c:forEach>
我好久沒(méi)寫(xiě)JSP了,可能EL寫(xiě)得有問(wèn)題,你可以調(diào)試一下。
在對(duì)應(yīng)的restTemplate實(shí)體加上@LoadBalanced即可
jwt(JSON Web Token)可以試試
其實(shí)很簡(jiǎn)單,使用javac編譯之后得到兩個(gè)class(Demo01.class Demo01$1.class),我貼上來(lái)你看一下。
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
public class Demo01 {
String name;
public Demo01(String var1) {
System.out.println("類(lèi)中的構(gòu)造代碼塊");
System.out.println("構(gòu)造函數(shù)");
this.name = var1;
}
public String getName() {
return this.name;
}
public void setName(String var1) {
this.name = var1;
}
public void show() {
System.out.println(this.name);
}
public static void main(String[] var0) {
Demo01 var1 = new Demo01("11") {
{
System.out.println("構(gòu)造代碼塊???");
this.setName("22");
}
};
var1.show();
}
}
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
final class Demo01$1 extends Demo01 {
Demo01$1(String var1) {
super(var1);
System.out.println("構(gòu)造代碼塊???");
this.setName("22");
}
}
${...} 這種格式指定版本號(hào)不需要做額外的配置,只需要用 properties 標(biāo)簽告訴 log4j.version 這個(gè)變量值是多少就行了。
<properties>
<log4j.version>1.2.17</log4j.version>
</properties>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
</dependencies>是第二次請(qǐng)求接口使返回的數(shù)據(jù)亂碼嗎?
還是查詢r(jià)edis中的值時(shí)亂碼。
我也在springboot的一個(gè)小項(xiàng)目中測(cè)試了一下,不過(guò)功能正常。
jpa:
show-sql: true
jackson:
default-property-inclusion: non_null
redis:
host: 192.168.1.111
port: 6379
對(duì)于使用StringRedisTemplate去存儲(chǔ)token的AOP是正常的沒(méi)我并沒(méi)有配置什么,而是直接使用springboot的集成,
import org.springframework.data.redis.core.StringRedisTemplate;
然后我再一個(gè)請(qǐng)求商品的list時(shí)加了@Cacheable進(jìn)行商品信息的緩存。
@GetMapping("/list")
@Cacheable(cacheNames = "product",key = "1")
// @Cacheable(cacheNames = "product", key = "#sellerId", condition = "#sellerId.length() > 3", unless = "#result.getCode() != 0")
public ResultVO list(){
...
...
...
return ResultVOUtil.success(productVOList);
}
再頁(yè)面與postman都是正常的顯示數(shù)據(jù),且控制臺(tái)也跑出了sql(我這里執(zhí)行兩個(gè)sql操作)
當(dāng)我再次刷新時(shí),sql并沒(méi)有執(zhí)行,而是去請(qǐng)求redis。
我去查看了redis,也正常存儲(chǔ)進(jìn)去了
你能具體說(shuō)下你的bug問(wèn)題還有復(fù)現(xiàn)下它的發(fā)生環(huán)境嗎?
hybrid應(yīng)用的話就是 weex框架
如果你是想在app中直接打開(kāi)一個(gè)vue的網(wǎng)頁(yè)直接webview就行了
首先給出我認(rèn)為的正確寫(xiě)法吧(我copy了Predicat類(lèi),然后改名為PredicateExt進(jìn)行重寫(xiě))
default PredicateExt<T> negate() {
PredicateExt<T> predicate = this;
PredicateExt<T> otherPredicate = new PredicateExt<T>() {
@Override
public boolean test(T t) {
return !predicate.test(t);
}
};
return otherPredicate;
}
再來(lái)看看Java8中Predicate.negate到底表達(dá)的是什么意思
Predicate肯定是一個(gè)類(lèi),(t) -> !test(t)這種lamdba語(yǔ)法也只是表示Predicate的一個(gè)對(duì)象而已default方法就是代表了Predicate對(duì)象的某個(gè)實(shí)例方法因此結(jié)合以上兩點(diǎn),可以直接看出Predicate.negate代表Predicate的某個(gè)對(duì)象A執(zhí)行時(shí),根據(jù)A的執(zhí)行結(jié)果再次創(chuàng)建了一個(gè)新Predicate的對(duì)象B
所以,要換種方式來(lái)表示Predicate.negate方法,肯定也要體現(xiàn)出A,B兩個(gè)新舊對(duì)象,并且該方法的執(zhí)行結(jié)果是根據(jù)A的執(zhí)行結(jié)果體現(xiàn)出來(lái)的
再來(lái)說(shuō)說(shuō)題主為什么會(huì)死循環(huán),雖然題主已經(jīng)明顯new了一個(gè)Predicate對(duì)象,這里體現(xiàn)了A,B兩個(gè)新舊對(duì)象,但是后面的執(zhí)行結(jié)果并沒(méi)有體現(xiàn)出是根據(jù)A的執(zhí)行結(jié)果來(lái)產(chǎn)生B的
主要在于里面的在重寫(xiě)B(tài)的test方法時(shí),是再調(diào)用test方法的,只是前面加了一個(gè)!,所以顯然這里調(diào)用的是B的Predicate的test方法,當(dāng)然就是循環(huán)調(diào)用了,可別指望它能調(diào)用A的Predicate方法,因?yàn)槟阏谥貙?xiě)這個(gè)新Predicate的方法,這里的this指針,肯定是指向B的
鑒于此,既然在B里面重寫(xiě)方法時(shí)this指針是指向B的,那就在外面顯示的把A的對(duì)象指示出來(lái),然后再B中重寫(xiě)時(shí),顯示用的A的方法進(jìn)行執(zhí)行,這樣就可以了,所以才有上面的寫(xiě)法
從運(yùn)行的debug來(lái)看,以前的方式和現(xiàn)在重寫(xiě)的方式,在新的B對(duì)象中,都包含了以前的舊對(duì)象A的,所以是可行的
spring-boot 肯定不能用 maven-archetype-web
最好不要用 mvn archetype:generate 來(lái)生成 spring-boot 項(xiàng)目,用 start.spring.io
Eclipse 和 Intellij 已經(jīng)集成了 start.spring.io
spring-boot 是沒(méi)有 src/main/webapp 的 , html js css 通常放在 src/main/resources/static/
public BufferedReader(Reader in)//參數(shù)為一個(gè)Reader
public DataOutputStream(OutputStream out)//參數(shù)為一個(gè)OutputStream這個(gè)代理IP已經(jīng)失效,換其他代理IP測(cè)試
import requests
url = 'http://ip.chinaz.com/getip.aspx'
proxy = {'http': 'http://177.130.55.164:20183',
'https': 'https://177.130.55.164:20183'}
r = requests.get(url, proxies=proxy, timeout=1)
print r.textencoding 函數(shù)使用有問(wèn)題的話,可以嘗試自己手動(dòng)對(duì)html進(jìn)行轉(zhuǎn)碼
data.data.type==0?"新組":"續(xù)租"
把這個(gè)括起來(lái)應(yīng)該就好了
即改成(data.data.type==0?"新組":"續(xù)租")+吧啦吧啦
這是一個(gè)閉包的問(wèn)題,這樣解決
...
def wrapper(i):
def add_fun(self):
return self.num + i
return add_fun
setattr(..., wrapper(i), ...)
...分享一個(gè)實(shí)現(xiàn)思路,rand(1,5) rand(5,10)rand(10,15)rand(15,20)rand(30,50)... ...
rand(90,100)
這樣寫(xiě)30數(shù)的隨機(jī)生成,幅度遞增。相互之間相差多少,大體可以控制了幅度,需要幅度比較大,可以繼續(xù)加大幅度
Compare & Set,或是 Compare & Swap,一個(gè)意思。
在 2 倍屏下 1px 渲染為 2 物理像素,3 倍屏下 1px 渲染為 3 物理像素,可以了解下 px 與 dpi 的關(guān)系~
在 2 倍屏下,將 1px border transform: scale(0.5)
在 3 倍屏下,將 1px border transform: scale(0.3333)
linux系統(tǒng)中很重要的一點(diǎn)就是權(quán)限,檢查一下你的應(yīng)用用戶是不是有這個(gè)路徑的寫(xiě)權(quán)限
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。