服务器做内网网站,用旧电脑做网站,外国人做旅游攻略网站,做知识产权相关的网站目录 后端相关随机题目记录#xff08;1#xff09; 后端相关随机题目记录#xff08;1#xff09;Bean的类型以及作用域Bean的生命周期Mysql的底层数据结构RedisHttp和Https区别AOP在项目的应用 自定义注解#xff1f;请求在spring中的一个流程Nacos与zk的区别SpringMV…
目录 后端相关随机题目记录1 后端相关随机题目记录1Bean的类型以及作用域Bean的生命周期Mysql的底层数据结构RedisHttp和Https区别AOP在项目的应用 自定义注解请求在spring中的一个流程Nacos与zk的区别SpringMVC执行流程简述Bean的生命周期 文章所属专区 超链接 后端相关随机题目记录1
闲着也是闲着来都来了看看吧。
Bean的类型以及作用域 Singleton单例模式Spring 容器中只会创建一个 Bean 实例所有对该 Bean 的请求都将返回同一个实例。默认的作用域为 Singleton。 作用域 Prototype原型模式每次请求该 Bean 时都会创建一个新的 Bean 实例。因此该 Bean 的生命周期和请求周期相同。 Request每个 HTTP 请求都会创建一个新的 Bean 实例该 Bean 的生命周期将与 HTTP 请求的生命周期相同。只有在 Web 应用程序上下文中才有意义。 Session每个 HTTP Session 都会创建一个新的 Bean 实例该 Bean 的生命周期将与 HTTP Session 的生命周期相同。只有在 Web 应用程序上下文中才有意义。 Global Session该作用域仅适用于基于 Portlet 的 Web 应用程序它表示 Portlet 应用程序的全局 Session 范围内创建 Bean 实例。只有在 Portlet 上下文中才有意义。 类型 POJO 类型的 Bean通过配置文件或注解方式定义的简单 Java 对象。 Factory Bean 类型的 Bean实现了 FactoryBean 接口的 Bean可以通过其 getObject() 方法返回一个其他类型的 Bean 实例。 Abstract Bean 类型的 Bean继承了 AbstractBeanDefinition 类的 Bean可以自定义 Bean 的创建和销毁过程例如自定义属性注入和初始化方法的调用时机等。 Inner Bean 类型的 Bean在 Bean 的属性值中定义的一个 Bean它的生命周期与外部 Bean 相关联外部 Bean 销毁时内部 Bean 也会被销毁。 Alias Bean 类型的 Bean通过别名引用其他 Bean 实例的 Bean通常用于简化配置文件中的 Bean 引用。 Bean的生命周期
对 Prototype Bean 来说当用户 getBean 获得 Prototype Bean 的实例后IOC 容器就不再对当前实例进行管理而是把管理权交由用户此后再 getBean 生成的是新的实例。 所以我们描述 Bean 的生命周期都是指的 Singleton Bean。
1. 实例化Bean 通过xml配置或者注解Autowire告诉spring哪些bean需要实例化。 对于BeanFactory容器当客户向容器请求一个尚未初始化的bean时或初始化bean的时候需要注入另一个尚未初始化的依赖时容器就会调用createBean进行实例化 对于BeanDefinition当容器启动结束后通过获取BeanDefinition对象中的信息实例化所有的bean。 2. 设置对象属性依赖注入 实例化后的Bean对象被封装在BeanWrapper对象中Spring容器根据BeanDefinition中的信息以及BeanWrapper提供的设置属性的接口完成依赖注入。 3. 初始化 初始化完成后Bean就可以被使用了 3.1 检查Aware相关接口并设置依赖 spring会检测Bean是否实现了Aware相关接口xxxAware,并将xxxAware实例注入给Bean 如果实现了BeanNameAware会调用他实现的setBeanName(String beanId)方法传递的是这个Spring配置文件的这个Bean的id值(beanId); 如果实现了BeanFactoryAware,会调用他实现的setBeanFactory()方法传递的是spring工厂本身 如果实现了ApplicationContextAware会调用他实现的setApplicationContext()方法传递的是spring上下文 3.2 BeanPostProcesser前置处理 BeanPostProcesser用来做一些自定义处理那将会调用postProcessBeforeInitialization 3.3 是否实现Initailization接口 执行afterPropertiesSet()方法 3.4 Bean是否在Spring的配置文件中配置了 init-method属性 如果有则会调用其配置的初始化方法 3.5 BeanPostProcesser后置处理 BeanPostProcesser用来做一些自定义处理那将会调用postProcessAfterInitialization(Object obj, String s)方法。 真正实现初始化的是 3.3 3.4两部 其他都是初始化的前后置处理。
销毁
4.1DisposableBean接口 当Bean不再需要时会经过清理阶段如果Bean实现了DisposableBean这个接口会调用其实现的destroy()方法 4.2 destroy-method 如果spring的配置文件里配置了destroy-method属性会自动调用其配置的销毁方法。 Mysql的索引类型
普通索引 index 没有任何限制唯一的作用是加速数据的查找允许在定义索引的列为空以及重复关键字 indexkey create index index_name on table_name (column_name); alter table table_name add index index_name (column_name); 唯一索引 unique 唯一索引是为了避免数据出现重复索引列的值必须唯一允许有空值。如果是组合索引则列值的组合必须唯一。UNIQUE create unique index index_name on table_name (column_name); alter table table_name add unique index_name (column_name); 主键索引 primary key 不允许索引列为空或者更值重复PRIMARY KEY create table table_name ( id int not null, username varchar(16) not null, primary key (column_name) ); 组合索引 将多个列共同组成一个索引 create index index_name on table_name (column_name1, column_name2); 5.全文索引 主要用来查找文本中关键字只能在 CHAR、VARCHAR 或 TEXT 类型的列上创建。在 MySQL 中只有 MyISAM 存储引擎支持全文索引。 全文索引允许在索引列中插入重复值和空值。 不过对于大容量的数据表生成全文索引非常消耗时间和硬盘空间。 创建全文索引使用 FULLTEXT 关键字。 Mysql的底层数据结构 常见的数据结构有 二叉树红黑树 B-TREE,BTREE 而Mysql的数据结构是 BTree Redis
使用spring 的redis注解CacheConfigCacheableCachePutCacheEvictCaching 将方法查出来的结果放到redis后面有调这些接口如果数据有命中先从redis读取速度快性能好避免直接查询数据库如果没有再去数据库查找。
Http和Https区别 Https是HTTP的安全版它是在HTTP的基础上加上了SSL协议SSL依靠证书来验证服务器的身份并为浏览器和服务器之间的通信加密 AOP在项目的应用 自定义注解
请求在spring中的一个流程
Nacos与zk的区别
SpringMVC执行流程 客户端浏览器发起请求到服务端进行处理都是和服务端的DispatcherServletController进行交互由前端控制器处理浏览器的请求并返回view给浏览器 客户端请求request到前端控制器DispatcherServlet前端控制器将用户请求发送到处理器映射器HandlerMapping处理器映射器根据请求找到负责处理请求的处理器。找到负责处理该请求的处理器并将其封装为处理器执行链HandlerExecutionChain给前端处理器前端控制器根据处理器执行链中的处理器找到能够处理改处理器的处理器适配器HandlerAdapter,适配器有多个处理器适配器会调用对应具体的控制器Controller(程序员编写)控制器将处理结果以及要跳转的视图封装到一个对象ModelAndView中并将其返回给处理器适配器处理器适配器将ModelAndView返回给前端控制器至此业务处理完毕前端控制器把获取的ModelAndView对象传给视图解析器ViewResolver,把逻辑视图解析成物理视图视图解析器返回一个View进行视图渲染把模型填充到视图中 10.前端控指器把渲染后的视图响应给客户端
简述Bean的生命周期
spring中bean的创建使用到销毁全部由容器来实现 1.解析xml配置或注解配置的类得到BeanDenifition(Bean的描述) 2.实例化bean对象通过BeanDefinition反射来创建Bean对象此时只是在堆空间中申请空间属性都是默认值 3.设置Bean对象属性 4.检查Aware相关接口并设置相关依赖所有调用容器对象的地方都会实现Aware接口,如BeanNameAware 5.调用BeanPostProcessor的初始化前方法 6.调用init初始化方法 7.调用BeanPostProcessor的初始化方法此处会进行AOP 8.将创建的Bean对象放入一个Map中 9.业务使用Bean对象 10.Spring容器关闭时调用哪个DisposableBean的destory()方法
给个三连吧 谢谢谢谢谢谢了