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

解析配置文件.png
上面流程启动从SpringApplication的run方法开始,到解析application.properties结束。
三、创建应用程序上下文和嵌入式tomcat
上面配置文件解析完毕后紧接着就是创建应用程序上下文

创建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 = ***

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