@Autowired 、默认按类型装配。默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。如果我们想使用按名称装配,可以结合@Qualifier注解一起使用
@Resource、默认按名称装配,当找不到与名称匹配的bean才会按类型装配。如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象。需要导入import javax.annotation包。
@Component、 通用的构造型注解,标识该类为spring的一个组件。可以将一个类转换成一个bean,交由spring容器进行管理。可以设置bean的id。@Component (“xxx”)就是bean的id。如果不加xxx,则默认的名称(id)是小写开头的非限定类名。这个标注可以显示消除bean定义
@Repository、存储层Bean。标识将该类定义为数据仓库。
@Service、业务层 Bean,标识将该类定义为服务。
@Controller、展示层Bean。便是将该类定义为Spring MVC controller
@RequestMapping 、可以在控制器类的级别和/或其中的方法的级别上使用,将一个特定请求或者请求模式映射到一个控制器之上。之后你还可以另外添加方法级别的注解来进一步指定到处理方法的映射关系。 详细请参考该链接:超详细 Spring @RequestMapping 注解使用技巧
@PathVariable、可以用来映射URL中的占位符到目标方法的参数中。详细请参考该链接:PathVariable用法
@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable("id") Integer id) {
System.out.println("testPathVariable:"+id);
return SUCCESS;
}
作用于Servlet生命周期的注解两个:https://blog.csdn.net/wo541075754/article/details/52174900
@PostConstruct、定义Bean初始化之前的自定义行为。是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。
注意事项:
- 只有一个方法可以使用此注释进行注解;
- 被注解方法不得有任何参数;
- 被注解方法返回值为void;
- 被注解方法不得抛出已检查异常;
- 被注解方法需是非静态方法;
- 此方法只会被执行一次;
@PreDestroy、定义Bean销毁之前的操作。
servelet执行顺序
要启用注解,必须在xml中配置。
<!-- 加入下面这两个配置才能支持注解功能 -->
<bean
id="handlerMapping"class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean
id="handlerAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
还要让加了注解的类所在的包被spring能够扫描到