`
huazhizui
  • 浏览: 5494 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

spring+mybatis 配置文件占位符不能解析的问题

阅读更多

         在spring里使用org.mybatis.spring.mapper.MapperScannerConfigurer 进行自动扫描的时候,设置了sqlSessionFactory 的话,可能会导致PropertyPlaceholderConfigurer失效,也就是用${jdbc.username}这样之类的表达式,将无法 获取到properties文件里的内容。 导致这一原因是因为,MapperScannerConigurer实际是在解析加载bean定义阶段的,这个时候要是设置 sqlSessionFactory的话,会导致提前初始化一些类,这个时候,PropertyPlaceholderConfigurer还没来得及替 换定义中的变量,导致把表达式当作字符串复制了。 但如果不设置sqlSessionFactory 属性的话,就必须要保证sessionFactory在spring中名称一定要是sqlSessionFactory ,否则就无法自动注入。又或者直接定义 MapperFactoryBean ,再或者放弃自动代理接口方式。 

        解决方法:把关于mybatis的map的配置写到另外一个文件中,然后把新文件的beans的default-autowire=”byName”属性干掉,就解决这个问题了。

分享到:
评论

相关推荐

    Spring及Mybatis整合占位符解析失败问题解决

    Spring及Mybatis整合占位符解析失败问题解决 Spring framework和Mybatis是两个非常popular的Java框架,前者是一个基于Java的开源框架,提供了一个通用的编程模型和配置机制,可以帮助开发者快速开发企业级应用程序...

    Spring&Mybatis&SpringMVC总结笔记-最全最基础.pdf

    Mybatis与Spring的整合主要是在Spring的配置文件中配置数据源、SqlSessionFactoryBean等,从而整合Mybatis的SqlSession到Spring的ioc容器中。整合后的Mybatis可以享受Spring的事务管理能力,并且可以使用Spring的...

    开源框架面试题系列:Spring+SpringMVC+MyBatis-08.rar

    - **参数映射**:使用@Param注解或者问号占位符来映射传入参数。 了解并熟练掌握这些知识点对于在面试中脱颖而出至关重要。Spring的DI和AOP能力可以帮助构建松散耦合、易于测试的系统;SpringMVC简化了Web开发流程...

    spring boot2+mybatis+thymeleaf+bootstrap开发个人理财系统

    在运行时,Thymeleaf会解析模板,根据数据模型替换占位符,生成动态HTML内容,非常适合前后端分离的开发模式。 **Bootstrap** Bootstrap是由Twitter开源的一个用于前端开发的快速响应式框架,它包含了一系列CSS和...

    基于SpringBoot + Mybatis + Thymeleaf + MySQL开发的购书商城系统.zip

    Thymeleaf的一大特点是可以在浏览器直接查看未经处理的模板,而不会出现未解析的占位符。在本项目中,Thymeleaf用于生成动态的HTML页面,如商品展示、购物车、订单详情等,为用户提供友好的界面。 **MySQL** MySQL...

    基于SpringBoot+Mybatis+Thymeleaf+SemanticUI+Bootstrap的在线考试系统.zip

    这个压缩包中的“789”可能是表示文件数量或者一个占位符,实际的源代码文件会包含更多的类、配置文件、模板文件等,以实现上述功能。开发者可以通过解压这个压缩包,查看并学习源代码,了解如何整合这些技术来构建...

    spring mybatis 3.x 使用图文

    若在`MapperScannerConfigurer`中指定了`sqlSessionFactory`,且Spring配置文件中设置了`default-autowire="byName"`,那么在解析加载bean定义阶段,如果`dataSource`中使用了占位符,可能会导致提前初始化部分类,...

    mybatis-3.2.7 包含spring整合包

    首先,你需要配置 MyBatis 的核心配置文件和映射文件,然后在 Spring 的配置文件中声明 SqlSessionFactoryBean 和 DataSource,接着定义 DAO 接口和实现类,最后在服务层通过 Spring 注入 DAO 实例来调用数据库操作...

    Spring+Ibatis

    1. **SQL映射文件**:iBatis的配置文件包含SQL语句,允许动态SQL,提高了SQL的灵活性。 2. **SqlSessionFactory**:创建SqlSession对象的工厂,是iBatis的核心组件,负责管理SqlSession的生命周期。 3. **...

    Mybatis相关文件.rar

    5. **参数映射和结果映射**:Mybatis通过参数映射将Java对象的属性值与SQL语句中的占位符关联,通过结果映射将查询结果自动转换为Java对象。它可以自动处理基本类型和复杂类型的映射,包括集合、自定义对象等。 6. ...

    Mybatis相关

    Mybatis 是一款流行的Java持久层框架,用于简化数据库...通过学习这些资料,你可以掌握如何创建Mapper接口和XML配置文件,如何编写SQL语句,如何进行参数和结果映射,以及如何在实际项目中结合Spring框架使用Mybatis。

    MyBatis关于注解的配置

    MyBatis的注解功能使得开发者无需编写XML映射文件,只需在接口方法上添加注解,就能完成数据访问的配置。这提高了代码的可读性和开发效率,减少了XML配置的工作量。 2. **Mapper接口** 在MyBatis中,我们通常定义...

    MyBatis的Jar包

    3. **参数映射**:同样,MyBatis可以自动处理输入参数,将Java对象的属性映射到SQL的占位符上。 4. **缓存机制**:内置了本地缓存和二级缓存,能够提高数据访问效率,减少数据库交互。 5. **事务管理**:MyBatis...

    mybatis官方说明文档

    )作为参数占位符,MyBatis 会自动处理参数绑定。 - **动态 SQL**:MyBatis 支持基于标签的动态 SQL,可以根据条件动态生成 SQL 语句。 - **一级缓存和二级缓存**:理解这两级缓存的工作原理,合理配置以优化性能。 ...

    mybatis-3.5.0.zip

    2. **配置文件**:MyBatis的配置文件(mybatis-config.xml)用于全局配置,包括数据源、事务管理器、类型别名、插件等。此外,还有Mapper XML文件,用于定义SQL语句和映射规则。 3. **注解和XML映射**:MyBatis支持...

    MyBatis所需要的jar包

    - **配置文件**:mybatis-config.xml是MyBatis的全局配置文件,包含数据库连接信息、类型别名、环境配置等。 - **映射文件**:mapper.xml文件定义了SQL语句和结果映射,每个Mapper接口对应一个映射文件。 - **SQL...

    mybatis实战源码

    - 参数映射:通过#{param}的方式自动将Java对象的属性值映射到SQL的占位符上。 - 结果映射:通过元素定义复杂的结果集映射,包括一对一、一对多、多对一的关系映射。 4. MyBatis的缓存机制 - 一级缓存:基于...

    mybatis-3.5.7.7z

    3. **参数映射**:MyBatis自动处理方法参数与SQL语句中占位符的映射,支持简单的类型、Map类型以及POJO类型的参数。使用`@Param`注解可以为参数指定别名。 4. **结果映射**:通过ResultMap配置,MyBatis能将查询...

    mybatis3.4.1jar包及框架源码

    它可以自动将Java对象与SQL参数或查询结果关联,无需手动设置SQL占位符或解析结果集。 5. **Executor执行器**:MyBatis提供了两种执行器模式:Simple和Reused。Simple执行器每次执行SQL都会创建一个新的Statement...

    mybatis-3.4.5框架源代码

    5. **参数映射**:MyBatis通过`@Param`注解和`#{}`占位符实现了参数的映射。参数可以是单个值、Map、JavaBean或集合,大大降低了数据绑定的复杂性。 6. **缓存机制**:MyBatis提供了一级缓存和二级缓存。一级缓存是...

Global site tag (gtag.js) - Google Analytics