说说对SpringBoot的理解
答:本质上说SpringBoot就是Spring的基于注解开发的形式,SpringBoot将一些Spring Bean配置配置起来,使用Spring Boot你可以不用或者只需要很少的Spring配置。
SpringBoot的注解了解
@SpringBoot Application:启动类上的注解,用于开启自动配置
@EnableAutoConfiguration:@SpringBoot Application中的组合注解,用于开启自动配置
@import:@EnableAutoConfiguration的关键功能是通过@Import注解导入的ImportSelector来完成的
@Conditional:可根据是否满足指定的条件来决定是否进行Bean的实例化及装配
请你说说Spring的核心是什么
答:Ioc和Aop
Ioc:控制反转,由一开始的人为性创建维护对象,变成了将对象交给Spring容器控制,帮我们去创建所需要的对象,当我们需要使用对象时直接从Spring容器中获取。
Aop:是面向切面的编程,在不修改原有代码的情况下,增强跟主要业务没有关系的公共功能代码到之前写好的方法中的指定位置,比如在一个类后面加日志。
JDK动态代理和CGLIB有什么区别?
JDK动态代理:这是Java提供的动态代理技术,可以在运行时创建接口的代理实例。Spring AOP默认采用这种方式,在接口的代理实例中织入代码。
CGLib动态代理:采用底层的字节码技术,在运行时创建子类代理的实例。当目标对象不存在接口时,Spring AOP就会采用这种方式,在子类实例中织入代码。
@Autowired和@Resource注解有什么区别?
@Autowired是Spring提供的注解,@Resource是JDK提供的注解。
@Autowired是只能按类型注入,@Resource默认按名称注入,也支持按类型注入。
@Autowired按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。@Resource有两个中重要的属性:name和type。name属性指定byName,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象。需要注意的是,@Resource如果没有指定name属性,并且按照默认的名称仍然找不到依赖对象时, @Resource注解会回退到按类型装配。但一旦指定了name属性,就只能按名称装配了。
什么是Spring MVC?
答:MVC是一种设计模式,在这种模式下软件被分为三层,即Model(模型)、View(视图)、Controller(控制器)。Model代表的是数据,View代表的是用户界面,Controller代表的是数据的处理逻辑,它是Model和View这两层的桥梁。将软件分层的好处是,可以将对象之间的耦合度降低,便于代码的维护。
DAO层是做什么的?
数据访问对象,在项目中它通常作为独立的一层,专门用于访问数据库
说一说你知道的Spring MVC注解
@RequestMapping:用来处理请求地址映射
@RequestParam: