spring面试题

it2022-05-05  124

Aspectj开发和AOP传统开发最大的区别是什么 AOP开发中通知类需实现对应的通知接口。 aspectj开发中的通知类可以不实现任何接口,只需定义功能方法即可 aspectj开发通知类型比AOP开发多了最终通知。传统aop有哪几种通知类型?aspectJ有哪几种通知类型? 传统aop,支持增强advice的通知类型有5种: 1.前置通知 org.springframework.aop.MethodBeforeAdvice 方法before 2.后置通知 org.springframework.aop.AfterReturningAdvice 方法afterReturning 3.环绕通知 org.aopalliance.intercept.MethodInterceptor 方法invoke 参数MethodInvocation.proceed() //执行目标方法 4.异常通知 org.springframework.aop.ThrowsAdvice 5.引介通知 aspectJ 1.前置通知 Before 2.后置通知 AfterReturning 3.环绕通知 Around 4.抛出通知 AfterThrowing 5.引介通知 DeclareParents 6.最终通知After 不管是否异常,该通知都会执行

jdk动态代理与静态代理的区别,jdk动态代理与cglib动态代理的区别? 静态代理,AspectJ实现,将切面代码直接编译到java类文件中 动态代理,将切面代码进行动态织入实现(spring采用,技术为:jdk动态代理 和 CGLIB动态字节码增强技术) JDK动态代理:在JVM内部动态生成class字节码对象(Class对象),只针对于实现接口的类代理 CGLIB动态代理:(Code Generation Library)开源项目,底层是使用一个小而快的字节码处理框架ASM,来转换字节码并生成新的类,也可以为没有实现接口的类代理

属性注入时按名称注入和类型注入的区别? 类型注入:@AutoWired ,根据数据类型注入对象,并且注入的对象需只有一个,否则框架无法识别注入哪个而报错 按名称注入:@AutoWired @Qualifier("name")或者@Resource(name="其他Bean")

jdbcTemplate查询数据的方法是什么,及其区别 //简单查询,返回一条数据一个值 T queryForObject("sql",T.class,参数...) //复杂查询,返回一条数据,RowMapper中手动封装数据 T queryForObject("sql",RowMapper<T>,参数...) //查询返回多条数据 List<T> query("sql",RowMapper<T>,参数...) 使用RowMapper的实现类BeanPropertyRowMapper<T>(T.class)可以实现数据自动封装 前提:实体类需提供无参public构造,bean属性名称要与表列名对应

 

转载于:https://www.cnblogs.com/Hymen-/p/9275614.html

相关资源:Spring面试题和答案(70道,史上最全).pdf

最新回复(0)