SpringBoot加载mapper.xml的两种方法

SpringBoot加载mapper.xml的两种方法,第1张

(1)在yml里面配置mapper文件的路径

mybatis:

     type-aliases-package: com.entity

     mapper-locations: classpath:mapper/*.xml

(2)在启动类里面添加mapper类的扫描包

@SpringBootApplication

@MapperScan("com.mapper")

public class PlanApplication {}

(1)在pom.xml文件里面配置资源文件加载路径

<build>

<resources>

<resource>

<directory>src/main/java</directory>

<includes>

<include>**/*.properties</include>

<include>**/*.xml</include>

</includes>

<filtering>false</filtering>

</resource>

</resources>

</build>

(2)在yml里面配置实体类的别名

mybatis:

     type-aliases-package: com.entity

(3)在启动类里面添加mapper类的扫描包

@SpringBootApplication

@MapperScan("com.mapper")

public class PlanApplication {}

在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值:

1、引入依赖:

[html] view plain copy

<!-- 支持 @ConfigurationProperties 注解 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-configuration-processor</artifactId>

<optional>true</optional>

</dependency>

2、配置文件(application.yml)中配置各个属性的值:

[plain] view plain copy

myProps: #自定义的属性和值

simpleProp: simplePropValue

arrayProps: 1,2,3,4,5

listProp1:

- name: abc

value: abcValue

- name: efg

value: efgValue

listProp2:

- config2Value1

- config2Vavlue2

mapProps:

key1: value1

key2: value2

3、创建一个bean来接收配置信息:

[java] view plain copy

@Component

@ConfigurationProperties(prefix="myProps") //接收application.yml中的myProps下面的属性

public class MyProps {

private String simpleProp

private String[] arrayProps

private List<Map<String, String>>listProp1 = new ArrayList<>()//接收prop1里面的属性值

private List<String>listProp2 = new ArrayList<>()//接收prop2里面的属性值

private Map<String, String>mapProps = new HashMap<>()//接收prop1里面的属性值

public String getSimpleProp() {

return simpleProp

}

//String类型的一定需要setter来接收属性值;maps, collections, 和 arrays 不需要

public void setSimpleProp(String simpleProp) {

this.simpleProp = simpleProp

}

public List<Map<String, String>>getListProp1() {

return listProp1

}

public List<String>getListProp2() {

return listProp2

}

public String[] getArrayProps() {

return arrayProps

}

public void setArrayProps(String[] arrayProps) {

this.arrayProps = arrayProps

}

public Map<String, String>getMapProps() {

return mapProps

}

public void setMapProps(Map<String, String>mapProps) {

this.mapProps = mapProps

}

}

启动后,这个bean里面的属性就会自动接收配置的值了。

4、单元测试用例:

[java] view plain copy

@Autowired

private MyProps myProps

@Test

public void propsTest() throws JsonProcessingException {

System.out.println("simpleProp: " + myProps.getSimpleProp())

System.out.println("arrayProps: " + objectMapper.writeValueAsString(myProps.getArrayProps()))

System.out.println("listProp1: " + objectMapper.writeValueAsString(myProps.getListProp1()))

System.out.println("listProp2: " + objectMapper.writeValueAsString(myProps.getListProp2()))

System.out.println("mapProps: " + objectMapper.writeValueAsString(myProps.getMapProps()))

}

测试结果:

[plain] view plain copy

simpleProp: simplePropValue

arrayProps: ["1","2","3","4","5"]

listProp1: [{"name":"abc","value":"abcValue"},{"name":"efg","value":"efgValue"}]

listProp2: ["config2Value1","config2Vavlue2"]

mapProps: {"key1":"value1","key2":"value2"}

SpringBootRun方法会在应用启动时扫描配置类。SpringBootRun方法是一个静态方法,它可以接受一个参数,该参数是一个字符串数组,其中包含要传递给应用程序的参数。SpringBootRun方法会调用SpringApplication类的run方法,该方法会接受一个参数,该参数是一个配置类,它包含了应用程序所需的所有配置信息。在调用run方法之后,SpringBootRun方法会扫描该配置类,以确定应用程序需要加载哪些组件。一旦所有组件都被加载,应用程序就可以正常运行了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11575599.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存