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

获取网站域名/给公司做网站要多少钱

获取网站域名,给公司做网站要多少钱,选择邯郸网站制作,微信小程序开发框架深入解析spring中用到的九种设计模式 第一种:单例模式 spring容器中的bean默认是单例的,一般情况下用户不会自己创建Bean,而是交给容器去管理,spring不是通过私有化构造函数进行的单例模式控制。Spring框架对单例的支持是采用单…

深入解析spring中用到的九种设计模式

第一种:单例模式

spring容器中的bean默认是单例的,一般情况下用户不会自己创建Bean,而是交给容器去管理,spring不是通过私有化构造函数进行的单例模式控制。Spring框架对单例的支持是采用单例注册表的方式进行实现的。

第二种:简单工厂

简单又叫做静态工厂方法(StaticFactory Method)模式,

传入对应的类型就可构建对应的对象

在这里插入图片描述

第三种:工厂方法

spring常用的创建方式有以下四种:

  1. setter 方法

  2. 构造函数

  3. 静态工厂

  4. 实例工厂

<bean id="bmwCar" class="com.home.factoryMethod.Car" factory-method="getCar">
</bean>

第四种:装饰者模式

第五种:代理模式

Spring AOP 功能的实现。

第六种:适配器模式

在Spring MVC中,DispatcherServlet 调用 HandlerMapping,解析请求对应的 Handler。解析到对应的 `Handler后。不同的handler并无任何联系,为了统一处理,使用HandlerAdapter进行统一的处理。

Spring AOP 的通知(Advice)使用到了适配器模式,Advice 常用的类型有:BeforeAdviceAfterAdviceAfterReturningAdvice等等。每个类型Advice都有对应的拦截器:AdviceInterceptor。Spring的通知要通过对应的AdviceAdapter,适配成MethodInterceptor`接口(方法拦截器)类型的对象

第七种:策略

spring中在实例化对象的时候用到Strategy模式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CUcP6eAK-1579404043633)(C:\Users\Administrator\Desktop\TIM截图20200119105317.png)]

	beanInstance = AccessController.doPrivileged((PrivilegedAction<Object>) () ->getInstantiationStrategy().instantiate(mbd, beanName, parent),getAccessControlContext());
@Overridepublic Object instantiate(RootBeanDefinition bd, @Nullable String beanName, BeanFactory owner) {//如果有需要覆盖或动态替换的方法,则使用cglib进行动态代理,//应为可以在创建代理的同时,将动态方法织入类中//如果没有,直接用反射就可以进行实例化// Don't override the class with CGLIB if no overrides.if (!bd.hasMethodOverrides()) {Constructor<?> constructorToUse;synchronized (bd.constructorArgumentLock) {constructorToUse = (Constructor<?>) bd.resolvedConstructorOrFactoryMethod;if (constructorToUse == null) {final Class<?> clazz = bd.getBeanClass();if (clazz.isInterface()) {throw new BeanInstantiationException(clazz, "Specified class is an interface");}try {if (System.getSecurityManager() != null) {constructorToUse = AccessController.doPrivileged((PrivilegedExceptionAction<Constructor<?>>) clazz::getDeclaredConstructor);}else {constructorToUse = clazz.getDeclaredConstructor();}bd.resolvedConstructorOrFactoryMethod = constructorToUse;}catch (Throwable ex) {throw new BeanInstantiationException...}}}return BeanUtils.instantiateClass(constructorToUse);}else {// Must generate CGLIB subclass.return instantiateWithMethodInjection(bd, beanName, owner);}}

第八种:模板方法

模板方法模式是一种行为设计模式,它定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤的实现方式。

第九种:观察者

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
spring中Observer模式常用的地方是listener的实现。如ApplicationListener。

1、定义一个事件

public class MyEvent extends ApplicationEvent {public MyEvent(Object source) {super(source);System.out.println("发送了邮件");}
}

2、定义事件监听

@Component
public class MyReceive {@EventListenerpublic void receive(MyEvent event){System.out.println("接收到"+event);}
}

3、发布事件

@RestController
public class MailSender implements ApplicationContextAware {ApplicationContext applicationContext;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext=applicationContext;}@RequestMapping("/mtest")public String sendMail(){//创建时间MyEvent myEvent = new MyEvent(applicationContext);System.out.println("准备发-----");//发布事件applicationContext.publishEvent(myEvent);return "success";}
}

在这里插入图片描述

http://www.jmfq.cn/news/5059963.html

相关文章:

  • 技术先进的网站建设公司/武汉网络推广有限公司
  • 内容营销的核心/深圳网站营销seo电话
  • wordpress门户站/百度主页网址
  • 女生做网站前端设计师/成都网站建设seo
  • 1369免费版街景地图/seo优化技术
  • 动态网站开发流程是什么/免费网页制作网站
  • 自己做网站的流程下载/seo服务外包费用
  • 可以做家教的网站有哪些/外贸网站推广方法之一
  • l临沂建设工程信息网站/竞价推广网络推广运营
  • 网站建设的费用结构/百度app安装下载
  • vs做网站好不好/百度广告推广电话
  • 陕西省交通建设集团西长分公司网站/香港域名注册网站
  • 网站做批发文具/网站关键词seo费用
  • 集团门户网站建设/苏州seo关键词优化价格
  • 单位如何做网站宣传/外链网站
  • 做米业的企业网站/百度指数数据分析报告
  • 在线制作flash的网站/网上国网推广
  • 接项目做的网站/做个公司网站一般需要多少钱
  • 周口师范做网站/营销策划咨询
  • 建设网络道德教育网站不包括/免费网站推广群发软件
  • 请人代做谷歌外贸网站/百度网址大全电脑版旧版本
  • 上海网站开发定制/深圳关键词优化
  • 做nba直播网站好/汕头网站建设方案优化
  • 机械网站模板/品牌策划公司介绍
  • 推荐一些能打开的网站/新闻稿发布平台
  • 做商城网站要什么手续费/百度小说app下载
  • 营销的网站/软文发布网站
  • 手机网站域名怎么解析/网络公司网页设计
  • scala做网站/广州谷歌seo公司
  • 泰安建设银行网站/如何在百度发布文章