JavaWeb过滤器
过滤器 拦截器 区别
过滤器基于JavaWeb
- filter-serverlet-intercepter-controller
拦截器基于Intercepter
如何注册
web.xml
@WebFilter
FilterRegisterBean+Filter
- 注册
- ServletContext Initializer
- Filter definition
- addRegister
设计模式
- 责任链
- FilterChain
- FilterConfig
BeanPostProcessor为bean后置处理器. Spring启动过程中,所有的bean初始化的时候会调用bean的后置处理器.
1 | import org.springframework.stereotype.Component; |
通过构造方法实例化
1 | <?xml version="1.0" encoding="UTF-8"?> |
1 | import org.springframework.context.support.ClassPathXmlApplicationContext; |
BeanDefinition 是 Spring Framework 中定义 Bean 的配置元信息接口.BeanDefinition描述一个bean. 包括bean的属性,构造函数参数列表,依赖bean,是否是单例,bean的类名等等
属性 (Property) | 说明 |
---|---|
Class | Bean全类名,必须是具体类,不能用抽象类或接口 |
Name | Bean的名称或者ID |
scope | Bean的作用域 (如: singleton, prototype 等) |
Constructor arguments | Bean构造器参数(用于依赖注入) |
Properties | Bean属性设置(用于依赖注入) |
Autowiring mode | Bean自动绑定模式(如:通过名称byName) |
Lazy initialization mode | Bean延迟初始化模式(延迟和非延迟) |
Initialization method | Bean初始化回调方法名称 |
Destruction method | Bean销毁回调方法名称 |
这两个集合都允许重复的元素并维持元素的插入顺序。
LinkedList
使用doubly-linked list LinkedList
实现它。 ArrayList
使用dynamically resizing array实现它。 这将导致性能上的进一步差异。
如果不需要调整Array的大小,则在ArrayList中添加元素是O(1)
操作。 如果调整数组大小,则它变为O(log(n))
。
在LinkedList中添加元素是O(1)
操作,因为它不需要任何导航。
微服务架构就是将单体的应用程序分成多个应用程序,这多个应用程序就成为微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信。这些服务围绕业务能力来划分,并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。
Spring Cloud Alibaba 套件,阿里开源组件、阿里云商业组件整合进 Spring Cloud 体系当中,同时对 Spring Cloud Gateway、OpenFeign、Ribbon 等等进行集成。
主要功能如下:
Spring Cloud Alibaba是Spring Cloud的子项目,Spring Cloud Alibaba符合Spring Cloud标准。
随着Spring Cloud Netflix下的相关组件逐步进入维护模式,进入维护模式的意思就是从目前一直到以后一段时间Spring Cloud Netflix提供的服务和功能就这么多了,不再开发新的组件和功能了。同时Spring Cloud官方也在积极孵化其他替代品,以满足Spring Cloud版本迭代的需求。
Spring Cloud Alibaba生态下的各个组件其实在国内很多公司很早之前就有使用,它们在服务治理方面比Spring Cloud Netflix更加强大,而且比较符合国内互联网公司的业务特性,推荐使用。
启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含 了以下 3 个注解
:
@SpringBootConfiguration:
组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfiguration:
打开自动配置的功能,也可以关闭某个自动配置的选项
@ComponentScan
:Spring组件扫描。
SpringBoot应用的生命周期,整体上可以分为SpringApplication初始化阶段、SpringApplication运行阶段、SpringApplication结束阶段、SpringBoot应用退出四个阶段。