2024年Java最全向Spring框架学习设计模式,springcloud教程视频

总结

对于面试还是要好好准备的,尤其是有些问题还是很容易挖坑的,例如你为什么离开现在的公司(你当然不应该抱怨现在的公司有哪些不好的地方,更多的应该表明自己想要寻找更好的发展机会,自己的一些现实因素,比如对于我而言是现在应聘的公司离自己的家更近,又或者是自己工作到达了迷茫期,想跳出迷茫期等等)

image

Java面试精选题、架构实战文档

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

你的支持,我的动力;祝各位前程似锦,offer不断!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

@Nullable

public T execute(PreparedStatementCreator psc, PreparedStatementCallback action) throws DataAccessException {

Assert.notNull(psc, “PreparedStatementCreator must not be null”);

Assert.notNull(action, “Callback object must not be null”);

if (this.logger.isDebugEnabled()) {

String sql = getSql(psc);

this.logger.debug(“Executing prepared SQL statement” + (sql != null ? " [" + sql + “]” : “”));

}

//固化流程1:获取connection

Connection con = DataSourceUtils.getConnection(this.obtainDataSource());

PreparedStatement ps = null;

Object var13;

try {

//固化流程2:获取PrepareStatement

ps = psc.createPreparedStatement(con);

this.applyStatementSettings(ps);

T result = action.doInPreparedStatement(ps);

this.handleWarnings((Statement)ps);

var13 = result;

} catch (SQLException var10) {

if (psc instanceof ParameterDisposer) {

((ParameterDisposer)psc).cleanupParameters();

}

String sql = getSql(psc);

psc = null;

//固化流程3:关闭Statement

JdbcUtils.closeStatement(ps);

ps = null;

//固化流程4:关闭Connection

DataSourceUtils.releaseConnection(con, this.getDataSource());

con = null;

throw this.translateException(“PreparedStatementCallback”, sql, var10);

} finally {

if (psc instanceof ParameterDisposer) {

((ParameterDisposer)psc).cleanupParameters();

}

JdbcUtils.closeStatement(ps);

DataSourceUtils.releaseConnection(con, this.getDataSource());

}

return var13;

}

}

观察者模式


我们都知道观察者模式在实际都工作中属于比较常用都设计模式。简单来说就是当一个对象当状态发生变化时,监视该对象的主体改变其行为的设计模式就是观察者模式。举个日常生活中的例子,比如你女朋友下班回家,我们就要观察女朋友的心情是怎样的。如果心情很好,那么我们可以放轻松各种开玩笑。如果女朋友心情不好,那就要谨言慎行,避免女朋友把上班的火撒在你自已身上。四个字来说就是要察言观色。

在这里插入图片描述

那么在Spring中框架中是如何实现观察这模式的呢?我们来一起看下。在Spring 中观察者模式主要包含了三部分:Event 事件、Listener 监听者、Publisher 发送者。他们之间的关系可以参考下图来看,Event 事件对应女朋友的心情,Publisher 发送者对应你女朋友,Listener 监听者对应弱小的你。

在这里插入图片描述

有了以上对于观察者模式的理解,我们可以看下代码:

// Event事件

public class GFMoodEvent extends ApplicationEvent

{

private String message;

public GFMoodEvent(Object source, String message)

{

super(source);

}

public String getMessage() {

return this.message;

}

}

// Listener监听者

@Component

public class GFMoodListener implements ApplicationListener

{

@Override

public void onApplicationEvent(GFMoodEvent gFMoodEvent)

{

String message = gFMoodEvent.getMessage();

System.out.println(message);

}}

// Publisher发送者

@Component

public class GFMoodPublisher {

@Autowired

private ApplicationContext applicationContext;

public void publishEvent(GFMoodEvent gFMoodEvent) {

this.applicationContext.publishEvent(gFMoodEvent);

}

}

在传统的设计模式之中,观察者需要注册到被被观察者当中,这样才可以真正实现状态变化感知。那么在上述Spring的观察者模式中,我们好像没有看到,观察者注册到哪里。那么实际上,我们的观察者是注册到了ApplicationContext应用上下文中。ApplicationContextSpring的顶级接口,负责提供应用启动、运行时的上下文信息。AbstractApplicationContext是其具体的实现,对应的发布事件相关的代码如下所示:

public abstract class AbstractApplicationContext extends DefaultResourceLoader

implements ConfigurableApplicationContext {

@Override

public void publishEvent(ApplicationEvent event) {

publishEvent(event, null);

}

@Override

public void publishEvent(Object event) {

publishEvent(event, null);

}

protected void publishEvent(Object event, @Nullable ResolvableType eventType) {

Assert.notNull(event, “Event must not be null”);

// Decorate event as an ApplicationEvent if necessary

ApplicationEvent applicationEvent;

读者福利

分享一份自己整理好的Java面试手册,还有一些面试题pdf

不要停下自己学习的脚步

字节跳动的面试分享,为了拿下这个offer鬼知道我经历了什么

字节跳动的面试分享,为了拿下这个offer鬼知道我经历了什么

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

下自己学习的脚步**

[外链图片转存中…(img-JwqVUypM-1714884600047)]

[外链图片转存中…(img-kKlzdVPy-1714884600048)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值