springmvc注解(1)

来源:互联网 发布:浙江省中医院知乎 编辑:程序博客网 时间:2024/06/04 14:43

1:@controller控制器(注入服务)

标记在一个类上,使用它来标记的类是一个springmvc controller对象,分发处理器将会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解,但是@controller只是定义一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器,单单使用@controller标记在一个类中不能真正意义上的说他是一个控制器因为这个使用springmvc还不认识它,这时需要把这个控制器交给spring来管理,有两种方式:

1)在springmvc的配置文件中定义myControllerbean对象

2)在springmvc中配置文件中告诉spring到哪里去找标记为@controllercontroller控制器

<!--方式一--><beanclass="com.host.app.web.controller.MyController"/><!--方式二-->< context:component-scan base-package ="com.host.app.web" />//路径写到controller的上一层(扫描包详解见下面浅析)

@repository(实现dao访问)

@service服务(注入dao)

@component(把普通的pojo实例化到spring容器中,相当于配置文件中<bean id=""class=""/>泛指组件,当组件不好归类的时候,我们可以使用这个注解

@Component,@Service,@Controller,@Repository注解的类,并把这些类纳入spring容器中管理

下面写这个是引入component的扫面组件

<context:component-scanbase-package=”com.mmnc”>

@ResponseBody作用:该注解用于Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

@RequestMapping:是一个用来处理地址映射的注解,可以用在方法或类上,用在类上,表示类中所响应请求方法都是该地址作为父路径,但是返回值通过视图解析器解析为实际物理视图,对于InternalResourceViewResolver视图解析器,会做如下的解析:

通过prefix +returnVal + suffix这样的方式得到实际的物理视图,然后做转发操作

<!-- 配置视图解析器:如何把 handler 方法返回值解析为实际的物理视图 -->

 <beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver">         <property name="prefix"value="/WEB-INF/views/"></property>        <property name="suffix"value=".jsp"></property>    </bean>

原创粉丝点击