家装网站建设哪家好点,如何做免费网站,网站域名放国外,男女做那个网站动态图1. Spring、Springboot、springMVC、Spring Cloud 的区别#xff1a;
Spring#xff1a;Spring 是一个开源的、轻量级的Java框架#xff0c;提供了丰富的功能和组件#xff0c;用于构建企业级应用程序。Spring框架包含了很多模块#xff0c;包括核心容器、数据访问、事物…1. Spring、Springboot、springMVC、Spring Cloud 的区别
SpringSpring 是一个开源的、轻量级的Java框架提供了丰富的功能和组件用于构建企业级应用程序。Spring框架包含了很多模块包括核心容器、数据访问、事物管理、AOP、Web开发等可以根据需要选择使用不同的模块。SpringbootSpringboot 是基于 Spring 框架的快速开发框架旨在简化 Spring 应用程序的配置和部署过程。它提供了自动配置快速启动约定优于配置等特性使得开发者可以更加专注于业务逻辑的实现而不需要过多关注繁琐的配置。Springboot还集成了常用的功能如嵌入式服务器、安全性、健康检查等方便快速构建独立的可执行JAR包。SpringMVCSpringMVC是Spring 框架中的一个模块用于开发基于MVC(Model-View-Controller)架构程序。它提供了一套处理HTTP请求和响应的机制支持通过注解或配置文件进行请求映射、请求参数处理、视图解析等操作。SpringMVC是一个灵活且功能的Web框架可以与其他Spring模块如Springboot进行集成使用。SpringCloud 是一个基于Springboot的开发工具集用于构建分布式系统和微服务架构。它提供了一系列的组件和模块用于解决分布式系统中的常见问题例如访问注册与发现、负载均衡、熔断器、配置管理等。
2. 使用线程池创建线程时参数有哪些
corePoolSize核心线程池大小表示线程池在保持的线程数码即使它们处于空闲状态。当提交一个新的任务到线程时如果当前线程池中的线程数量少于corePoolSize则会常见一个新的线程来处理该任务即使此时其他空闲的基本线程能够处理该任务也会创建新的线程直到到达corePoolSize为止。maximumPoolSize最大线程池大小表示线程池中最多呢创建的线程数目。当提交一个新任务到线程池时如果当前线程池中的线程数目已经达到corePoolSize并且缓冲队列已满则会根据maximumPoolSize的值来判断是否创建新的线程。如果当前线程池中的线程数目小于maximumPoolSize则会创建新的线程。如果当前线程池中的线程数目等于或大于maximunPoolSize则不会创建新的线程。keepAliveTime线程池维护线程所允许的空闲时间默认情况下KeepAliveTime设置为0表示线程空闲后立即终止。当线程池中线程数量超过corePoolSize时如果这些多余的线程空闲时间超过KeepAliveTime时长则这些多余的线程将会被终止。unitkeepAliveTime的单位可以是TimeUnit.MILLISECONDS(毫秒)、TimeUnit.SECONDS(秒)等等。workQueue任务队列用于储存已经提交但尚未执行的任务。常用的队列类型有ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue、PriorityBlockingQueue等。threadFactory线程创建工厂用于设置创建线程时的一些属性例如线程名称、是否为守护线程等。handler拒绝策略表示当前线程池中的线程数目达到maximumPoolSize并且缓冲队列已满时如何拒绝新任务的执行。常见的拒绝策略有以下几种AbortPolicy、CallerRunPolicy、DiscardOldestPolicy、DiscardPolicy
3. 常见事物的隔离级别
事物的隔离级别是数据库管理系统中用来控制事物并发访问是数据可见性的一种机制
读未提交Read Uncommitted允许一个事读取另一个事务未提交的数据。这种隔离级别可能导致脏读即一个事务读取了另一个事务未提交的数据而后者最终被回滚导致前者读取到的数据是无效的。读已提交Read Committed保证一个事务只能读取到另一个事务已经提交的数据。这种隔离级别可以避免脏读但可能导致不可重复读即在同一个事务中由于其他事物的提交某个数据的值发生了变化。可重复读Repeatable Read保证在同一个事务中多次读取同样的数据是结果始终一致。这种隔离级别可以避免不可重复读但可能会导致幻读即在事务中由于其他事务的插入或删除出现了新增或减少的数据行。序列化Serializable最高的隔离级别通过强制事务船型执行来避免脏读、不可重复读和幻读、虽然可以解决并发访问导致的数据不一致问题但会导致性能严重下降。
4. 数据库的索引类型有哪些
B-树索引B-tree IndexB-树是一种平衡的多路搜索树常用于支持范围查询。它适用于大多数数据库系统如MySQL、Oracle等。B树索引Btree IndexB树是在B-树的基础上进行优化的数据结构它将所有的数据都储存在叶子节点并使用连接叶子节点适用于范围查询和数据访问。B树索引在很多关系型数据库中被广泛使用。哈希索引Hash Index哈希索引通过将索引列的值计算哈希值然后根据哈希值进行快速查找。哈希索引适合等值查询但不适合范围查询。例如MySQL的内存表和MyISAM引擎支持哈希索引。全文索引Full-Text Index全文索引通常用于对文本内容进行搜索。它可以创建关键词索引以便在文本中进行全文索引。全文索引可以加快文本搜索的速度常见的数据库系统如MySQL、PostgreSQL都提供了全文索引功能。位图索引Bitmap Index位图索引将每个唯一的索引值与位图进行映射位图的每一位表示对应索引值的存在或缺失。位图索引适用于低基数的列。比如性别、状态等。
5. SpringBoot 的执行流程
SpringBoot 是一个基于 Spring 框架的快速开发框架它通过自动配置和约定优于配置的原则简化了Spring应用程序的开发流程提供了一种快速构建、易于部署的方式。
加载配置文件SpringBoot 会自动加载 application.properties 或 application.yml 等配置文化并将其中的配置顶绑定到对应的Java对象上这些对象被称为Spring Bean。创建 Spring IoC 容器SpringBoot 会根据配置文件中的信息创建一个Spring IoC 容器并将其中的所有Bean都装载到容器中在这个过程中SpringBoot 会自动扫描所有的类并根据注解自动配置Bean。运行应用程序SpringBoot 会自动其实Web服务器监听客户端请求并将请求交给合适的Controller 进行处理。在 Controller 中SpringBoot 会自动绑定请求参数和响应结果并调用 Service处理业务逻辑。处理请求在处理请求的过程中SpringBoot 会自动执行拦截器、过滤器等组件以及处理异常、日志等功能。同时SpringBoot 还提供了缓存、事务、安全、任务调度等常用功能方便开发者使用。关闭应用程序当应用程序关闭时SpringBoot 会自动销毁所有的 Bean释放资源并关闭Web服务器。