软件编程
位置:首页>> 软件编程>> java编程>> Springboot框架实现自动装配详解

Springboot框架实现自动装配详解

作者:软件开发随心记  发布时间:2023-03-03 21:11:14 

标签:Springboot,自动装配

序言

springboot框架价值,可以简单快速的构建独立的spring生产级别应用。springboot主要有以下的特性:

1.创建独立的Spring应用

2.直接嵌入Tomcat等Web容器(不需要部署WAR文件)

3.提供固化的“starter”依赖,简化构建配置

4.当条码满足时自动装配Spring货第三方类库

5.提供运维的特性,如指标信息,健康检查和外部配置

6.不需要XML配置。

下面就以springboot启动的时候,是如何实现mybatis自动装配。

从程序的使用去入手分析

引入mybatis的starter依赖和相关的数据库驱动

<dependency>
           <groupId>org.mybatis.spring.boot</groupId>
           <artifactId>mybatis-spring-boot-starter</artifactId>
           <version>2.2.0</version>
     </dependency>

程序使用

//程序的启动类
@SpringBootApplication
public class HelloApplication {
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
}
//服务类
@Service
public interface UserService {
   @Autowired
   private UserXmlMapper userXmlMapper;
   @Test
   public void testFindAll2() {
       List<User> list = userXmlMapper.findAll();
       System.out.println(list);
   }
}
//Dao 操作
@Mapper
public interface UserXmlMapper {
   public List<User> findAll();
}

上面的代码,大家都是很熟悉的,springboot是如何实现 @Mapper的注解,就可以操作数据库呢(就是中间有个桥梁,如何将springboot和mybatis连接起来的,而这个桥梁是如何实现的呢)

从启动类寻找桥梁

Springboot框架实现自动装配详解

通过源码可以知晓

桥梁 =@SpringBootApplication=>@EnableAutoConfiguration=>@Import({AutoConfigurationImportSelector.class})

分析源码可知AutoConfigurationImportSelector的主要作用

  • 扫描classpath下所有的jar包

  • 在META-INF/spring.factories配置好的AutoConfiguration

  • 扫描出来需要执行的AutoConfguration

回想再使用mybatis的时候,是需要引入mybatis的starter依赖包的,再结合AutoConfigurationImportSelector的第二点功能,可以到对应的jar下找到mybatis的AutoConfguration。

Springboot框架实现自动装配详解

Springboot框架实现自动装配详解

也就是说spring-boot启动【会创建个spring容器】的时候,会去执行MybatisAutoConfiguration的逻辑【处理@Mapper的类(扫描出来注入到srping容器)和数据库连接等功能】。

关于MybatisAutoConfiguration的具体功能的逻辑,这块是设计到spring源码的了。有兴趣的可以自行查找。

来源:https://blog.csdn.net/vipshop_fin_dev/article/details/126441002

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com