springboot入门

springboot的配置文件:

application.properties和applicaion.yml两种。

yml配置文件的书写方式:

yml配置信息的获取方式:

1.自定义的配置信息:

@Value(${user.name})

@ConfigurationProperties

2.第三方技术配置信息:

spring整合mybatis:

1.引入mybatis的依赖和spring整合mybatis的依赖。

2.创建三个bean

springboot整合mybatis:

1.引入mybatis的起步依赖

2.配置数据库的相关信息。

第三方的配置信息一般由springboot自动读取,不需要我们编写代码去读取。

Bean的扫描:

Bean的注册:

1.自定义bean的注册只需要加入以下注解,并将这些类让springboot可以扫描到。2.第三方bean的注册。由于第三方的bean不能添加以上注解,所以需要另辟蹊径。

@Bean

在配置类中声明一个方法注入需要的bean,只需要创建一个方法使方法的返回值为bean对象。bean的名字默认为方法名。可以在@Bean中指定bean的名称。

如果方法的内部需要使用到ioc容器中已经存在的bean对象,那么只需要在方法的参数处声明即可,spring会自动注入。

@Import

1.导入配置类:使用@Import导入配置类不需要再添加@Configuration注解。

2.导入ImportSelector接口实现类(适用于导入多个配置类的方式)

自定义组合注解@EnableXxx注解,封装@Import注解。

再启动类上添加组合注解@EnableCommonConfig注解。

Bean的注册条件:

自动配置原理:

springboot项目引入mybatis的起步依赖后自动将SqlSessionFactoryBean和MapperScannerConfigurer和DataSource就自动注入到了IOC容器中。

源码分析:

程序引入web的启动依赖,启动后,会自动向IOC容器中注入DispatcherServlet

自定义starter:

mybatis的启动依赖都依赖哪些配置:

1.创建dmybatis-spring-boot-autoconfigure模块,创建MybatisAutoConfigure类实现自动配置,再resource下创建META-INF/spring/xxx.imports实现自动配置。

2.引入相关依赖:除了autoconfigure,因为我们要自定义自动配置。

创建自定义配置类。


@AutoConfiguration
public class MybatisAutoConfigure {
    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
        SqlSessionFactoryBean sqlSessionFactoryBean=new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        return sqlSessionFactoryBean;
    }
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer(BeanFactory beanFactory){
        MapperScannerConfigurer mapperScannerConfigurer=new MapperScannerConfigurer();
        List<String> packages = AutoConfigurationPackages.get(beanFactory);
        mapperScannerConfigurer.setBasePackage(packages.get(0));
        mapperScannerConfigurer.setAnnotationClass(Mapper.class);
        return mapperScannerConfigurer;
    }
}

创建META-INF/spring/xxx.imports,拷贝MybatisAutoConfigure的全路径到xxx.imports文件中。

创建dmybatis-spring-boot-starter模块,引入dmybatis-spring-boot-autoconfigure依赖,和其他依赖。

 <dependency>
      <groupId>com.lihong</groupId>
      <artifactId>dymybatis-spring-boot-autoconfigure</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
      <version>3.1.2</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.13</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>3.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
      <version>3.0.0</version>
    </dependency>

3.将自定义starter依赖引入替换mybatis的起步依赖。

<!--    自定义starter-->
    <dependency>
      <groupId>com.lihong</groupId>
      <artifactId>dmybatis-spring-boot-starter</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>

方式二:

创建配置类:MybatisConfiguration

@Configuration
public class MybatisConfiguration {
    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
        SqlSessionFactoryBean sqlSessionFactoryBean=new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        return sqlSessionFactoryBean;
    }
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer(BeanFactory beanFactory){
        MapperScannerConfigurer mapperScannerConfigurer=new MapperScannerConfigurer();
        List<String> packages = AutoConfigurationPackages.get(beanFactory);
        mapperScannerConfigurer.setBasePackage(packages.get(0));
        mapperScannerConfigurer.setAnnotationClass(Mapper.class);
        return mapperScannerConfigurer;
    }
}

创建自动配置类MybatisAutoConfigure,导入Mybatisconfiguration将bean注册到ioc容器中。

@AutoConfiguration
@Import(MybatisConfiguration.class)
public class MybatisAutoConfigure {

}
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值