hibernate面试题汇总V1(6)
时间:2025-03-11
时间:2025-03-11
hibernate面试题汇总V1
4.使用内部类可以非常方便的编写事件驱动程序。
在Spring中的应用:HibernateCallback
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException { ...
}
})
6、 Jdk代理和CGLIB代理的区别,Spring强制使用CGLIB的配置方式?5分
JDK动态代理只能对实现了接口的类生成代理,而不能针对类
CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法 因为是继承,所以该类或方法最好不要声明成final
如何强制使用CGLIB实现AOP?
添加CGLIB库,SPRING_HOME/cglib/*.jar
在spring配置文件中加入<aop:aspectj-autoproxy proxy-target-class="true"/>
7、 自动装配的模式(五种)5分
no
byName 根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。例如,在bean定义中将autowire设置为by name,而该bean包含master属性(同时提供setMaster(..)方法),Spring就会查找名为master的bean定义,并用它来装配给master属性。
byType 如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配。如果存在多个该类型的bean,那么将会抛出异常,并指出不能使用byType方式进行自动装配。若没有找到相匹配的bean,则什么事都不发生,属性也不会被设置。如果你不希望这样,那么可以通过设置dependency-check="objects"让Spring抛出异常。
constructor 与byType的方式类似,不同之处在于它应用于构造器参数。如果在容器中没有找到与构造器参数类型一致的bean,那么将会抛出异常。
autodetect 通过bean类的自省机制(introspection)来决定是使用constructor还是byType方式进行自动装配。如果发现默认的构造器,那么将使用byType方式。
8、 什么IOC,描述你对IOC的理解
IoC (Inversion Of Control)中文名为控制反转,就是由容器来控制业务对象之间的依赖关系,而非传统实现中,由代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。控制权的转移带来的好处就是降低了业务对象之间的依赖程度
9、Spring有几种DI方式,分别描述
DI主要有两种注入方式,即和
构造器注入
基于构造器的DI通过调用带参数的构造器来实现,每个参数代表着一个依赖 Setter注入
通过调用无参构造器或无参static工厂方法实例化bean之后,调用该bean的setter方
上一篇:苯佐卡因的制备(综合实验报告)