【问题标题】:springmvc <mvc:annotation-driven /> and <context:component-scan base-package="" />springmvc <mvc:annotation-driven /> 和 <context:component-scan base-package="" />
【发布时间】:2018-05-24 06:06:11
【问题描述】:

我有一个 Spring+SpringMVC 演示,当我在 spring-mvc.xml 中没有&lt;mvc:annotation-driven/&gt; 时,我无法理解如何使用&lt;mvc:annotation-driven/&gt;。项目也可以运行,如果可以,为什么还要在spring-mvc.xml中写&lt;mvc:annotation-driven/&gt;?任何人都可以回答我,请。谢谢

web.xml

<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring.xml</param-value>
    </context-param>

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

spring-mvc.xml:

<context:component-scan base-package="com.jiehang.spring.controller" />
<!-- <mvc:annotation-driven /> -->
<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/pages/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>

spring.xml:

<bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
        <property name="url" value="jdbc:oracle:thinXXX" />
        <property name="username" value="XXX" />
        <property name="password" value="XXX" />
    </bean>

    <bean id="tsmCountsService" class="com.jiehang.spring.service.impl.TsmCountsServiceImpl">
        <property name="tsmCountsDao" ref="tsmCountsDao" />
    </bean>

    <bean id="tsmCountsDao" class="com.jiehang.spring.dao.impl.TsmCountsDaoImpl">
        <property name="dataSource" ref="dataSource" />
    </bean>

控制器:

@Controller
public class FundController {

    @Autowired
    private TsmCountsService tsmCountsService;

    public TsmCountsService getTsmCountsService() {
        return tsmCountsService;
    }
    public void setTsmCountsService(TsmCountsService tsmCountsService) {
        this.tsmCountsService = tsmCountsService;
    }


    @RequestMapping("/queryFund")
    public ModelAndView queryFundByFundId() {
        List<TsmCounts> funds = tsmCountsService.queryUser();
        System.out.println(funds);
        return null;
    }

}

当我输入 url:http://localhost:8080/TestSpringmvc/queryFund 时,我可以得到输出结果。所以,不写&lt;mvc:annotation-driven /&gt;也没关系。

【问题讨论】:

    标签: java spring spring-mvc


    【解决方案1】:

    &lt;mvc:annotation-driven /&gt; 提供对注解驱动的 MVC 控制器(如 @RequestMapping 和 @Controller)的支持,尽管它是默认行为,同时它还增加了对通过 @Valid 进行验证和使用 @RequestBody/ResponseBody 的消息体的支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 2017-02-04
      • 1970-01-01
      • 1970-01-01
      • 2016-09-15
      • 1970-01-01
      相关资源
      最近更新 更多