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

做ppt好的模板下载网站有哪些内容保山市住房和建设局网站

做ppt好的模板下载网站有哪些内容,保山市住房和建设局网站,想给公司产品做个推广,wordpress缓存文件在Spring 框架中都用到了哪些设计模式#xff1f; 1. 简单工厂#xff1a; ○ BeanFactory#xff1a;Spring的BeanFactory充当工厂#xff0c;负责根据配置信息创建Bean实例。它是一种工厂模式的应用#xff0c;根据指定的类名或ID创建Bean对象。2. 工厂方法#xff…Spring 框架中都用到了哪些设计模式 1. 简单工厂     ○ BeanFactorySpring的BeanFactory充当工厂负责根据配置信息创建Bean实例。它是一种工厂模式的应用根据指定的类名或ID创建Bean对象。2. 工厂方法     ○ FactoryBeanFactoryBean接口允许用户自定义Bean的创建逻辑实现了工厂方法模式。开发人员可以使用FactoryBean来创建复杂的Bean实例。3. 单例模式     ○ Bean实例Spring默认将Bean配置为单例确保在容器中只有一个共享的实例这有助于节省资源和提高性能。4. 适配器模式     ○ SpringMVC中的HandlerAdapterSpringMVC的HandlerAdapter允许不同类型的处理器适配到处理器接口以实现统一的处理器调用。这是适配器模式的应用。5. 装饰器模式     ○ BeanWrapperSpring的BeanWrapper允许在不修改原始Bean类的情况下添加额外的功能这是装饰器模式的实际应用。6. 代理模式     ○ AOP底层Spring的AOP面向切面编程底层通过代理模式来实现切面功能包括JDK动态代理和CGLIB代理。7. 观察者模式     ○ Spring的事件监听Spring的事件监听机制是观察者模式的应用它允许组件监听和响应特定类型的事件实现了松耦合的组件通信。8. 策略模式     ○ excludeFilters、includeFiltersSpring允许使用策略模式来定义包扫描时的过滤策略如在ComponentScan注解中使用的excludeFilters和includeFilters。9. 模板方法模式     ○ Spring几乎所有的外接扩展Spring框架的许多模块和外部扩展都采用模板方法模式例如JdbcTemplate、HibernateTemplate等。10. 责任链模式     ○ AOP的方法调用Spring AOP通过责任链模式实现通知Advice的调用确保通知按顺序执行。 Spring框架的设计哲学是通过这些设计模式来提供强大的功能和可定制性。它的模块化、松耦合的设计使得开发人员能够更轻松地构建可维护、可扩展和灵活的应用程序。这些设计模式的应用有助于实现代码重用、降低开发成本是Spring框架广受欢迎的原因之一。 Spring事件监听的核心机制是什么 观察者模式 它允许一个对象称为主题或被观察者维护一组依赖于它的对象称为观察者并在主题状态发生变化时通知观察者。 它包含三个核心 事件 事件是观察者模式中的主题状态变化的具体表示它封装了事件发生时的信息。在Spring中事件通常是普通的Java对象用于传递数据或上下文信息。事件发布者 在Spring中事件发布者充当主题的角色负责触发并发布事件。它通常实现了ApplicationEventPublisher接口或使用注解Autowired来获得事件发布功能。事件监听器 事件监听器充当观察者的角色负责监听并响应事件的发生。它实现了ApplicationListener接口通过onApplicationEvent()方法来处理事件。 Spring事务的失效原因 方法是private也会失效解决改成public Spring的事务代理通常是通过Java动态代理或CGLIB动态代理生成的这些代理要求目标方法是公开可访问的public。私有方法无法被代理因此事务将无效。解决方法是将目标方法改为public或protected。目标类没有配置为Bean也会失效解决配置为Bean Spring的事务管理需要在Spring容器中配置的Bean上才能生效。如果目标类没有被配置为Spring Bean那么事务将无法被应用。解决方法是确保目标类被正确配置为Spring Bean。自己捕获了异常解决不要捕获处理 Spring事务管理通常依赖于抛出未捕获的运行时异常来触发事务回滚。如果您在方法内部捕获了异常并处理了它事务将不会回滚。解决方法是让异常在方法内部被抛出以触发事务回滚。使用CGLIB动态代理但Transactional声明在接口上 默认情况下Spring的事务代理使用基于接口的JDK动态代理。如果您将Transactional注解声明在接口上而目标类是使用CGLIB代理的事务将不会生效。解决方法是将Transactional注解移到目标类的方法上或者配置Spring以使用CGLIB代理接口。跨越多个线程的事务管理,解决使用编程式事务或分布式事务 如果您的应用程序在多个线程之间共享数据库连接和事务上下文事务可能会失效除非适当地配置事务传播属性。事务传播属性或捕获异常等熟悉设置不正确 事务传播属性定义了事务如何传播到嵌套方法或外部方法。如果事务传播属性设置不正确可能会导致事务失效或不符合预期的行为。 Spring多线程事务 能否保证事务的一致性 在多线程环境下Spring事务管理默认情况下无法保证全局事务的一致性。这是因为Spring的本地事务管理是基于线程的每个线程都有自己的独立事务。 分布式事务 如果您的应用程序需要跨多个资源例如多个数据库的全局事务一致性那么您可能需要使用分布式事务管理如2PC/3PC TCC等来管理全局事务。这将确保所有参与的资源都处于相同的全局事务中以保证一致性。 什么情况下AOP会失效,怎么解决 内部方法调用 如果在同一个类中的一个方法调用另一个方法AOP通知可能不会触发因为AOP通常是通过代理对象拦截外部方法调用的。解决方式是注入本类对象进行调用 或者设置暴露当前代理对象到本地线程 可以通过AopContext.currentProxy() 拿到当前正在调用的动态代理对象。静态方法 AOP通常无法拦截静态方法的调用因为静态方法不是通过对象调用的。解决方法是将静态方法调用替换为实例方法调用或者考虑其他技术来实现横切关注点。AOP配置问题 错误的AOP配置可能导致通知不正确地应用于目标方法或者在不希望的情况下应用。解决方法是仔细检查AOP配置确保切点表达式和通知类型正确配置。代理问题 如果代理对象不正确地创建或配置AOP通知可能无法生效。解决方法是调试底层源码确保代理对象正确创建并且AOP通知能够拦截代理对象的方法调用。 JDK动态代理和CGLIB动态代理的区别 从性能上特性对比 JDK动态代理要求目标对象必须实现至少一个接口因为它基于接口生成代理类。而CGLIB动态代理不依赖于目标对象是否实现接口可以代理没有实现接口的类它通过继承或者代理目标对象的父类来实现代理。 从创建代理时的性能对比 JDK动态代理通常比CGLIB动态代理创建速度更快因为它不需要生成字节码文件。而CGLIB动态代理的创建速度通常比较慢因为CGLIB需要生成字节码文件。另外JDK代理生成的代理类较小占用较少的内存而CGLIB生成的代理类通常较大占用更多的内存。 从调用时的性能对比 JDK动态代理在方法调用时需要通过反射机制来调用目标方法因此性能略低于CGLIB尽管JDK动态代理在Java 8中有了性能改进但CGLIB动态代理仍然具有更高的方法调用性能。CGLIB动态代理在方法调用时不需要通过反射直接调用目标方法通常具有更高的方法调用性能同时无需类型转换。 介绍下SpringAop的底层实现 Spring AOP是Spring框架的一个重要组成部分用于实现面向切面编程。它通过在方法调用前、调用后或异常抛出时插入通知允许开发者在核心业务逻辑之外执行横切关注点的代码。 底层实现主要分两部分创建AOP动态代理和调用代理 在启动Spring会创建AOP动态代理 首先通过AspectJ解析切点表达式 在创建代理对象时Spring AOP使用AspectJ来解析切点表达式。它会根据定义的条件匹配目标Bean的方法。如果Bean不符合切点的条件将跳过否则将会通动态代理包装Bean对象具体会根据目标对象是否实现接口来选择使用JDK动态代理或CGLIB代理。这使得AOP可以适用于各种类型的目标对象。 在调用阶段 Spring AOP使用责任链模式来管理通知的执行顺序。通知拦截链包括前置通知、后置通知、异常通知、最终通知和环绕通知它们按照配置的顺序形成链式结构。通知的有序执行 责任链确保通知按照预期顺序执行。前置通知在目标方法执行前执行后置通知在目标方法成功执行后执行异常通知在方法抛出异常时执行最终通知无论如何都会执行而环绕通知包裹目标方法允许在方法执行前后添加额外的行为。 Spring是如何解决Bean的循环依赖 Spring是如何解决的循环依赖 采用三级缓存解决的 就是三个Map 关键 一定要有一个缓存保存它的早期对象作为死循环的出口 1、一级缓存singletonObjects存放可以使用的单例。 2、二级缓存earlySingletonObjects存放的是早期的bean即半成品此时还无法使用。 3、三级缓存singletonFactories是一个对象工厂用于创建对象并放入二级缓存中。同时如果对象有Aop代理则对象工厂返回代理对象。 单例bean和单例模式有什么区别 1. 定义和用途     ○ 单例Bean在Spring框架中单例Bean是指在整个应用程序中只存在一个实例的Bean对象。单例Bean的作用是共享和复用对象实例以提高性能和减少资源消耗。     ○ 单例模式单例模式是一种设计模式用于确保一个类只有一个实例并提供一个全局访问点来获取该实例。单例模式的目的是限制类的实例化次数以保证全局唯一性和避免资源浪费。 2. 实现方式     ○ 单例Bean在Spring中单例Bean的创建和管理由Spring容器负责。Spring容器在启动时会创建单例Bean的实例并在整个应用程序的生命周期中共享该实例。     ○ 单例模式单例模式的实现方式可以有多种常见的方式包括饿汉式在类加载时就创建实例、懒汉式在第一次使用时创建实例等。 3. 适用范围     ○ 单例Bean单例Bean适用于需要共享和复用对象实例的场景例如数据库连接池、线程池等。     ○ 单例模式单例模式适用于需要确保全局唯一性和避免资源浪费的场景例如配置信息管理、日志记录器等。 Bean有哪几种配置方式 XML配置使用XML文件来配置Bean通过bean元素定义Bean的属性和依赖关系。可以使用Spring的XML命名空间和标签来简化配置。注解配置使用注解来配置Bean通过在Bean类上添加注解如Component、Service、Repository等来标识Bean的角色和作用。JavaConfig方式使用Java类来配置Bean通过编写一个配置类使用Configuration注解标识然后在方法上使用Bean注解来定义Bean。ImportImport注解可以用于导入其他配置类也可以用于导入其他普通类。当导入的是配置类时被导入的配置类中定义的Bean会被纳入到当前配置类的上下文中当导入的是普通类时被导入的类本身会被当作一个Bean进行注册。 Spring-Ioc容器的加载过程 配置解析阶段主要做的工作是加载和解析配置文件将配置的bean解析成 BeanDefinition。 读取配置通过BeanDefinitionReader读取配置文件或配置类解析配置信息如ComonentScan、Bean配置等扫描类注解根据ComonentScan扫描Component、Bean、Configuration、Import等注解...将符合的bean注册为BeanDefinition Bean的创建过程主要做的工作是根据 BeanDefinition创建Bean。 实例化Bean容器根据配置文件中的Bean定义实例化Bean对象。可以通过构造函数实例化、工厂方法实例化、静态工厂方法实例化等方式来创建Bean对象。注入Bean属性容器会为实例化的Bean对象设置属性值可以通过setter方法注入属性值也可以通过构造函数注入属性值。处理依赖关系容器会处理Bean之间的依赖关系将依赖的Bean注入到需要的地方 。执行初始化方法容器会调用Bean的初始化方法可以通过实现InitializingBean接口或在配置文件中指定初始化方法来定义Bean的初始化逻辑。注册Bean容器会将实例化、属性设置和初始化完成的Bean对象注册到容器中以便后续的使用和管理。完成加载容器完成所有Bean的加载和初始化后即完成了IoC容器的加载过程。此时可以通过容器调用getBean获取Bean对象。 基础篇 说一下Spring的事务传播行为 REQUIRED如果当前存在事务则加入该事务如果当前没有事务则创建一个新的事务。这是最常用的传播行为也是默认的适用于大多数情况。REQUIRES_NEW无论当前是否存在事务都创建一个新的事务。如果当前存在事务则将当前事务挂起。适用于需要独立事务执行的场景不受外部事务的影响。SUPPORTS如果当前存在事务则加入该事务如果当前没有事务则以非事务方式执行。适用于不需要强制事务的场景可以与其他事务方法共享事务。NOT_SUPPORTED以非事务方式执行如果当前存在事务则将当前事务挂起。适用于不需要事务支持的场景可以在方法执行期间暂时禁用事务。MANDATORY如果当前存在事务则加入该事务如果当前没有事务则抛出异常。适用于必须在事务中执行的场景如果没有事务则会抛出异常。NESTED如果当前存在事务则在嵌套事务中执行如果当前没有事务则创建一个新的事务。嵌套事务是外部事务的一部分可以独立提交或回滚。适用于需要在嵌套事务中执行的场景。NEVER以非事务方式执行如果当前存在事务则抛出异常。适用于不允许在事务中执行的场景如果存在事务则会抛出异常。 通过Transactional注解的propagation属性来指定事务传播行为 。 Spring-AOP通知和执行顺序 Spring切面可以应用5种类型的通知 前置通知在目标方法被调用之前调用通知功能后置通知在目标方法完成之后调用通知此时不会关心方法的输出是什么返回通知在目标方法成功执行之后调用通知异常通知在目标方法抛出异常后调用通知环绕通知通知包裹了被通知的方法在被通知的方法调用之前和调用之后执行自定义的行为。 执行顺序 Spring在5.2.7之前的执行顺序是 Spring在5.2.7之后就改变的通知的执行顺序改为 1、正常执行前置---方法----返回---后置 2、异常执行前置---方法----异常---后置 谈谈你对Spring的理解 可以从2个层面理解Spring: 首先Spring是一个生态可以构建企业级应用程序所需的一切基础设施但是通常Spring指的就是Spring Framework它有两大核心 IOC 和 DI 的支持 Spring 的核心就是一个大的工厂容器可以维护所有对象的创建和依赖关系Spring 工厂用于生成 Bean并且管理 Bean 的生命周期实现高内聚低耦合的设计理念。 2. AOP 编程的支持 Spring 提供了面向切面编程面向切面编程允许我们将横切关注点从核心业务逻辑中分离出来实现代码的模块化和重用。可以方便的实现对程序进行权限拦截、运行监控、日志记录等切面功能。 除了这两大核心还提供了丰富的功能和模块 数据访问、事务管理、Web开发等。数据访问模块提供了对数据库的访问支持可以方便地进行数据库操作。事务管理模块提供了对事务的管理支持确保数据的一致性和完整性。Web开发模块则提供了构建Web应用程序的工具和框架简化了Web开发的过程。 总结一句话它是一个轻量级、非入侵式的控制反转 (IoC) 和面向切面 (AOP) 的容器框架。 Spring有哪些缺点 学习曲线较陡峭Spring框架是一个功能强大且灵活的框架但也因此学习曲线较陡峭。对于初学者来说可能需要花费一些时间来理解和掌握Spring的核心概念和特性。配置复杂Spring框架的配置通常使用XML或注解进行这种配置方式可能会导致配置文件变得复杂和冗长。特别是在大型项目中配置文件的维护和管理可能会变得困难,当然这个问题在SpringBoot中得到解决。运行时性能由于Spring框架提供了很多功能和特性它的运行时性能可能相对较低。尤其是在需要频繁创建和管理对象的场景下可能会对系统的性能产生一定的影响。过度依赖在使用Spring框架时可能会出现过度依赖的情况。由于Spring提供了很多功能和模块开发人员可能会过度依赖Spring框架导致项目的可移植性和可维护性下降。文档和社区支持尽管Spring框架有很多优秀的文档和活跃的社区支持但有时候可能会遇到文档不完善或社区资源有限的情况。这可能会给开发人员带来一些困扰。 需要注意的是这些缺点并不意味着Spring框架不好而是在使用过程中需要注意和克服的问题。同时Spring框架的优点和功能远远超过了它的缺点因此它仍然是一个非常受欢迎和广泛使用的框架。
http://www.pierceye.com/news/147048/

相关文章:

  • 做购物网站哪个cms好用网络规划与设计就业前景
  • wordpress仿站工具网站建设jw100
  • 网站推广过程叙述关键词歌词
  • vip影视网站如何做appwordpress centos查看目录
  • 网站怎么套模板山西seo博客
  • 好看的手机网站推荐新建的网站 找不到
  • 网站站内搜索怎么做seo搜索优化
  • 建设部网站 测绘规章pc网站手机网站
  • 建网站如何赚钱vs哪个版本做网站好
  • 新衡阳网站游戏软件开发公司简介
  • 湖南基础建设投资集团网站做体育最好的网站
  • 上海php网站开发公司wordpress 邮件认证
  • 教做香肠的网站张家港专业网站建设
  • 园林建设网站营销型网站的建站步骤是什么意思
  • 招聘求职网站html模板正规的创业商机网
  • 预付网站建设费会计处理哪里建网站好
  • 做免费网站艺术学院网站建设管理办法
  • 做网站贵吗手机网站wap
  • linux建立网站做网站的应该怎么发广告
  • wordpress使用端口百度seo排名软
  • 用英文字母做网站关键词个人网站的设计与实现专业论文图像处理工具
  • 重庆企业网站推广流程php网站开发技术训练心得
  • 汽车销售网站学校建网站
  • 两台电脑一台做服务器 网站潍坊专业网站建设多少钱
  • 青岛科技街网站建设安徽 网站开发
  • 黑糖不苦建设的网站wordpress获取文章图片不显示
  • 美食网站建设的功能免费做简历的网站
  • 网站建设公司谁管手机如何创建网站
  • 可以自己做网站优化吗最好用的wordpress主题
  • 瓜子二手车网站开发智慧团建注册登记入口