springboot自定义配置文件

  前言:如果你一点spring的基础没有,建议你不要学习springboot,至少先有一个spring的项目经验或者自己搭建过spring的项目再学习springboot,这样你会发现在spring中搞不懂的,在springboot中得到一些答案。springboot的原则是“约定大于配置”,所以在使用springboot的时候如果出现问题,没有一点基础,解决问题就很困难。

  目标:将spring的容器中的配置:数据库的配置,定时器的配置转换到springboot中,实现spring与springbooot的配置对接。

  数据库的配置转换:

  spring中数据库连接的配置如下

<!--数据库实例-->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.mybatis.driver}" />
        <property name="url" value="${jdbc.mybatis.url}" />
        <property name="username" value="${jdbc.mybatis.username}" />
        <property name="password" value="${jdbc.mybatis.password}" />
        <!-- 初始化连接大小 -->
        <property name="initialSize" value="10" />
        <!-- 连接池最大数量 -->
        <property name="maxActive" value="1000" />
        <!-- 连接池最大空闲 -->
        <property name="maxIdle" value="30" />
        <!-- 连接池最小空闲 -->
        <property name="minIdle" value="10" />
        <!-- 获取连接最大等待时间 -->
        <property name="maxWait" value="2000" />
    </bean>

     

pringboot中的配置

	@Bean(name = "dataSource")
	public BasicDataSource myGetDataSource() {
		BasicDataSource dataSource = new BasicDataSource();
		dataSource.setDriverClassName(driverClassName);
		dataSource.setUrl(url);
		dataSource.setPassword(passWord);
		dataSource.setUsername(userName);
		dataSource.setMaxIdle(2);
		dataSource.setMaxActive(20);
		dataSource.setMaxWait(1000);
		dataSource.setInitialSize(2);

		//
		dataSource.setValidationQuery("SELECT 1");
		dataSource.setRemoveAbandoned(true);
		dataSource.setTestWhileIdle(true);
		dataSource.setTimeBetweenEvictionRunsMillis(30000);
		dataSource.setNumTestsPerEvictionRun(30);
		dataSource.setMinEvictableIdleTimeMillis(1800000);
		return dataSource;
	}

spring 中的配置

 <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    	<property name="dataSource" ref="dataSource" />
		<property name="mapperLocations" value="classpath:springMVCmybatis/com/my/mapper/*.xml" />
		<!-- <property name="typeAliasesPackage" value="com.my.model"/> -->

    </bean>

 springboot配置sqlSessionFactoryBean,对应上面的sping的sqlSessionFactory。

@Bean(name = "sqlSessionFactoryBean")
	public SqlSessionFactoryBean myGetSqlSessionFactory(DataSource dataSource) throws Exception {

		SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();

		// mapperLocations
		ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

		try {
			sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:mapper/*Mapper.xml"));
		} catch (IOException e) {
			log.info("sqlSessionFactoryBean的setMapperLocations有问题");
			e.printStackTrace();
		}

		// dataSource

		sqlSessionFactoryBean.setDataSource(dataSource);

		// SqlSessionFactory sessionFactory = sqlSessionFactoryBean.getObject();

		return sqlSessionFactoryBean;

	}

 spring中的配置

 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	     <property name="basePackage" value="springMVCmybatis" />
	     <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> 

     </bean>

 springboot中的配置

package com.my.myconfigure;

import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.context.annotation.Configuration;

//<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
//<property name="basePackage" value="springMVCmybatis" />
//<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
//
//</bean>

@Configuration// 这个注释是需要在加载MybatisDbConfigure.class之后再加载MapperScanConfig这个类
@AutoConfigureAfter(MybatisDbConfigure.class)
public class MapperScanConfig {

	public MapperScannerConfigurer myGetMapperScannerConfigurer() {
		MapperScannerConfigurer myMapperScannerConfigurer = new MapperScannerConfigurer();

		myMapperScannerConfigurer.setBasePackage("com.my.dao");
		myMapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
		return myMapperScannerConfigurer;
	}

}

 

结论:springboot是通过@Configuration来标注自定义配置,配置中使用@Bean来添加类作用与spring配置中的.xml文件作用一样,两者都是容器的作用。

关于这部分配置已经上传到我的github上,感兴趣或者不懂得,可以登录查看。

  

时间: 2024-10-06 13:28:48

springboot自定义配置文件的相关文章

Springboot 之 自定义配置文件及读取配置文件

本文章来自[知识林] 读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单. 核心配置文件application.properties内容如下: server.port=9090 test.msg=Hello World Springboot! 使用@Value方式(常用): @RestController public class WebControlle

Springboot读取配置文件及自定义配置文件

1.创建maven工程,在pom文件中添加依赖 1 <parent> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-parent</artifactId> 4 <version>1.5.9.RELEASE</version> 5 </parent> 6 7 <dependencies>

企业分布式微服务云SpringCloud SpringBoot mybatis (十九)Spring Boot 自定义配置文件

上面介绍的是我们都把配置文件写到application.yml中.有时我们不愿意把配置都写到application配置文件中,这时需要我们自定义配置文件,比如test.properties: com.forezp.name=forezp com.forezp.age=12 怎么将这个配置文件信息赋予给一个javabean呢? @Configuration @PropertySource(value = "classpath:test.properties") @Configuratio

SpringBoot之加载自定义配置文件

SpringBoot默认加载配置文件名为:application.properties和application.yml,如果需要使用自定义的配置文件,则通过@PropertySource注解指定. JavaBean: package org.springboot.model; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.spri

SpringBoot读取自定义配置文件

自定义配置文件 my-config.properties 1 bfxy.title=bfxy 2 bfxy.name=hello spring boot! 3 bfxy.attr=12345 配置文件类 appconfig.java 1 import org.springframework.beans.factory.annotation.Autowired; 2 import org.springframework.beans.factory.annotation.Value; 3 impor

Springboot-读取核心配置文件及自定义配置文件

读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单. 核心配置文件application.properties内容如下: server.port=9090 test.msg=Hello World Springboot! 使用@Value方式(常用) 1 @RestController 2 public class WebController { 3 4

springBoot之配置文件的读取以及过滤器和拦截器的使用

前言 在之前的学习springBoot中,成功的实现了Restful风格的基本服务.但是想将之前的工程作为一个项目来说,那些是仅仅不够的.可能还需要获取自定义的配置以及添加过滤器和拦截器.至于为什么将这些写在一起,只是因为这些比较简单而且也会经常用到,所以干脆就一起写出来了. 读取配置文件 在使用maven项目中,配置文件会放在resources根目录下. 我们的springBoot是用Maven搭建的,所以springBoot的默认配置文件和自定义的配置文件都放在此目录. springBoot

SpringBoot自定义配置项

SpringBoot自定义配置项 Spring Boot内置的配置项远远不能支撑我们的程序运行,在项目设计的时候,往往因为扩展性的需要,项目需要预留很多自定义设置项,Spring Boot允许我们配置自定义选项. 学习视频: http://www.itlaoqi.com/chapter/1685.html 源码地址: QQ群 814077650 , 群共享中自助下载 老齐的官网: itlaoqi.com (更多干货就在其中) 在 Spring Boot中,有两种方式使用自定义选项 @Value

springboot2.0入门(七)-- 自定义配置文件+xml配置文件引入

一.加载自定义配置文件: 1.新建一个family.yam文件,将上application.yml对象复制进入family family: family-name: dad: name: levi age: 30 #${random.int} 随机数的值是不能传递的 mom: alias: - yilisha - alise age: ${family.dad.age} #妈妈的年龄和爸爸相同,没有则默认为24岁 child: name: happlyboy age: 5 friends: -