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

本文详细介绍了Spring MVC框架中常用注解及其应用场景,包括@Controller、@Service、@Repository、@Component以及@RequestMapping等,并通过示例展示了如何在实际项目中运用这些注解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     上一篇博客介绍了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";  
    }  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值