`

SpringMVC 的注解和 XML 冲突的问题

 
阅读更多

搭建Spring MVC 环境。controller中加上@Controller注解 。启动项目时出现了错误:Cannot map handler 'TestController' to URL path [/hello]: There is already handler of type [class com.yxl.test.controller.TestController] mapped.



 

控制器类:



 

 

配置文件:


 

错误原因:

 

spring容器注册生成类的时候,每个类值允许注册一次。

在TestController类上面加@Controller会把TestController注册成bean。在配置文件中又把TestController类注册了一次,所以发生了错误。spring允许注解和xml同时注册bean。但是注册的名字必须一致。

 

其实仔细观察,TestController和xml的id名称是一样的。

由于在component-scan扫描TestController时默认生成的id是类名首字母小写,也就是testController。

解决方法有两个:

1. 把<bean>里的id改为和component-scan生成的一致即可,也就是 

 这样不仅注入了内容,而且只映射一次。 

2. 删除该<bean>的xml注解,使用注解注入,java代码修改为 

public class Login {  
    @Autowired
    private IUserService userService;  
    ...
}

 

前提是userService类必须可以可以被扫描到(可以用注解或xml配置userService类)。 
若要注入配置文件也就是PropertyPlaceholderConfigurer配置的属性, 
则应该用value注解,例如 

@Value("${content}")
    private String content;

 

 

 

 

 

 

 

 

  • 大小: 62.1 KB
  • 大小: 17.8 KB
  • 大小: 30.6 KB
  • 大小: 26.5 KB
分享到:
评论

相关推荐

    springMVC注解开发代码

    本项目"springMVC注解开发代码"旨在展示如何通过注解进行 Spring MVC 应用的开发。 首先,`pom.xml` 文件是 Maven 项目的配置文件,它定义了项目依赖和构建设置。在 Spring MVC 开发中,通常会包含 spring-webmvc、...

    SpringMVC注解式开发.docx

    在实际开发中,根据项目需求选择合适的 `url-pattern` 并结合 `@RequestMapping` 注解,可以灵活地控制请求的路由和处理逻辑。通过理解这些基本概念,开发者能够更好地利用 Spring MVC 进行注解式开发。

    springMVC_Mybatis_jar

    SpringMVC 和 Mybatis 是两个在Java Web开发中广泛应用的框架。SpringMVC是Spring框架的一部分,主要用于构建前端控制器,而Mybatis是一个优秀的持久层框架,处理数据库操作。当这两个框架整合在一起时,可以实现...

    SpringMVC从无到有

    在本文中,我们将深入探讨SpringMVC的基本概念、配置、控制器、视图解析以及如何解决常见的问题,如jar包冲突。 一、SpringMVC简介 SpringMVC是一个轻量级的Web开发框架,它提供了强大的数据绑定、模型验证和本地化...

    Maven springMVC项目实例

    2. **依赖管理**:通过在`pom.xml`文件中声明依赖,Maven可以自动下载并管理项目所需的所有库,避免了版本冲突的问题。 3. **构建工具**:Maven通过`mvn clean`, `mvn compile`, `mvn test`, `mvn package`等命令...

    Maven+SpringMVC的入门级HelloWorld实例

    在IT行业中,Maven和SpringMVC是两个非常重要的组件,它们分别是项目管理和Web应用程序开发的核心工具。Maven是一款强大的项目构建系统,它通过管理项目的依赖关系和构建生命周期,简化了Java开发流程。而SpringMVC...

    maven + springmvc 入门实例

    2. **配置SpringMVC**: 创建`web.xml`配置文件,配置DispatcherServlet、视图解析器(如InternalResourceViewResolver)和字符编码过滤器。同时,还需要在Spring的配置文件中定义Controller beans。 3. **编写...

    一个springMVC和mybatis的简单整合例子

    2. 依赖冲突:确保使用的SpringMVC和MyBatis版本兼容,并正确导入所有依赖库。 3. 扫描问题:如果Mapper接口没有被正确扫描和注入,会导致无法调用数据库操作方法。 4. 数据源配置:事务管理器配置错误可能导致事务...

    mybatis-plus集成springboot和springmvc

    - **乐观锁**:通过 `@Version` 注解支持乐观锁机制,防止并发更新冲突。 - **自定义全局操作**:可以自定义全局的 SQL 片段、拦截器等。 总的来说,这个示例项目是学习 MyBatis-Plus 集成到 SpringBoot 和 ...

    spring + springmvc + mybatis整合

    1. **配置Spring**:创建Spring的核心配置文件(如`beans.xml`),定义bean的实例化和依赖关系,包括SpringMVC的DispatcherServlet配置、数据源、事务管理器等。 2. **配置SpringMVC**:创建SpringMVC的配置文件(如...

    SpringMVC+maven+redis集成示例

    - 添加相关依赖到pom.xml文件,确保SpringMVC和redis的客户端库(如Jedis)可用。 - 配置SpringMVC的DispatcherServlet,定义数据源和redis配置。 - 创建redis模板或bean,以便在应用中使用redis服务。 - 编写业务...

    SpringMVC+xfire1.2.6(webService)

    1、在Springmvc中放入xfire1.2.6jar,按照注解的方式配置后,springMVC启动不会扫描collection,后面修改了配置方式,web.xml使用org.codehaus.xfire.transport.http.XFireConfigurableServlet,xfire/services.xml...

    Spring+springMVC+Mybatis+Maven项目

    【Spring+SpringMVC+Mybatis+Maven项目】是一个典型的Java Web开发...它涵盖了后端服务的实现、数据库交互、项目构建和问题调试等关键环节,对于学习和实践Java Web开发的初学者或开发者来说,都是一个很好的学习资源。

    IntelliJ IDEA 2017建立简单springMVC(hua)

    SpringMVC 是一个基于 Java 的实现了 MVC 设计模式的请求驱动类型的轻量级 Web 框架,通过提供注解来简化 Web 层的开发。IntelliJ IDEA 是一个商业化的 Java IDE,它支持各种框架的项目搭建和开发。 在 IntelliJ ...

    Maven SpringMVC

    Maven的中央仓库包含了大量第三方库,通过在POM.xml中声明依赖,Maven会自动下载并管理这些库,避免了版本冲突问题。 6. **SpringMVC的数据绑定和验证** `@RequestParam`、`@PathVariable`等注解可以方便地从请求...

    JavaEclipseMaven,SpringMVC简单demo

    在这个过程中,开发者可能会遇到诸如版本兼容问题、依赖冲突、配置错误等挑战。解决这些问题需要对Java、Eclipse、Maven和Spring MVC有深入的理解。这个简单的demo对于初学者来说,是一个很好的起点,能够帮助他们...

    maven 多模块 +springMVC+MyBatis简单登陆

    MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。在本项目中,MyBatis将作为数据访问层,负责与数据库交互,提供SQL执行和...

    SpringMVC_mybatis整合jar包.zip

    在SpringMVC中,我们需要配置Controller、Model、View和HandlerMapping等组件,通过注解或者XML配置来完成绑定和调度。 MyBatis框架的核心是SqlSessionFactory,它创建SqlSession对象,用于执行SQL操作。MyBatis的...

    springmvc+mybatis点餐系统(包含完整数据库)

    它通过简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录,大大减少了开发人员的工作量。 在这个点餐系统中,前端采用了Bootstrap框架,...

    SpringMVC访问静态资源

    为了解决这个问题,可以在控制器方法上使用`@RequestMapping`注解,并明确指定方法的HTTP方法类型,如`GET`、`POST`,避免与静态资源的`GET`请求冲突。 ### 7. 性能优化 为了提高性能,Spring MVC允许你在部署时将...

Global site tag (gtag.js) - Google Analytics