Spring 4 @controller配置

时间:2014-11-25 11:52:28

标签: java spring spring-mvc annotations

我正在将一个webapp从2.5开始迁移到Spring 4,但我发现了一个问题。 我有两个不同的url,适用于同一个类的两个不同配置。 在我的旧版本中,我有类似的东西:

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/url1.htm">bean1</prop>
                <prop key="/url2.htm">bean2</prop>
              </props>
          </property>
  </bean>

和bean类似

<bean id="bean1" class="com.package.Controller" scope="session">
    <property name="property" value="value of property"/>
</bean>
<bean id="bean2" class="com.package.Controller" scope="session">
    <property name="property" value="a different value of the same property"/>
</bean>

我怎么能用注释做到这一点?

1 个答案:

答案 0 :(得分:1)

在控制器类上使用@Controller注释,并使用@RequestMapping注释映射/url1.htm和/url2.htm。看Spring Reference @RequestMapping

你会得到这样的东西:

@Controller
@RequestMapping("/url1.htm")
public class bean1{

}
@Controller
@RequestMapping("/url2.htm")
public class bean2{

}

并在每个类中设置bean属性。 如果您不想复制方法,可以这样做

@Controller
public class bean1{

   @RequestMapping("/url{id}.htm")
   public void setBeanProp(@PathVariable int id){
     if (id.equals(1))
     ...
     else
     ...


    }