Spring MVC 系列(二)——基于注解的开发
2016-02-15 08:56
555 查看
上一篇博客介绍了Spring MVC的核心组件和工作流程,众所周知,实现同样的功能,相较于繁琐的配置文件而言,使用注解便简单高效的多。Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发本文就将介绍Spring MVC常用注解以及使用场景。
@Service ——>业务层
@Repository——>Dao层
@Component ——>仅仅表示一个组件 (Bean) ,可以作用在任何层次。
Spring通过监测一个Bean是否含有注解以及注解类型,确定该Bean是否有Spring容器进行管理,如果包含Spring注解,Spring便会自动创建相应的 BeanDefinition 对象,并注册到 ApplicationContext 中。这些类就成了 Spring受管组件。当一个 Bean 被自动检测到时,会根据那个扫描器的 BeanNameGenerator 策略生成它的 bean名称,自动纳入Spring容器的管辖范围。
3、综合看来,@RequstMapping注解的作用主要在于为Controller和Controller中的方法添加唯一标识,组成浏览器访问的URL地址,通过RequstMapping访问到指定Controller的指定方法。
2、在springmvc-servlet.xml中配置,指定注解使用范围
3、在Controller中使用注解
一、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产品,常用的注解当然必不可少的@Controller1、@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.dob) @RequstMapping 也可作用于整个Controller类,为该Controller指定唯一标识或者说命名空间。
如果在整个Controller类前加上@RequstMapping注解,则表明该Controller以此RequstMapping为标识,访问时,自然需要在方法的RequstMapping值前补充Controller的RequstMapping才可找到该Controller,再通过方法的RequstMapping值找到指定方法。3、综合看来,@RequstMapping注解的作用主要在于为Controller和Controller中的方法添加唯一标识,组成浏览器访问的URL地址,通过RequstMapping访问到指定Controller的指定方法。
三、Spring MVC注解应用
1、首先添加annotation相关jar2、在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"; }
相关文章推荐
- (转)classpath、path、JAVA_HOME的作用及JAVA环境变量配置
- Eclipse快捷键
- Spring AOP(配置文件方式)
- Spring AOP(注解方式)
- Java中使用SQL标签库<sql:setDataSource />设置数据源
- Java中运用数组的四种排序方法
- 为什么不在spring容器管理controller
- Spring MVC 中 HandlerInterceptorAdapter的使用
- 算法提高 日期计算 蓝桥杯java详解
- 【Java】JDBC
- 如何搭建一个SpringMVC的开发环境(非注解)
- 如何解决Java.lang.NoClassDefFoundError--第一部分
- java.lang.IncompatibleClassChangeError
- java中字符串的替换
- Java JDBC学习笔记
- [JavaWeb基础] 032.第三方插件pinyin4j的使用
- 为什么java读取sqlserver2008中的date数据类型的数据比实际的少2天?
- Chapter1 基本Web应用程序
- struts2学习笔记--使用Validator校验数据
- Eclipse中10个最有用的快捷键组合