首页 > 代码库 > SpringMVC注解方式的使用

SpringMVC注解方式的使用

如何实现XML代码提示功能

与MyBatis一样,在使用注解方式之前,首先检查XML是否有代码提示功能,如果没有,需要进行配置。

以bean命名空间为例,配置其代码提示功能。

首先应当确认引入了bean命名空间,如果已经建好了XML配置文件,但是忘记引入bean命名空间。可以:

关闭XML,右键XML文件,在open with选项中选择以Spring Config Editor方式打开,这时文件左下角出现Namespaces,点击,选中bean命名空间并添加即可,配置XML注解方式需要的最基础的命名空间有bean、mvc、context;均可以这种方式引入。

在XML文件中找到类似http://www.springframework.org/schema/beans/spring-beans-4.2.xsd的代码并复制;

window-->Prefrences-->XML-->XML Catalog-->User Specified Entries-->Add

Location中点击File System,将之前下载的spring框架schema/beans目录下的4.2.xsd文件添加进来;Key type选择Schema Location,Key中内容将之前复制的链接粘贴上;点击OK即可添加代码提示功能。

使用注解之前的配置

<!-- 启动mvc注解方式 -->                                                                                
<mvc:annotation-driven/>                                                                          
<!-- 扫描包 -->                                                                                      
<context:component-scan base-package="self.exercise.controller"></context:component-scan>         
<!-- 配置视图解析器 -->                                                                                  
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="viewResolver">
    <property name="prefix" value="/WEB-INF/"/>                                                   
    <property name="suffix" value=".jsp"/>                                                        
</bean>                                                                                           

扫描的路径为包的路径,解析器根据该路径扫描该包下所有的方法,如果发现了注解就执行里面的操作,得到ModelAndView对象并进行视图解析。

如果扫描的形式为self.*.controller,*代表一层目录;例如self.exercise.controller、self.base.controller等包都可被扫描到;

如果扫描的形式为self.**.controller,**代表任一层数的目录;例如self.rbac.exercise.controller、self.base.controller等包都可被扫描到。

使用注解

建立一个普通的类。

在类前面使用注解@org.springframework.stereotype.Controller,该注解相当于XML方式中bean标签中的class属性;在类的方法前使用注解

@org.springframework.web.bind.annotation.RequestMapping,该注解相当于XML方式中bean标签中的id属性,指明了请求路径。

@Controller // 相当于<bean class="self.exercise.controller"></bean>  
public class IndexController {                                                            
    @RequestMapping("index") // 相当于<bean id="index"></bean>       
    public ModelAndView index() {                                 
        ModelAndView mav = new ModelAndView();                    
        mav.setViewName("index");                                 
        return mav;                                               
    }                                                             
}                                                                 

 

SpringMVC注解方式的使用