文章目录

  • 动态代理( cglib 与 JDK)
  • 如何强制使用CGLIB实现AOP?
  • JDK动态代理和CGLIB字节码生成的区别?
  • Spring MVC 运行流程
  • Spring 框架中用到了哪些设计模式
  • 谈谈Hibernate与Ibatis的区别,哪个性能会更高一些
  • Netty-为什么选择 Netty

动态代理( cglib 与 JDK)

java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用

InvokeHandler来处理。

而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节

码生成子类来处理。

1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP

2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP

3、如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和

CGLIB之间转换

如何强制使用CGLIB实现AOP?

(1)添加CGLIB库,SPRING_HOME/cglib/*.jar

(2)在spring配置文件中加入<aop:aspectj­autoproxy proxy­target­class=“true”/>

JDK动态代理和CGLIB字节码生成的区别?

(1)JDK动态代理只能对实现了接口的类生成代理,而不能针对类

(2)CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法

因为是继承,所以该类或方法最好不要声明成final

参考链接:http://www.cnblogs.com/leifei/p/8263448.html

Spring MVC 运行流程

一、先用文字描述

  • 1.用户发送请求到DispatchServlet

  • 2.DispatchServlet根据请求路径查询具体的Handler

  • 3.HandlerMapping返回一个HandlerExcutionChain给DispatchServlet

    HandlerExcutionChain:Handler和Interceptor集合

  • 4.DispatchServlet调用HandlerAdapter适配器

  • 5.HandlerAdapter调用具体的Handler处理业务

  • 6.Handler处理结束返回一个具体的ModelAndView给适配器

    ModelAndView:model–>数据模型,view–>视图名称

  • 7.适配器将ModelAndView给DispatchServlet

  • 8.DispatchServlet把视图名称给ViewResolver视图解析器

  • 9.ViewResolver返回一个具体的视图给DispatchServlet

  • 10.渲染视图

  • 11.展示给用户

二、画图解析


SpringMvc 的配置

Spring 框架中用到了哪些设计模式

Spring框架中使用到了大量的设计模式,下面列举了比较有代表性的:

  • 代理模式—在AOP和remoting中被用的比较多。

  • 单例模式—在spring配置文件中定义的bean默认为单例模式。

  • 模板方法—用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate。

  • 工厂模式—BeanFactory用来创建对象的实例。

  • 适配器–spring aop

  • 装饰器 –spring data hashmapper

  • 观察者­­ spring 时间驱动模型

  • 回调–Spring ResourceLoaderAware回调接口

  • 前端控制器–spring用前端控制器DispatcherServlet对请求进行分发

谈谈Hibernate与Ibatis的区别,哪个性能会更高一些

答:

  1. Hibernate偏向于对象的操作达到数据库相关操作的目的;而ibatis更偏向于sql语句的优化。

  2. Hibernate的使用的查询语句是自己的hql,而ibatis则是标准的sql语句。

  3. Hibernate相对复杂,不易学习;ibatis类似sql语句,简单易学。

性能方面:

  1. 如果系统数据处理量巨大,性能要求极为苛刻时,往往需要人工编写高性能的sql语句或存错过程,此时ibatis具有更好的可控性,因此性能优于Hibernate。

  2. 同样的需求下,由于hibernate可以自动生成hql语句,而ibatis需要手动写sql语句,此时采用Hibernate的效率高于ibatis。

Netty-为什么选择 Netty

Netty 是业界最流行的 NIO 框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同

类框架中都是首屈一指的,它已经得到成百上千的商用项目验证,例如 Hadoop 的 RPC 框

架 Avro 使用 Netty 作为通信框架。很多其它业界主流的 RPC 和分布式服务框架,也使用

Netty 来构建高性能的异步通信能力。

Netty 的优点总结如下:

API 使用简单,开发门槛低;

功能强大,预置了多种编解码功能,支持多种主流协议;

定制能力强,可以通过 ChannelHandler 对通信框架进行灵活的扩展;

性能高,通过与其它业界主流的 NIO 框架对比,Netty 的综合性能最优;

社区活跃,版本迭代周期短,发现的 BUG 可以被及时修复,同时,更多的新功能会被

加入;

经历了大规模的商业应用考验,质量得到验证。在互联网、大数据、网络游戏、企业应

用、电信软件等众多行业得到成功商用,证明了它完全满足不同行业的商用标准。

正是因为这些优点,Netty 逐渐成为 Java NIO 编程的首选框架。

Java框架问题整理相关推荐

  1. 自学视频Java、电子书、技术教程、框架网站整理集合

    注:maven仓库: 1.http://www.sonatype.org/nexus/ 私服nexus工具使用 2.http://mvnrepository.com/ (推荐) 3.http://re ...

  2. 一个比 Spring Boot 快 44 倍的 Java 框架

    点击关注公众号,Java干货及时送达 转自:jdon 链接:http://jdon.com/48511 light-java是内置了undertow http服务器的REST微服务轻量Java框架,它 ...

  3. 别再用那些已经淘汰的技术了!2020 年 9 大顶级 Java 框架出炉!!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:Patricia Neil towardsdatascien ...

  4. java框架知识_java框架知识点总结

    java框架知识点总结 面对Java丰富的知识资料,很多初学者难免觉得迷惘,下面是小编为大家整理的java框架知识点总结,欢迎参考~ 1 对象的初始化 (1) 非静态对象的初始化在创建对象时,对象所在 ...

  5. 2020 年国外 9 个顶级的 Java 框架,你知道几个?

    来看下外国人整理的 9 个顶级框架: 诞生于1995年的Java,目前已在134,861个网站上广泛使用,包括ESPN.SnapDeal等.在其24年的成长史中,Java已经证明了自己是用于自定义软件 ...

  6. Java学习资源整理(超级全面),java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  7. GitHub Star 破万!3w 多人追更,这个 Java 框架你不会还不知道怎么用吧...

    作为一个 GitHub Star 破 5w,Fork 超 3w 的 Java 框架,一切都在证明,Spring Boot 已经成为了 Java 程序员必备的技能. 不夸张的说,Spring Boot  ...

  8. 最常见的Java框架有哪些?

    Java语言仍然是程最受欢迎的编程语言之一.如果你想进入这个行业,Java可以引导你.很多初学者可能没有系统的了解过Java框架.今日为大家整理一下常见的Java框架有哪些? Java框架 一.Spr ...

  9. 现在常用的java框架有哪些

    java开发都是站在jar包这个巨人的肩膀上开发,速度更快. 各个web框架综合排名: 框架从何性能测试报告: In the following tests, we have measured the ...

最新文章

  1. win10显示隐藏文件_如何在Mac上显示隐藏文件?苹果mac显示隐藏文件夹方法
  2. 4道Python装饰器练习题
  3. Salesforce 小知识:大量“子记录”的处理方法
  4. 关于Newtonsoft.Json,LINQ to JSON的一个小demo
  5. rtmp/rtsp/hls公网测试地址
  6. 设计模式的C语言应用-建造者模式-第七章
  7. C编译: 使用gdb调试
  8. oracle查找clob中的值,Oracle 查找带有CLOB字段的所有表
  9. linux salt命令 -e,Linux记录-salt命令
  10. 品高云产品经理邱洋:做国内云计算第一品牌
  11. 开发的免费Windows 8 应用程序
  12. 笔记本计算机涂硅脂,图吧小白教程 篇十一:笔记本拆机换硅脂教程(大拆)...
  13. Java框架全开源商城PC+手机版+微商城独立版+全开源系统源码
  14. 上位机和下位机计算机联锁,上位机下位机各是什么意思?上位机下位机介绍
  15. 滤波器主要参数及特性
  16. Mybatis中的动态SQL,一对一,一对多以及标签
  17. 操作系统之文件系统:4、文件存储空间管理(空闲表法、空闲链表法、位示图法、成组链接法)
  18. web页面播放优酷视频,播放html5视频,兼容ie7 vcastr22.swf播放
  19. Docker快速入门与使用
  20. 2. 因子(factor)、缺失数据(na)、字符串、时间序列数据

热门文章

  1. 天体运行轨迹_太阳系内天体的运行轨迹是什么?开普勒为什么这么伟大?
  2. SDUT 4123 喵帕斯之天才算数少女
  3. Linux应用开发3 字符串处理,字符串与其他数字类型的转换,向应用程序传参
  4. 1368: 海军节上的鸣炮声计算
  5. putty远程登录不上,并行配置不正确,两招搞定
  6. Windows装机必备常用软件
  7. 手机可以找出 暗藏的摄像头
  8. ARM hint instruction-WFI(Wait For Interrupt)指令的一些笔记
  9. [ATL/WTL]_[初级]_[自定义多列TreeView]
  10. Cloudflare api 设置Firewall rules防止wodpress被爆力破解