框架知识

框架知识
→ Servlet
生命周期
Servlet_生命周期:首先加载servlet的class,实例化servlet,然后初始化servlet调用init()的方法,接着调用服务的service的方法处理doGet和doPost方法,最后是我的还有容器关闭时候调用destroy 销毁方法。
线程安全问题
filter 和 listener
image.png
web.xml 中常用配置及作用
要想回答上面的问题,得先了解web.xml文件使用来干什么的。web.xml文件是用来配置:欢迎页、servlet、filter等的。当你的web工程没用到这些时,你可以不用web.xml文件来配置你的web工程。
→ Hibernate
Hibernate / Ibatis / MyBatis 之间的区别
[https://www.cnblogs.com/yccmelody/p/7145198.html]

→ Spring
Bean 的初始化
1.  解析XML的核心类
1)   XmlBeanDefinitionReader
Xml资源的阅读器,将xml解析成Document
2)   DefaultBeanDefinitionDocumentReader
Document阅读器,将document解析成Element、Node、Attribute,以便于后续解析。
3)   BeanDefinitionParserDelegate
解析xml生成BeanDefinition的委派类。所有解析过程由此类完成
4)   DefaultListableBeanFactory
xml解析完以后,都注册到BeanFactory。后续通过BeanFactory可以源源不断的创建实例。
AOP 原理
(1) SpringAOP是动态代理来实现的。有两种代理方式:JDK动态代理与CGLIB动态代理
(2) JDK动态代理:是通过反射来接收被代理类,要求必须实现一个接口
(3) CGLIB动态代理:当被代理类没有实现一个接口的时候,就会使用CGLIB进行动态代理。CGLIB动态代理通过运行时动态生成被代理类的子类,运用继承的方式来实现动态代理。如果被代理类被final修饰了,那么就不能使用CGLIB进行动态代理了。
实现 Spring 的IOC
Spring 四种依赖注入方式
1set注入
2构造注入
3静态工厂注入
4实力工厂的方法注入
→ Spring MVC
什么是 MVC
model view controller
model 包括平时写的service dao bean等 view 代表jsp vue等 controller 就是请求控制
Spring mvc 与 Struts 的区别
https://www.cnblogs.com/wl0000-03/p/7803276.html
博客参考地址
→ Spring Boot
Spring Boot 2.0、
几个重要的变动如下:
Spring Boot 2.0 要求Java 版本必须8以上, Java 6 和 7 不再支持。
为了支持reactive使用场景,内嵌的容器包结构被重构了的幅度有点大。EmbeddedServletContainer被重命名为WebServer,并且org.springframework.boot.context.embedded 包被重定向到了org.springframework.boot.web.embedded包下。举个例子,如果你要使用TomcatEmbeddedServletContainerFactory回调接口来自定义内嵌Tomcat容器,你现在应该使用TomcatServletWebServerFactory。
Servlet-specific 的server properties调整
大量的Servlet专属的server.* properties被移到了server.servlet下:
image
由此可以看出一些端倪,那就是server不再是只有servlet了,还有其他的要加入。

默认的连接池已经由Tomcat切换到了HikariCP。如果你过去使用spring.datasource.type在基于Tomcat的应用程序中强制使用Hikari,现在你可以删除这个覆盖了。同样的,如果想要使用Tomcat的连接池,只需要简单的加入以下配置就可以了:
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource

要求Tomcat最低版本为8.5。

@ConfigurationProperties里的ignoreNestedProperties属性已被删除。

Spring Boot 2.0 是建立在Spring Framework 5.0之上的(最低要求)。Spring 5最大的亮点就是reactive。

Spring Boot 2.0 对一下的数据库提供了自动配置( auto-configuration )的reactive的支持:
MongoDB (spring-boot-starter-data-mongodb-reactive)
Redis (spring-boot-starter-data-redis-reactive)
Cassandra (spring-boot-starter-data-cassandra-reactive)
@DataMongoTest测试注解也是支持reactive的。

Reactive controller现在可以使用@WebFluxTest来测试。它提供的功能和 @WebMvcTest类似。而且WebTestClient可以直接使用,已经被自动配置(auto-configured)了。

现在支持一次性批量消费多个ConsumerRecord,你可以创建一批的监听器(listener),这样设置:
spring.kafka.listener.type=batch

jedis客户端驱动现在由Jedis变为了Lettuce。使用Jedis的同学们,大概知道方向了吧。
但仍然支持Jedis,那么exclude掉io.lettuce:lettuce-core,然后添加 redis.clients:jedis就是了。

起步依赖、
起步依赖就是在starter中已经帮我们构建了一些必要的jar放在了父pom里,方便使用。
自动配置、
通过@EnableAutoConfiguration注解完成SpringBoot自动配置的实现。通过@Import注解添加自动配置选择器(AutoConfigurationImportSelector),选择器中首先读取META-INF路径下的spring.factories文件。在spring.factories文件中,SpringBoot官方提供了许多常见组件的默认配置,以java配置类形式存在。在这些java配置类中又利用了Spring的条件注解,让我们可以在默认配置和自定义配置之间灵活切换。
可以这么认为:SpringBoot在Spring原有的基础上,通过拼凑组合又实现了一个强大的特性——自动配置。
自动配置让我们可以在不做任何配置的情况下直接使用一个新的类库(前提是足够普遍),也能满足我们自定义配置的需求。除此之外,我们还可以利用这个思路,实现具有团队特色的自动配置,让团队开发也更加高效。

Spring Boot 的 starter 原理,自己实现一个 starter
Spring Boot在启动时扫描项目所依赖的JAR包,寻找包含spring.factories文件的JAR包,
然后读取spring.factories文件获取配置的自动配置类AutoConfiguration,
然后将自动配置类下满足条件(@ConditionalOnXxx)的@Bean放入到Spring容器中(Spring Context)
这样使用者就可以直接用来注入,因为该类已经在容器中了

→ Spring Cloud
服务发现与注册:Eureka 缓存表、Zookeeper 类似linux的文件通知机制、Consul
负载均衡:Feign 动态代理、Spring Cloud Loadbalance(轮询 权重等相关算法)
服务配置:Spring Cloud Config
spring cloud config是一个基于http协议的远程配置实现方式。通过统一的配置管理服务器进行配置管理,客户端通过https协议主动的拉取服务的的配置信息,完成配置获取。
spring cloud config的使用方式非常简单,spring cloud config server默认的实现方式是git管理配置,官方文档介绍已经详细说明有几种使用方式
服务限流与熔断:Hystrix 线程池技术
服务链路追踪:Dapper
服务网关、安全、消息
[https://www.cnblogs.com/xushuyi/articles/11286376.html]参考每个组件的工作原理

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晴天M雨天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值