springboot自定义配置文件

2021-01-05 01:28

阅读:632

标签:lin   throws   sping   初始化   highlight   经验   ict   plain   match   

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

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

  数据库的配置转换:

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

    "dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        "driverClassName" value="${jdbc.mybatis.driver}" />
        "url" value="${jdbc.mybatis.url}" />
        "username" value="${jdbc.mybatis.username}" />
        "password" value="${jdbc.mybatis.password}" />
        
        "initialSize" value="10" />
        
        "maxActive" value="1000" />
        
        "maxIdle" value="30" />
        
        "minIdle" value="10" />
        
        "maxWait" value="2000" />
    
 
     

pringboot中的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@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 中的配置

1
2
3
4
5
6
7
   "sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       "dataSource" ref="dataSource" />
       "mapperLocations" value="classpath:springMVCmybatis/com/my/mapper/*.xml" />
       
        
   

 springboot配置sqlSessionFactoryBean,对应上面的sping的SqlSessionFactoryBean类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@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中的配置

1
2
3
4
5
class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        "basePackage" value="springMVCmybatis" />
        "sqlSessionFactoryBeanName" value="sqlSessionFactory" />
         
    

 springboot中的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package com.my.myconfigure;
 
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.context.annotation.Configuration;
 
//
//
//
//
//
 
@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文件作用一样,两者都是容器的作用。

springboot自定义配置文件

标签:lin   throws   sping   初始化   highlight   经验   ict   plain   match   

原文地址:https://www.cnblogs.com/moxiaotao/p/12983297.html


评论


亲,登录后才可以留言!