Java框架问题整理
文章目录
- 动态代理( 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:aspectjautoproxy proxytargetclass=“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的区别,哪个性能会更高一些
答:
Hibernate偏向于对象的操作达到数据库相关操作的目的;而ibatis更偏向于sql语句的优化。
Hibernate的使用的查询语句是自己的hql,而ibatis则是标准的sql语句。
Hibernate相对复杂,不易学习;ibatis类似sql语句,简单易学。
性能方面:
如果系统数据处理量巨大,性能要求极为苛刻时,往往需要人工编写高性能的sql语句或存错过程,此时ibatis具有更好的可控性,因此性能优于Hibernate。
同样的需求下,由于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框架问题整理相关推荐
- 自学视频Java、电子书、技术教程、框架网站整理集合
注:maven仓库: 1.http://www.sonatype.org/nexus/ 私服nexus工具使用 2.http://mvnrepository.com/ (推荐) 3.http://re ...
- 一个比 Spring Boot 快 44 倍的 Java 框架
点击关注公众号,Java干货及时送达 转自:jdon 链接:http://jdon.com/48511 light-java是内置了undertow http服务器的REST微服务轻量Java框架,它 ...
- 别再用那些已经淘汰的技术了!2020 年 9 大顶级 Java 框架出炉!!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:Patricia Neil towardsdatascien ...
- java框架知识_java框架知识点总结
java框架知识点总结 面对Java丰富的知识资料,很多初学者难免觉得迷惘,下面是小编为大家整理的java框架知识点总结,欢迎参考~ 1 对象的初始化 (1) 非静态对象的初始化在创建对象时,对象所在 ...
- 2020 年国外 9 个顶级的 Java 框架,你知道几个?
来看下外国人整理的 9 个顶级框架: 诞生于1995年的Java,目前已在134,861个网站上广泛使用,包括ESPN.SnapDeal等.在其24年的成长史中,Java已经证明了自己是用于自定义软件 ...
- Java学习资源整理(超级全面),java基础面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- GitHub Star 破万!3w 多人追更,这个 Java 框架你不会还不知道怎么用吧...
作为一个 GitHub Star 破 5w,Fork 超 3w 的 Java 框架,一切都在证明,Spring Boot 已经成为了 Java 程序员必备的技能. 不夸张的说,Spring Boot ...
- 最常见的Java框架有哪些?
Java语言仍然是程最受欢迎的编程语言之一.如果你想进入这个行业,Java可以引导你.很多初学者可能没有系统的了解过Java框架.今日为大家整理一下常见的Java框架有哪些? Java框架 一.Spr ...
- 现在常用的java框架有哪些
java开发都是站在jar包这个巨人的肩膀上开发,速度更快. 各个web框架综合排名: 框架从何性能测试报告: In the following tests, we have measured the ...
最新文章
- win10显示隐藏文件_如何在Mac上显示隐藏文件?苹果mac显示隐藏文件夹方法
- 4道Python装饰器练习题
- Salesforce 小知识:大量“子记录”的处理方法
- 关于Newtonsoft.Json,LINQ to JSON的一个小demo
- rtmp/rtsp/hls公网测试地址
- 设计模式的C语言应用-建造者模式-第七章
- C编译: 使用gdb调试
- oracle查找clob中的值,Oracle 查找带有CLOB字段的所有表
- linux salt命令 -e,Linux记录-salt命令
- 品高云产品经理邱洋:做国内云计算第一品牌
- 开发的免费Windows 8 应用程序
- 笔记本计算机涂硅脂,图吧小白教程 篇十一:笔记本拆机换硅脂教程(大拆)...
- Java框架全开源商城PC+手机版+微商城独立版+全开源系统源码
- 上位机和下位机计算机联锁,上位机下位机各是什么意思?上位机下位机介绍
- 滤波器主要参数及特性
- Mybatis中的动态SQL,一对一,一对多以及标签
- 操作系统之文件系统:4、文件存储空间管理(空闲表法、空闲链表法、位示图法、成组链接法)
- web页面播放优酷视频,播放html5视频,兼容ie7 vcastr22.swf播放
- Docker快速入门与使用
- 2. 因子(factor)、缺失数据(na)、字符串、时间序列数据
热门文章
- 天体运行轨迹_太阳系内天体的运行轨迹是什么?开普勒为什么这么伟大?
- SDUT 4123 喵帕斯之天才算数少女
- Linux应用开发3 字符串处理,字符串与其他数字类型的转换,向应用程序传参
- 1368: 海军节上的鸣炮声计算
- putty远程登录不上,并行配置不正确,两招搞定
- Windows装机必备常用软件
- 手机可以找出 暗藏的摄像头
- ARM hint instruction-WFI(Wait For Interrupt)指令的一些笔记
- [ATL/WTL]_[初级]_[自定义多列TreeView]
- Cloudflare api 设置Firewall rules防止wodpress被爆力破解