2023年3月

说说springboot启动机制
https://ke.qq.com/webcourse/index.html#cid=333216&term_id=100395479&taid=2568313133929888&vid=5285890788262993749

通过@EnableAutoConfiguration 加载

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration --->
@ComponentScan(
excludeFilters
={@Filter(
type
=FilterType.CUSTOM,
classes
= {TypeExcludeFilter.class}
), @Filter(
type
=FilterType.CUSTOM,
classes
= {AutoConfigurationExcludeFilter.class}
)}
)
public @interfaceSpringBootApplication {
@AliasFor(

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import({EnableAutoConfigurationImportSelector.
class}) //------>通过public @interfaceEnableAutoConfiguration {
String ENABLED_OVERRIDE_PROPERTY
= "spring.boot.enableautoconfiguration";

Class
<?>[] exclude() default{};

String[] excludeName()
default{};
}

@Import 把一个类通过这种方式交给Spring容器管理
@Import({EnableAutoConfigurationImportSelector.class}) 点进去看这个类,再看它的父类
@Deprecated
public class EnableAutoConfigurationImportSelector extends AutoConfigurationImportSelector {

    protected List<String>getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) {
List
<String> configurations = SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());
Assert.notEmpty(configurations,
"No auto configuration classes foundin META-INF/spring.factories. If you are using a custom packaging, make sure that file is correct.");returnconfigurations;
}

看出它回到这个包的路径下读取这个
spring.factories
配置文件:重点看这个三个

org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration这个文件中,有启动Tomcat

老师的版本是2.0

本人这个org.springframework.boot.autoconfigure 的jar包是1.5.10... 启动tomcat如下代码

WebMvcAutoConfiguration.java 文件中:主要通过enablewebmvc注解 把springmvc加载进来

手写spirngboot ,启动验证








什么是数据结构(此视频不完整请联系班主任)
https://ke.qq.com/webcourse/index.html#cid=345381&term_id=100410551&taid=2786329968854309&vid=5285890803008706137

栈:用户界面的前进跳转及回退机制如何实现
https://ke.qq.com/webcourse/index.html#cid=345381&term_id=100410551&taid=2786342853756197&vid=5285890793329875591

逆波兰表示法
  • 从左到右依次扫描语法单元的项目。
  • 如果扫描的项目是操作数,则将其压入操作数堆栈,并扫描下一个项目。
  • 如果扫描的项目是一个二元运算符,则对栈的顶上两个操作数执行该运算。
  • 如果扫描的项目是一个一元运算符,则对栈的最顶上操作数执行该运算。
  • 将运算结果重新压入堆栈。
  • 重复步骤第2-5步,堆栈中即为结果值。

吃饱了就是队列,喝高了就是栈

作业: 1:https://leetcode.com/problems/valid-parentheses/

2:https://leetcode.com/problems/evaluate-reverse-polish-notation/

3:https://leetcode.com/problems/implement-stack-using-queues/

4:https://leetcode.com/problems/decode-string/