springboot 解析xml_SpringBoot使用及原理浅尝

本文详细解读了SpringBoot应用的启动过程,包括配置文件解析、创建ApplicationContext及内嵌Tomcat,重点介绍了如何使用ConfigurationProperties加载数据库配置,并探讨了SpringBoot中事务管理和DataSource的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

最近微服务很热,而SpringBoot以轻量级和内嵌tomcat,方便启动调试为微服务越来越被采用,而现在前沿的技术的demo一般都也使用SpringBoot编写。

二、启动

启动时序图

37c66862f4b79a512e8975d4f3878f0d.png

解析配置文件.png

上面流程启动从SpringApplication的run方法开始,到解析application.properties结束。

三、创建应用程序上下文和嵌入式tomcat

上面配置文件解析完毕后紧接着就是创建应用程序上下文

a744fc281f72b80c7744aae4f75e0c02.png

创建spring容器和tomcat.png

四、ConfigurationProperties Bean的创建

SpringBoot中不建议使用XML配置,所以比较常用的是使用ConfigurationProperties注解创建bean从application.properties中加载配置项。

@ConfigurationProperties(prefix = "mysql")public class MySqlProperties { private String driverClassName; private String url; public String getDriverClassName() { return driverClassName; } public void setDriverClassName(String driverClassName) { this.driverClassName = driverClassName; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } private String userName; private String passWord; }

而application.properties中配置为:

mysql.driverClassName = com.mysql.jdbc.Driver

mysql.url = jdbc:mysql://localhost:3306/users

mysql.userName = ***

mysql.passWord = ***

518e118b807c9c48202f354a07bf6f2e.png

screenshot.png

五、 事务配置

Spring中使用XML配置的事务管理,那么springboot中如何进行配置对应的东西那?

5.1 SpringBoot中 DataSource的配置

首先数据源属性Bean

@ConfigurationProperties(prefix = "mysql")public class MySqlProperties { private String driverClassName; private String url; public String getDriverClassName() { return driverClassName; } public void setDriverClassName(String driverClassName) { this.driverClassName = driverClassName; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } private String userName; private String passWord; }

然后创建DataSource的bean

@Configuration@EnableConfigurationProperties(MySqlProperties.class)@ConditionalOnClass(TDataSource.class)@AutoConfigureBefore(DataSourceAutoConfiguration.class)// 三、设置扫描器@MapperScan(basePackages = "com.zlx.demo.web.speech2.mapper
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值