SpringBoot常见⾯试题2022
⽂章⽬录
⼀、SpringBoot简介和特性
1.简介:SpringBoot是⼀个⽤于快速搭建、开发、维护Spring应⽤的框架,集成了Spring框架的各种特性如AOP/IOC等。
2.特性:
(1)独⽴运⾏:内置Servlet容器
(2)简化配置:⽆需考虑包依赖和版本是否兼容,⽆需配置bean。只需使⽤starter引⼊web(spring+springmvc)\mybatis\mysql等模块
(3)⽆代码⽣成和XML配置
(4)运⾏监控:Spring Actuator
⼆、SpringBoot中如何配置bean
配置bean有下⾯⼏种⽅式,(2)和(3)是SpringBoot配置bean的主要⽅式:
(1)基于xml
matlab递归函数(2)基于java代码
⽤于代替xml,适⽤那种从传统xml配置项⽬迁移到SpringBoot项⽬(如MyBatisAutoConfiguration)
(3)基于注解
①传统注解(@Autowired)
②条件依赖注解(starter就是以这种⽅式)
条件依赖注解(SpringBoot独有):
@ConditionalOnClass/@ConditionalOnBean:有某个class/bean存在时才⽣效
@AutoConfigureAfter指定顺序等
三、SpringBoot的核⼼配置⽂件和核⼼注解
radiogroup如何设置
1.SpringBoot的核⼼配置⽂件是application.l
2.SpringBoot的核⼼注解stripes怎么读音发音英语怎么读
(1)@SpringBootApplication底层由下⾯三个注解组成:
@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan
(2)@SpringBootConfiguration:
底层是@Configuration,⽤来代替xml配置如l。
(传统Spring项⽬中l主要⽤于配置Bean/SqlSessionFactory/Aop事务这些。)
*(3)@EnableAutoConfiguration:
mysql面试题csdn⾃动配置注解,开启后SpringBoot就能根据当前路径下的包(如.Jar)或者类来配置Spring Bean。
在下⾯ “四、SpringBoot⾃动配置原理”中会详细介绍
(4)@ComponentScan:
开启组件扫描,扫描@Compement下的bean实例,将@Controller/@Service/@Component/@Repository加载到容器中。
四、SpringBoot⾃动配置原理
1.源码跟踪
参考:editor.csdn/md/?articleId=122360367
2.总结
SpringBoot的⾃动配置使⽤@EnableAutoConfiguration注释实现,是通过到spring.factories配置⽂件中的所有XXXAutoConfiguration的⾃动配置类,并将autoconfigure-metadata.properties中含@ConditionalOnClass@AutoConfigureAfter 的配置类过滤掉,然后通过@bean注册,@Configuration加载到容器,实现这些类的⾃动配置。
五、SpringBoot Stater
1.介绍
(1)实现原理:SpringBoot Stater是⼀个集成接合器,⽤于引⼊模块所需的相关jar包和⾃动配置各⾃模块所需的属性。spring-boot启动的时候会到starter jar包中的resources/META-INF/spring.factories⽂件,根据spring.factories⽂件中的配置,到需要⾃动配置的类。通过@EnableAutoConfiguration/@ConfigurationProperties实现,使⽤ConfigurationProperties保存配置,且每个配置都有⼀个默认值,所有配置属性聚集到application.properties。
(2)⾃定义starter优点
①可以封装部分逻辑代码,提⾼项⽬的拓展性和易⽤性
②对⽐常规的jar包,具有⾃动装配的功能。
2.⾃定义springBoot starter使⽤
核⼼还是实现⾃动配置那⼀套东西
参考:editor.csdn/md/?articleId=122360367
六、SpringBoot Actuator
对程序进⾏监控管理,如实时查看服务器的CPU/IO,核⼼是端点EndPoint,内置了health/info/beans/httptrace/showdown等端点,也可以⾃定义端点。
>java在线网站
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论