当前位置: 首页 > news >正文

网站开发部门工资入什么科目/建立网站流程

网站开发部门工资入什么科目,建立网站流程,企业网站建设策划书,做批发在哪个网站好Spring 中用到的设计模式 工厂方法 工厂方法定义:父类定义了创建对象的接口,但是由子类来具体实现,工厂方法让类把实例化的动作推迟到了子类当中。 例如实现了 FactoryBean 接口的类,Spring 可以利用 getObject() 方法返回实现…

Spring 中用到的设计模式

工厂方法

工厂方法定义:父类定义了创建对象的接口,但是由子类来具体实现,工厂方法让类把实例化的动作推迟到了子类当中。

例如实现了 FactoryBean 接口的类,Spring 可以利用 getObject() 方法返回实现了该接口的类的实例;

AbstractFactoryBean 实现了 FactoryBean 接口,由子类去实现 createInstance 的逻辑

public abstract class AbstractFactoryBean<T>implements FactoryBean<T>, BeanClassLoaderAware, BeanFactoryAware, InitializingBean, DisposableBean {@Overridepublic final T getObject() throws Exception {if (isSingleton()) {return (this.initialized ? this.singletonInstance : getEarlySingletonInstance());}else {return createInstance();}}protected abstract T createInstance() throws Exception;}

单例模式

单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

AbstractBeanFactory 提供 getBean 方法,具体调用到 DefaultSingletonBeanRegistry.getSingleton 方法中,使用 Double Check 方式获取单例 Bean

public class DefaultSingletonBeanRegistry extends SimpleAliasRegistry implements SingletonBeanRegistry {@Nullableprotected Object getSingleton(String beanName, boolean allowEarlyReference) {Object singletonObject = this.singletonObjects.get(beanName);if (singletonObject == null && isSingletonCurrentlyInCreation(beanName)) {synchronized (this.singletonObjects) {singletonObject = this.earlySingletonObjects.get(beanName);if (singletonObject == null && allowEarlyReference) {ObjectFactory<?> singletonFactory = this.singletonFactories.get(beanName);if (singletonFactory != null) {singletonObject = singletonFactory.getObject();this.earlySingletonObjects.put(beanName, singletonObject);this.singletonFactories.remove(beanName);}}}}return singletonObject;}
}

代理模式

AOP 的实现

  • 静态代理,编写代理类,通过代理类操作被代理的对象
  • 动态代理,利用反射、修改字节码的方式生成代理类

观察者模式

实现 ApplicationListener 接口,就可以接收对应的事件消息

@FunctionalInterface
public interface ApplicationListener<E extends ApplicationEvent> extends EventListener {void onApplicationEvent(E var1);
}

策略模式

通过实现 Resource 接口,提供更强的资源访问能力。

UrlResource、ClassPathResource、FileSystemResource 等等

模板方法模式

模板方法模式:一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行

AbstractApplicationContext 中的 refresh 方法,里面调用的一系列方法,其中 postProcessBeanFactory,onRefresh 的实现由子类去实现

public abstract class AbstractApplicationContext extends DefaultResourceLoader implements ConfigurableApplicationContext {public void refresh() throws BeansException, IllegalStateException {synchronized(this.startupShutdownMonitor) {this.prepareRefresh();ConfigurableListableBeanFactory beanFactory = this.obtainFreshBeanFactory();this.prepareBeanFactory(beanFactory);try {this.postProcessBeanFactory(beanFactory);this.invokeBeanFactoryPostProcessors(beanFactory);this.registerBeanPostProcessors(beanFactory);this.initMessageSource();this.initApplicationEventMulticaster();this.onRefresh();this.registerListeners();this.finishBeanFactoryInitialization(beanFactory);this.finishRefresh();} catch (BeansException var9) {if (this.logger.isWarnEnabled()) {this.logger.warn("Exception encountered during context initialization - cancelling refresh attempt: " + var9);}this.destroyBeans();this.cancelRefresh(var9);throw var9;} finally {this.resetCommonCaches();}}
}

适配器模式

适配器模式:将一个类的接口转换成客户希望的另外一个接口

Spring MVC 中的 HandlerAdapter

public interface HandlerAdapter {boolean supports(Object var1);@NullableModelAndView handle(HttpServletRequest var1, HttpServletResponse var2, Object var3) throws Exception;long getLastModified(HttpServletRequest var1, Object var2);
}

装饰器模式

装饰器模式:动态地给对象添加额外的功能

Spring 中用到的包装器模式在类名上有两种表现: 一种是类名中含有 Wrapper, 另一种是类名中含有 Decorator。

http://www.lbrq.cn/news/1333189.html

相关文章:

  • 个人网站备案内容不合格/网站运营主要做什么工作
  • 购买网站服务如何做支出/cms
  • 网站开发与维护价格/快速优化网站排名的方法
  • 一品威客网兼职/怎么seo网站排名
  • 京东电子商务网站建设/网站的网络推广
  • 建设网站哪好/关键词歌词打印
  • 怎样制作一个个人网站/直接打开百度
  • 国外优秀的平面设计网站/如何推广微信公众号
  • 连云港市海州区建设局网站/网络推广的工作内容是什么
  • 广西来宾博彩网站建设/在线搭建网站
  • wordpress有点尴尬诶该页无法显示/搜索引擎优化的主题
  • 内蒙古做网站的公司/微信朋友圈广告投放价格表
  • 重庆网站制作的网站/如何优化网络
  • 做美食的网站可以放些小图片/百度收录查询方法
  • 网站审核照片幕布/seo文章关键词怎么优化
  • 东莞短视频seo制作/seo合作代理
  • 湖南建设资质申请网站/深圳外贸seo
  • app制作平台大全/湖南优化公司
  • 电脑网站首页设计/站长统计是什么意思
  • 做网站的主题/西安seo引擎搜索优化
  • 深圳市年检在哪个网站做/seo综合查询站长工具关键词
  • 郑州做网站设计的公司/渠道营销推广方案
  • 2017做网站挣钱吗/外链生成网站
  • app备案查询网站/315影视行业
  • 做网站费用会计分录/广告传媒公司经营范围
  • 公司网站建设深/微信软文案例
  • 用web做简单的电商网站/web网站模板
  • iis如何建立网站/湖南企业竞价优化公司
  • 自助交友网站建设/semantic scholar
  • 彩票类网站怎么做推广/网站关键词查询网址
  • 基于VuePress2开发文档自部署及嵌入VUE项目
  • 【经典算法】二叉树最小深度详解:递归解法与可视化分析
  • Day37--动态规划--52. 携带研究材料(卡码网),518. 零钱兑换 II,377. 组合总和 Ⅳ,57. 爬楼梯(卡码网)
  • [Oracle] TRUNC()函数
  • 从 AI 到实时视频通道:基于模块化架构的低延迟直播全链路实践
  • 7、docker |其余命令