1 Spring 注解
1.1 什么是基于 Java 的 Spring 注解配置
基于 Java 的注解特性,允许开发人员在少量的 Java 注解的帮助下,进行大部分 Spring 配置。
以@Configuration 注解为例,它用来标记类可以当做一个 bean 的定义,被 Spring IOC 容器使用。
另一个例子是@Bean 注解,它表示此方法将要返回一个对象,作为一个 bean 注册进 Spring 应用上下文。
1.2 怎样开启注解装配?
注解装配在默认情况下是不开启的,为了使用注解装配,我们必须在 Spring 配置文件中配置 <context:annotation-config/> 元素。
1.3 @Component, @Controller, @Repository, @Service 有何区别?
@Component:这将 java 类标记为 bean。它是任何 Spring 管理组件的通用构造型。spring 的组件扫描机制现在可以将其拾取并将其拉入应用程序环境中。
@Controller:这将一个类标记为 Spring Web MVC 控制器。标有它的 Bean 会自动导入到 IoC 容器中。
@Service:这个注解是具有类似用途和功能的 @Component 注解的特化。相较于@Component 没有多余行为,仅仅表明是服务层类。
@Repository:这个注解是具有类似用途和功能的 @Component 注解的特化。它将 DAO 导入 IoC 容器,并使未经检查的异常有资格转换为 Spring DataAccessException。
1.4 @Required 注解有什么作用
表明 bean 的属性必须在配置 bean 的时候设置,通过一个 bean 定义的显式的属性值或通过自动装配,若@Required 注解的 bean 属性未被设置,容器将抛出 BeanInitializationException。
1.5 @Autowired 注解有什么作用
@Autowired 默认是按照类型装配注入的,默认情况下它要求依赖对象必须存在(可以设置它 required 属性为 false)。@Autowired 注解提供了更细粒度的控制,包括在何处以及如何完成自动装配。它的用法和@Resource 一样,修饰 setter 方法、构造器、属性或者具有任意名称和/或多个参数的 PN 方法。
1.6 @Qualifier 注解有什么作用
和@Autowired 注解一起使用,来对修饰的对象使用按名称装配。常用于对多个相同类型 bean 中只装配其中一个 bean 的场景。
1.7 @RequestMapping 注解有什么用?
将特定 HTTP 请求方法映射到相应的控制器中的特定类或方法中。放在类上,映射请求的 URL;放到方法上,映射 URL 和 HTTP 请求方法。