git00ll 最近的时间轴更新
git00ll

git00ll

V2EX 第 447415 号会员,加入于 2019-10-17 12:19:31 +08:00
异步 httpclient 是如何处理大量并发请求的
Java  •  git00ll  •  20 天前  •  最后回复来自 ikas
3
nginx 会不会把下游的 tomcat 调挂掉
程序员  •  git00ll  •  20 天前  •  最后回复来自 yeqizhang
3
上 4k 显示器,无法实现 60hz,好憋屈
问与答  •  git00ll  •  62 天前  •  最后回复来自 northisland
20
出一个年会获得,未拆封, air pods pro
二手交易  •  git00ll  •  70 天前  •  最后回复来自 mzidazoom
14
git00ll 最近回复了
todo 补充这里的注释
@huifer
以下代码来自于
org.springframework.web.servlet.FrameworkServlet#initWebApplicationContext
DispatcherServlet 继承此类。

下面是他初始化容器的地方,方法的第三行有一个 if 判断,他判断如果 webApplicationContext 不为空,就直接使用。如果为空会在下面创建一个。
那什么情况下非空呢?据我观察现在使用 springboot 启动时,就是非空的,而以前使用 xml 文件的方式就是空的。所以我认为,使用旧的方式,会产生两个容器,springmvc 容器和 spring 容器,他们是父子关系。而使用 springboot 的方式,是共享同一个容器。


protected WebApplicationContext initWebApplicationContext() {
WebApplicationContext rootContext =
WebApplicationContextUtils.getWebApplicationContext(getServletContext());
WebApplicationContext wac = null;
if (this.webApplicationContext != null) {
// A context instance was injected at construction time -> use it
wac = this.webApplicationContext;
if (wac instanceof ConfigurableWebApplicationContext) {
ConfigurableWebApplicationContext cwac = (ConfigurableWebApplicationContext) wac;
if (!cwac.isActive()) {
// The context has not yet been refreshed -> provide services such as
// setting the parent context, setting the application context id, etc
if (cwac.getParent() == null) {
// The context instance was injected without an explicit parent -> set
// the root application context (if any; may be null) as the parent
cwac.setParent(rootContext);
}
configureAndRefreshWebApplicationContext(cwac);
}
}
}
if (wac == null) {
// No context instance was injected at construction time -> see if one
// has been registered in the servlet context. If one exists, it is assumed
// that the parent context (if any) has already been set and that the
// user has performed any initialization such as setting the context id
wac = findWebApplicationContext();
}
if (wac == null) {
// No context instance is defined for this servlet -> create a local one
wac = createWebApplicationContext(rootContext);
}

if (!this.refreshEventReceived) {
// Either the context is not a ConfigurableApplicationContext with refresh
// support or the context injected at construction time had already been
// refreshed -> trigger initial onRefresh manually here.
onRefresh(wac);
}

if (this.publishContext) {
// Publish the context as a servlet context attribute.
String attrName = getServletContextAttributeName();
getServletContext().setAttribute(attrName, wac);
if (this.logger.isDebugEnabled()) {
this.logger.debug("Published WebApplicationContext of servlet '" + getServletName() +
"' as ServletContext attribute with name [" + attrName + "]");
}
}

return wac;
}
77 天前
回复了 yayiji 创建的主题 问与答 ~和` 这两个符号一般什么用途?
git rebase HEAD~10
@love
目前我们的做法是
update table set status = 1 where order_id = "xxxxx" and status = 2 limit 1000
然后定时执行,问题是,如果定时频率快了 cpu 扛不住,定时频率慢了,速度太慢,60w 要更新好几十分钟
@owenliang 尝试过这样操作,其实效果也不好
下面是想要把 status 为 2 的改为 1

先选择一批数据
select id from table where order_id = "xxxxx" and status = 2 limit 1000
再更新这一批数据
update table set status = 1 where id in (上面 select 到的数据)

放在循环里更新,同样导致数据库压力
179 天前
回复了 jamfer 创建的主题 推广 回馈 V2,送一把樱桃红轴的 71 键双模机械键盘
万一呢
190 天前
回复了 huskar 创建的主题 健康 想看看有多少成功拔掉拔阻生智齿的?
三颗水平阻生 + 1 颗正常点的智齿。拔完很舒服,再也不用担心了
205 天前
回复了 1oNflow 创建的主题 Java 普通新人后端有没有必要学习 Spring 源码?
普通新人后端有没有必要学习 Spring 源码?
-----------------------------------------------------
新人没必要,毕竟把 spring 全家桶的用法学会也要很长时间,
一两年后肯定是要看的,不看 spring 也要看其他的框架的,目的是提高读源码能力。
205 天前
回复了 pythonee 创建的主题 程序员 第一次接触会觉得比较有意思的编程技术
NIO
自问自答一下,是因为 jvm 在加载过程中会暂时禁用偏向锁,所以此处只有轻量级锁。
可以在调用 test 方法之前,先休眠 5 秒,这样等 jvm 完全加载完成后,偏向锁才能生效,就能看到效果了。
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2270 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 11:50 · PVG 19:50 · LAX 04:50 · JFK 07:50
♥ Do have faith in what you're doing.