SpringBoot快速开发框架
什么是SpringBoot
SpringBoot是快速开发的Spring框架,能够快速整合主流框架,简化xml配置,采用全注解化,内置Http服务器(如tomcat、jetty等),通过java部署运行。
为什么要用SpringBoot
快速开发,快速整合,配置简化、内嵌服务容器
SpringBoot启动方式
主类@SpringBootApplication注解或添加@ComponentScan和@EnableAutoConfiguration注解,使用@SpringBootApplication时注意自动扫描当前包
SpringBoot与SpringMVC 区别
SpringMVC是SpringBoot的Web开发框架
SpringBoot与SpringCloud 区别
SpringBoot是快速开发的Spring框架,SpringCloud是完整的微服务框架, SpringCloud依赖于SpringBoot。
SpringBoot中用那些注解
@EnableAutoConfiguration作用
自动扫描并添加jar包依赖
@SpringBootApplication原理
是一个组合注解,相当于@EnableAutoConfiguration和@ComponentScan
SpringBoot热部署使用什么?
devtools
热部署原理是什么?
热部署的实现原理主要依赖java的类加载机制,在实现方式可以概括为在容器启动的时候起一条后台线程,定时的检测类文件的时间戳变化,如果类的时间戳变掉了,则重新加载整个应用的class文件,同时重启服务,重新部署。
热部署原理与热加载区别是什么
热加载是在运行时重新加载class文件,不会重启服务。
你们项目中异常是如何处理
在web项目中,使用全局捕获异常返回统一错误信息。
SpringBoot如何实现异步执行
在启动类添加@EnableAsync表示开启对异步任务的支持,在异步服务上添加@Async
SpringBoot多数据源拆分的思路
先在properties配置文件中配置两个数据源,创建分包mapper,使用@ConfigurationProperties读取properties中的配置,使用@MapperScan注册到对应的mapper包中
SpringBoot多数据源事务如何管理
第一种方式是在service层的@TransactionManager中使用transactionManager指定DataSourceConfig中配置的事务
第二种是使用jta-atomikos实现分布式事务管理
SpringBoot如何实现打包
进入项目目录在控制台输入mvn clean package,clean是清空已存在的项目包,package进行打包
SpringBoot性能如何优化
如果项目比较大,类比较多,不使用@SpringBootApplication,采用@Compoment指定扫包范围
在项目启动时设置JVM初始内存和最大内存相同
将springboot内置服务器由tomcat设置为undertow
SpringBoot执行流程
使用SpringApplication.run()启动,在该方法所在类添加@SpringBootApplication注解,该注解由@EnableAutoConfiguration和@ComponentScan等注解组成,@EnableAutoConfiguration自动加载SpringBoot配置和依赖包,默认使用@ComponentScan扫描当前包及子包中的所有类,将有spring注解的类交给spring容器管理
SpringBoot底层实现原理
使用maven父子包依赖关系加载相关jar包,使用java操作Spring的初始化过程生成class文件,然后用java创建tomcat服务器加载这些class文件
SpringBoot装配Bean的原理
通过@EnableAutoConfiguration自动获取配置类信息,使用反射实例化为spring类,然后加载到spring容器