SpringMVC在配置文件中配置实体类映射文件路径的时候,mybatis包下面有N个xml文件,请问怎么配置?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC在配置文件中配置实体类映射文件路径的时候,mybatis包下面有N个xml文件,请问怎么配置?相关的知识,希望对你有一定的参考价值。

在配置文件中配置实体类映射文件路径的时候,mybatis包下面有N个xml文件,请问怎么配置:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- mybatis配置文件路径-->
<property name="configLocation" value=""/>
<!-- 实体类映射文件路径-->
<property name="mapperLocations" value="classpath:mybatis/UserMapper.xml"/>
</bean>

定义一个sqlMapConfig.xml文件,如下:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org./dtdt/mybatis-3-config.dtd">
<configuration>
<mappers>
<mapper resource="mybatis/UserMapper.xml"/>
<mapper resource="mybatis/VoteMapper.xml"/>
</mappers>
</configuration>

然后用sqlMapConfig.xml文件替换你接图中的文件UserMapper.xml文件,别把文件的路径名写错了。追问

谢谢,已解决

参考技术A <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
p:dataSource-ref="dataSource"
p:mapperLocations="classpath:common-mappers/*.xml"
p:typeAliasesPackage="com.lrlz.integral.dto.model"
p:configLocation="classpath:common-config/mybatis-config.xml"/>
<!-- 统一使用基类DAO -->
<bean id="sqlSession" class="com.lrlz.integral.common.dao.BaseDao">
<constructor-arg index="0" ref="sqlSessionFactory" />
<!--<constructor-arg index="1" value="BATCH" />-->
</bean>

comm-mappers 是我的实例关系xml路径,你改成你的就好了

SpringBoot注解配置文件映射属性和实体类

配置文件加载

方式一

  • Controller上面配置@PropertySource({"classpath:pay.properties"})
  • 添加属性@Value("wxpay.appid") private String payAppid;

pay.properties

# 微信支付的appid
wxpay.appid=w23232323
# 支付密钥
wxpay.sercret=abd
# 微信支付商户号
wx.mechid=1234

TestController.java

package net.cyb.demo.controller;

import net.cyb.demo.utils.JsonData;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/api/v1/test")
@PropertySource({"classpath:pay.properties"})
public class TestController {
    @Value("wxpay.appid")
    private String payAppid;
    @Value("wxpay.sercret")
    private String paySecret;
    @GetMapping("get_config")
    public JsonData testConfig(){
        Map<String,String> map=new HashMap<>();
        map.put("appid",payAppid);
        map.put("secret",paySecret);
        return JsonData.buildSuccess(map);
    }
}

方式二

  • 添加@Component注解
  • 使用PropertySource注解指定配置文件位置
  • 使用@ConfigurationProperties注解,设置相关属性
  • 必须通过注入IOC对象Resource进来,才能在类中使用获取的配置文件值。@Autowired private WXConfig wxConfig;

pay.properties

# 微信支付的appid
wxpay.appid=w23232323
# 支付密钥
wxpay.sercret=abd
# 微信支付商户号
wx.mechid=1234

WXConfig.java

package net.cyb.demo.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import java.io.Serializable;

@Configuration
@PropertySource({"classpath:pay.properties"})
public class WXConfig implements Serializable {
    @Value("wxpay.appid")
    private String payAppid;
    @Value("wxpay.sercret")
    private String paySecret;
    @Value("wx.mechid")
    private String payMechId;

    public String getPayAppid() {
        return payAppid;
    }

    public void setPayAppid(String payAppid) {
        this.payAppid = payAppid;
    }

    public String getPaySecret() {
        return paySecret;
    }

    public void setPaySecret(String paySecret) {
        this.paySecret = paySecret;
    }

    public String getPayMechId() {
        return payMechId;
    }

    public void setPayMechId(String payMechId) {
        this.payMechId = payMechId;
    }
}

TestController.java

package net.cyb.demo.controller;

import net.cyb.demo.config.WXConfig;
import net.cyb.demo.utils.JsonData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/api/v1/test")
public class TestController {
    @Autowired
    private WXConfig wxConfig;
    @GetMapping("get_config")
    public JsonData testConfig(){
        Map<String,String> map=new HashMap<>();
        map.put("appid",wxConfig.getPayAppid());
        map.put("secret",wxConfig.getPaySecret());
        map.put("mechid",wxConfig.getPayMechId());
        return JsonData.buildSuccess(map);
    }
}

 

以上是关于SpringMVC在配置文件中配置实体类映射文件路径的时候,mybatis包下面有N个xml文件,请问怎么配置?的主要内容,如果未能解决你的问题,请参考以下文章

spring-mybatis配置文件中指定实体类映射文件

spring-mybatis配置文件中指定实体类映射文件

SpringBoot注解配置文件映射属性和实体类

如何从 JPA 注释的实体类生成 JPA 映射文件?

配置文件详解和核心api讲解

(三)SpringBoot 配置文件自动映射到属性和实体类