目录
一、注解
1.1、什么是基于注解的容器配置
1.2、如何在 spring 中启动注解装配?
1.3、@Component, @Controller, @Repository, @Service 有何区别?
1.4、@Required 注解有什么用?
1.5、@Autowired 注解有什么用?
1.6、@Qualifier 注解有什么用?
1.7、@RequestMapping 注解有什么用?
二、数据访问
2.1、spring DAO 有什么用?
2.2、列举 Spring DAO 抛出的异常
2.3、spring JDBC API 中存在哪些类?
2.4、使用 Spring 访问 Hibernate 的方法有哪些?
2.5、列举 spring 支持的事务管理类型
2.6、spring 支持哪些 ORM 框架
三、AOP
3.1、什么是 AOP?
3.2、什么是 Aspect
3.3、什么是切点(JoinPoint)
3.4、什么是通知(Advice)
3.5、有哪些类型的通知(Advice)?
3.6、指出在 spring aop 中 concern 和 cross-cutting
concern 的不同之处。
3.7、AOP 有哪些实现方式?
3.8、Spring AOP and AspectJ AOP 有什么区别?
3.9、如何理解 Spring 中的代理?
3.10、什么是编织(Weaving)?
四、MVC
4.1、Spring MVC 框架有什么用?
4.2、描述一下 DispatcherServlet 的工作流程
4.3、介绍一下 WebApplicationContext
一、注解
1.1、什么是基于注解的容器配置
不使用 XML 来描述 bean 装配,开发人员通过在相关的类,方法或字段声明上
使用注解将配置移动到组件类本身。它可以作为 XML 设置的替代方案。例如:
Spring 的 Java 配置是通过使用
@Bean
和
@Configuration
来实现。
@Bean
注解扮演与 元素相同的角色。
@Configuration
类允许通过简单地调
用同一个类中的其他
@Bean
方法来定义 bean 间依赖关系。
例如:
public class StudentConfig {
public StudentBean myStudent() {
return new StudentBean();
1.2、如何在 spring 中启动注解装配?
默认情况下,Spring 容器中未打开注解装配。因此,要使用基于注解装配,我们
必须通过配置
元素在 Spring 配置文件
中启用它。
1.3、@Component, @Controller, @Repository, @Service 有何区别?
@Component
:这将 java 类标记为 bean。它是任何 Spring 管理组件的通用构造型。spring 的组件扫描机制现在可以将其拾取并将其拉入应用程序环境中。
@Controller
:这将一个类标记为 Spring Web MVC 控制器。标有它的Bean 会自动导入到 IoC 容器中。
@Service
:此注解是组件注解的特化。它不会对
@Component
注解提供任何其他行为。您可以在服务层类中使用
@Service
而不是 @Component,因为它以更好的方式指定了意图。
@Repository
:这个注解是具有类似用途和功能的
@Component
注解的特
化。它为 DAO 提供了额外的好处。它将 DAO 导入 IoC 容器,并使未经检查
的异常有资格转换为 Spring DataAccessException。
1.4、@Required 注解有什么用?
@Required
应用于 bean 属性 setter 方法。此注解仅指示必须在配置时使用
bean 定义中的显式属性值或使用自动装配填充受影响的 bean 属性。如果尚未
填充受影响的 bean 属性,则容器将抛出 BeanInitializationException。
public void setName(String name){
1.5、@Autowired 注解有什么用?
@Autowired
可以更准确地控制应该在何处以及如何进行自动装配。此注解用于
在 setter 方法,构造函数,具有任意名称或多个参数的属性或方法上自动装配
bean。默认情况下,它是类型驱动的注入。
public void setName(String name) {
1.6、@Qualifier 注解有什么用?
当您创建多个相同类型的 bean 并希望仅使用属性装配其中一个 bean 时,您可
以使用
@Qualifier
注解和
@Autowired
通过指定应该装配哪个确切的 bean
来消除歧义。
例如,这里我们分别有两个类,Employee 和 EmpAccount。在 EmpAccount
中,使用
@Qualifier
指定了必须装配 id 为 emp1 的 bean。