您的位置:首页 > 编程语言 > Java开发

Spring MVC 系列(二)——基于注解的开发

2016-02-15 08:56 555 查看
上一篇博客介绍了Spring MVC的核心组件和工作流程,众所周知,实现同样的功能,相较于繁琐的配置文件而言,使用注解便简单高效的多。Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发本文就将介绍Spring MVC常用注解以及使用场景。

一、Spring常用注解

@Controller——>控制层

@Service ——>业务层

@Repository——>Dao层

@Component ——>仅仅表示一个组件 (Bean) ,可以作用在任何层次。

Spring通过监测一个Bean是否含有注解以及注解类型,确定该Bean是否有Spring容器进行管理,如果包含Spring注解,Spring便会自动创建相应的 BeanDefinition 对象,并注册到 ApplicationContext 中。这些类就成了 Spring受管组件。当一个 Bean 被自动检测到时,会根据那个扫描器的 BeanNameGenerator 策略生成它的 bean名称,自动纳入Spring容器的管辖范围。

二、Spring MVC常用注解

Spring MVC作为Spring框架的web MVC产品,常用的注解当然必不可少的@Controller

1、@Controller


直接作用于MVC中C(controller控制层),控制层中每一个Controller都会加上这个注解,或者通过Bean显示配置的形式,将该Controller交与Spring容器管理。

2、@RequstMapping

a) @RequstMapping 主要作用于Controller的方法注解

@RequstMapping的作用就等同于在springmvc-servlet配置文件中,对Controller声明时的name属性,形如:@RequstMapping(“/hello.do”),同样的通过BeanName映射方式访问到该Controller,这里也是这个用途,通过@RequstMapping(“/hello.do”)中/hello.do的值组成URL访问路径,访问某特定Controller下的某特定方法。例如:http://localhost:8091/springMVC/hello.do

b) @RequstMapping 也可作用于整个Controller类,为该Controller指定唯一标识或者说命名空间。

如果在整个Controller类前加上@RequstMapping注解,则表明该Controller以此RequstMapping为标识,访问时,自然需要在方法的RequstMapping值前补充Controller的RequstMapping才可找到该Controller,再通过方法的RequstMapping值找到指定方法。

3、综合看来,@RequstMapping注解的作用主要在于为Controller和Controller中的方法添加唯一标识,组成浏览器访问的URL地址,通过RequstMapping访问到指定Controller的指定方法。

三、Spring MVC注解应用

1、首先添加annotation相关jar

2、在springmvc-servlet.xml中配置,指定注解使用范围

<!-- mvc的注解驱动 -->
<mvc:annotation-driven/>
<!-- 一旦有扫描器的定义mvc:annotation-driven不需要,扫描器已经有了注解驱动的功能 -->
<context:component-scan base-package="cn.itcast.springmvc"/>

<!-- 前缀+ viewName +后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- webroot到某一指定的文件夹的路径 -->
<property name="prefix" value="/WEB-INF/jsp/"></property>
<!-- 视图名称的后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>

3、在Controller中使用注解

@Controller//用来标注当前类是springmvc的控制层的类
@RequestMapping("/test")//controller的唯一标识或者命名空间
public class TestController {

@RequestMapping("/hello.do")//用来访问控制层的方法的注解
public String hello(){
System.out.println("hello springmvc with annotation");
return "jsp1/index";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: