面试谈java开源框架_原Java面试中常见的开源框架的面试问题(一)

1、hibernate和mybatis的区别。

相同点:

1)都属于ORM框架

2)都是对jdbc的包装

3)都属于持久层的框架

不同点:

1)hibernate是面向对象的,mybatis是面向sql的;

2)hibernate全自动的orm,mybatis是半自动的orm;

3)hibernate查询映射实体对象必须全字段查询,mybatis可以不用;

4)hibernate级联操作,mybatis则没有;

5)hibernate编写hql查询数据库大大降低了对象和数据库的耦合性,mybatis提供动态sql,需要手写sql,与数据库之间的耦合度取决于程序员所写的sql的方法,所以hibernate的移植性要远大于mybatis。

6)hibernate有方言夸数据库,mybatis依赖于具体的数据库。

7)hibernate拥有完整的日志系统,mybatis则相对比较欠缺。

举个例子来形容下:

hibernate就好比是一款智能机器人,可以给使用者带来很大的方便,但是要研发出来这款机器人需要的成本很高(包括学习以及熟练度);mybatis就好比是一套机械工具,使用起来很简单方便,但是如何使用取决于使用者。

2、讲讲mybatis的连接池。

a4c26d1e5885305701be709a3d33442f.png

这部分内容理解的不是很好,稍后进行补充更新。

3、spring框架中需要引用那些jar包,以及这些jar包的用途。

spring.jar是包含完整发布的单个jar包。除了spring.jar文件外还包含13个独立的jar包,各自对应spring不同的组件,在使用时可以根据实际情况选择需要的jar包,不必引入整个spring.jar包中所有的文件

1)spring-core.jar:包含spring框架基本的核心工具类,其他组件都要使用这个包里面的类,是其他组件的核心;

2)spring-bean.jar:是所有的应用都要用到的,包含访问配置文件、创建和管理bean以及进行IoC和DI操作所需的相关类;

3)spring-aop.jar:包含使用AOP特性时所需的类;

4)spring-context.jar:为spring核心提供了大量扩展;

5)spring-dao.jar:包含spring DAO、spring Transaction进行数据访问的所有类;

6)spring-hibernate.jar:包含spring对hibernate 2以及hibernate

3进行封装的所有类;

7)spring-jdbc.jar:包含spring对JDBC数据库访问进行封装的所有类;

8)spring-orm.jar:包含多DAO特性集进行了扩展;

9)spring-remoting.jar:包含支持EJB、JMS、远程调用Remoting方面的类;

10)spring-support.jar:包含支持缓存Cache、JAC、JMX、邮件服务、任务计划Scheduling方面的类;

11)spring-web.jar:包含web开发时,用到spring框架时所需的核心类;

12)spring-webmvc.jar:baohan Spring MVC框架相关的所有类;

13)spring-mock.jar:包含spring一整套mock类来辅助应用的测试。

4、springMVC的原理。

这部分是参考他人的,个人觉得这部分写的很不错,附上链接:

5、springMVC常用注解。

1、@Controller:用于标记一个类,使用它标记的类就是一个SpringMVC

Controller对象。但还不是真正意义上的SpringMVC的一个控制类,需要使用@RequestMapping注解的方法才是真正处理请求的处理器。

2、@RequestMapping:用力啊处理请求地址映射的注解,可用于类或者方法上。

3、@Resource和@Autowired都是做bean的注入时使用,严格意义上来说@Resource不是Spring的注解,需要导包。

4、@PathVariable:用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出URI模板中的变量作为参数。

5、@CookieValue:用来获取Cookie中的值;

6、@RequestParam:用于将请求参数区数据映射到功能处理方法上的参数;

7、@SessionAttributes:将值放到session作用域中,写在class上面

8、@ModelAttribute:代表的是Controller所有的方法在调用前,先执行此@ModelAttribute方法;

9、@ResponseBody:该注解用于将Controller的方法返回对象,通过适当的HttpMessageConverter转换为指定格式后,写入到response对象的body数据区。

6、spring中BeanFactory和ApplicationContext的联系和区别。

BeanFactory是spring中较为原始的Factory,无法支持spring的许多插件,如AOP功能、Web应用等。

ApplicationContext接口是通过BeanFactory接口派生而来的,除了具备BeanFactory接口的功能外,还具备资源访问、事件传播、国际化消息访问等功能。

总体区别如下:

1)使用ApplicationContext,配置bean默认配置是singleton,无论是否使用,都会被实例化。优点是预先加载,缺点是浪费内存;

2)使用BeanFactory实例化对象时,配置的bean等到使用的时候才会被实例化。优点是节约内存,缺点是速度比较慢,多用于移动设备的开发;

3)没有特殊要求的情况下,应该使用ApplicationContext完成,ApplicationContext可以实现BeanFactory所有可实现的功能,还具备其他更多的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值