java小游戏毕业论文,你不懂还不学?

1. Spring 特点

Spring 主要有如下特点:

  1. 轻量级:Spring 是非侵入式,其中的对象不依赖 Spring 的特定类;
  2. 控制反转(IoC):通过 IoC,促进了低耦合,一个对象依赖的其他对象通过被动的方式传递进来,而不用该对象主动创建或查找;
  3. 面向切面(AOP):支持面向切面编程,将应用业务逻辑层和系统服务层分开;
  4. 容器:包含并管理应用对象的配置以及生命周期,此时 Spring 就相当于一个容器;
  5. 框架集合:能将简单的组件进行配置,组合成为更为复杂的应用;在 Spring 中,应用对象被声明式地组合在一个 XML 文件中;此外,Spring 也提供了事务管理、 持久化框架集成等基础功能,将应用逻辑的开发留给开发者;

2. Spring 核心组件

Spring 是一个分层架构,主要由如下 7 大模块所构成。Spring 模块位于核心容器,定义了创建、配置和管理 Bean 的方式。

  1. Spring Core:提供 Spring 框架基本功能,主要组件是 BeanFactory,是工厂模式的实现,通过 IOC 机制将应用程序的配置和依赖性规范与实际的应用程序代码分开。
  2. Spring Context:一个配置文件,给 Spring 框架提供上下文信息,上下文包括 JNDI、EJB、电子邮件、国际化、校验和调度等企业服务。
  3. Spring AOP :通过配置管理特性,Spring AOP 直接将 AOP(面向切面)功能集成到 Spring 框架。从而我们能够十分方便的使用 Spring 框架来管理任何支持 AOP 的对象。模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用该组件,可以不依赖其他组件九江声明性事务管理集成到应用程序中。
  4. Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可以用来管理异常处理和不同数据库供应商抛出的错误信息。异常层次结构简化了错误处理,而且极大降低了需要编写的异常代码数量。Spring DAO 面向 JDBC 的异常遵从通用的 DAO 异常层次结构。
  5. Spring ORM:Spring 框架中插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map,这些都遵从 Spring 的通用事务和 DAO 异常层次结构;
  6. Spring Web:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文,所以 Spring 框架支持与 Jakarta Structs 的集成。同时该模块还简化了处理多部分请求以及请求参数绑定到域对象的工作。
  7. Spring MVC:MVC 是一个全功能的构建 Web 应用的 MVC 实现,可以通过策略接口对 MVC 框架实现高度可配置。而且 MVC 还容纳了 JSP、Velocity、Tiles 等视图技术。

3. Spring 常用注解

4. IoC 原理

4.1 定义

Spring 通过一个配置文件来描述 Bean 之间的相互依赖关系,利用 Java 的反射功能来实例化 Bean 并建立 Bean 之间的依赖关系。Spring 的 IoC 容器在完成这些底层工作的基础上,还提供 Bean 实例缓存、生命周期管理、Bean 实例代理、事件发布、资源装载等高级服务;

总结而言:IOC 负责创建对象、管理对象(通过依赖注入)、整合对象、配置对象以及管理对象的生命周期

4.2 Spring 容器高层视图

  1. Spring 启动时先读取 Bean 配置信息,并在 Spring 容器中生成一份对应的 Bean 配置注册表;
  2. 根据上一步中生成的 Bean 配置注册表来实例化 Bean,并装配好 Bean 之间的依赖关系;
  3. 将实例化后的 Bean 装载到 Spring 容器中的 Bean 缓存池中,供上层的应用程序使用;

4.3 Spring Bean 的作用域及生命周期

4.3.1 作用域

Spring 中,用来组成应用程序的主体以及由 Spring IoC 容器所管理的对象叫做 Bean。简而言之,Bean 就是由 IoC 容器来进行初始化、装配和管理的对象。

Bean 的作用域主要有如下几种:

  1. Singleton(单例)

作用域为 Singleton该模式在多线程下不安全,表明 IoC 容器中只会存在一个共享 Bean 实例,而且所有对 Bean 的请求,主要 id 和该 Bean 定义相匹配,那么就会返回 Bean 的同一实例。Singleton 是单例模型,即在从创建容器的同时就会自动创建一个 Bean 的对象,无论是否使用,而且 每次获取到的对象都是同一对象

  1. Prototype(原型):每次创建时使用

作用域为 Prototype,表明一个 Bean 定义对应多个实例,该作用域中的 Bean 会导致在 每次对该 Bean 请求时均创建一个新的 Bean 实例Prototype 是一个原型类型,在我们创建容器时并未实例化,而是当我们获取 Bean 时才去创建一个对象,而且每次获取到的对象都不一样。

  1. Request:一次 request 一个实例

作用域为 Request表明在一次 HTTP 请求中,容器返回该 Bean 的同一个实例,即每个 HTTP 请求均有各自的 Bean 实例,依据某个 Bean 定义创建而成,只在基于 Web 的 Spring ApplicationContext 情形下有效。当一次 HTTP 请求处理结束时,该作用域中的 Bean 实例均被销毁。

  1. Session

作用域为 Session ,表明 在一个 HTTP Session 中,容器返回该 Bean 的同一个实例,对不同的 Session 请求则创建新的实例,该 Bean 实例仅在当前 Session 内有效,只在基于 Web 的 Spring ApplicationContext 情形下有效。当一个 HTTP Session 被废弃时,在该作用域内的 Bean 也将失效。

4.3.2 生命周期

  1. Spring 对 Bean 进行实例化;
  2. Spring 将值和 Bean 的引用注入到 Bean 对应属性中;
  3. 若 Bean 实现了 BeanNameAware 接口,则 Spring 将 Bean 的 ID 传递给 setBeanName() 方法;
  4. 若 Bean 实现了 BeanFactoryAware 接口,Spring 将调用 setBeanFactory() 方法,将 Bean 所在应用引用传入进来;
  5. 若 Bean 实现了 ApplicationContextAware 接口,Spring 将调用 setApplicationContext() 方法,将 Bean 所在应用的引用传入进来;
  6. 若 Bean 实现了 BeanPostProcessor 接口,Spring 将调用 post-ProcessBeforeInitalization() 方法;
  7. 若 Bean 实现了 InitializingBean 接口,Spring 将调用他们的 after-PropertiesSet() 方法,类似地,如果 Bean 使用 init-method 声明了初始化方法,则该方法也会被调用;
  8. 若 Bean 实现了 BeanPostProcessor 接口,Spring 将调用他们的 post-ProcessAfterInitialization() 方法;
  9. 此时,Bean 已经准备就绪,我们就可以被应用程序使用,他们将一直驻留在应用上下文中,直到该应用被销毁;
  10. 若 Bean 实现了 DisposableBean 接口,Spring 将调用它的 destory() 接口方法;同样,若 Bean 使用 destroy-method 声明了销毁方法,该方法也将被调用;

最后

2020年在匆匆忙忙慌慌乱乱中就这么度过了,我们迎来了新一年,互联网的发展如此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。

更多JVM面试整理:

(img-45r23QMe-1624514493612)]

更多JVM面试整理:

[外链图片转存中…(img-Qg0vqmjZ-1624514493613)]

点击这里免费下载“百万级”「JVM笔记」

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/385913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java小游戏源代码资源,一招彻底弄懂!

BATJ大厂面经 阿里七面面经 蚂蚁金服面经及答案 京东面经 百度美团顺丰京东阿里面经 面试题精选 Java面试手册 MySQL55题及答案 多线程面试题及答案 设计模式面试题及答案 消息中间件面试题及答案 并发编程面试题及答案 面试资料整理汇总 最后 总而言之,面试官问…

java小程序小游戏代码贪吃蛇,附高频面试题合集

One:JVM实践思维图(完整版) Two: 走近Java 概述 Java技术体系Java发展史Java虚拟机家族:(Sun Classic/Exact VM、HotSpot VM、Mobile/Embedded VM、BEA JRockit/IBM J9 VM、BEA Liquid VM/Azul VM、Apache…

java小程序开发平台,隔壁都馋哭了

01 阿里面试题之MySQL 之前的阿里面试题都有做总结,具体面试题内容整理成了文档,本文是针对MySQL系列的,所以下面只展示了自己第一次面试阿里时被吊打问到的一些MySQL难题 请解释关系型数据库概念及主要特点?请说出关系型数据库…

java小程序查看器,成功拿到offer

架构筑基 大家都知道,性能一直是让程序员比较头疼的问题。当系统架构变得复杂而庞大之后,性能方面就会下降,如果想成为一名优秀的架构师,性能优化就是你必须思考的问题。 所以性能优化专题从JVM底层原理到内存优化再到各个中间件…

java小程序设计一个国旗点击国旗唱国歌,看这篇足矣了!

工作的前两年 如果你不能拼爹,或者不想拼爹,最好的方法是拼实力。 合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。 所以,你必须要从基层做起。当然,所谓的基…

java小项目实例,成功入职阿里

我听到的一些发声 你们赚的钱已经可以了: 我一个发小是做土木工程的,上海大学博士,参与很多著名建筑的工程,但是从薪资上看,还不如一些稍微像样的公司的6年多的高级开发。为什么?这就是行业的红利&#xf…

java属于什么行业,吐血整理

微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。 微服务落地存在的问题 虽…

java struts2 ajax_在struts2的Action中返回Ajax数据

author:z_xiaofei168如何在struts2的action中返回数据(普通字符串、图片)给ajax核心中的XMLHttpRequest对象。今天下午做项目,就是用户注册是时候,登录名是否唯一,我用的ajax验证,但怎么也不返回我想要的数据,纠结了老…

Nginx负载均衡策略有哪些?知识点总结+面试题解析

前言 看日期,今天都是4月了,这春招也差不多进入尾声了。 近期任有不少朋友都在找工作,很多人开始抱怨,工作可真难找啊!身边不少朋友问我咋搞呀,秋招都要结束了,工作还没着落呢…额…这个…今年…

P8级别的顶级“并发编程”宝典,最全指南

前言 前几天我上班路上,和小区门口开车的师傅闲聊,发现他们虽然学历不高,但挣钱的途径不少,比如固定接送多位客户,然后能通过朋友圈拓展新客户,而且通过客户口口相传,也能不断拉到生意&#xf…

Redis宕机数据丢失解决方案,不吃透都对不起自己

前言 昨天,有个女孩子问我提高数据库查询性能有什么立竿见影的好方法? 这简直是一道送分题,我自豪且略带鄙夷的说,当然是加「索引」了。 她又不紧不慢的问,索引为什么就能提高查询性能。 这还用问,索引…

Redis成神之路电子版教程已问世,面试题+笔记+项目实战

前言 我想对所有程序员说:除了看视频、做项目来提高自身的技术之外,还有一种提升自己的专业技能就是:多!看!书!(本文内提到的书单笔者整理出了一份电子档作为分享,文末有免费获取方式…

Redis有几种数据类型?文末领取面试资料

前言 其实前几篇文章已经写了好多有关于Spring源码的文章,事实上,很多同学虽然一直在跟着阅读、学习这些Spring的源码教程,但是一直都很迷茫,这些Spring的源码学习,似乎只是为了面试吹逼用,我大概问过一些…

java 多重属性_最全面的44个Java 性能调优细节

我认为,代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因。然而为了解决这个错误…

Redis灵魂14问?真香

前言 今日博主听闻,现在很多培训出来的应届生薪资都赶上了摸爬滚打两三年的朋友,讲道理,这说不过去啊 作为同行来说,这个行业发展很快,技术更新很快,淘汰也很快,千万不要再找借口了&#xff0…

java主流微服务框架_Spring Boot作为当下最流行的微服务开发框架,一名合格的Java开发者一定有所了解,...

Spring Boot作为当下最流行的微服务开发框架,一名合格的Java开发者一定有所了解,Spring Boot相对于传统的SSM框架来说:springboot使用了特定的配置方式,开发人员不需要再定义样板化的配置,简化项目的初始构建springboo…

Redis面试复习大纲在手面试不慌,内含福利

前言 这几年在Java工程师招聘时,会看到很多人的简历都写着使用了Spring Cloud做微服务实现,使用Docker做自动化部署,并且也会把这些做为自己的亮点。而比较有趣的这其中以小公司出来的人为绝大多数,大的公司出来的人简历上倒是很…

Redis面试复习大纲在手面试不慌,讲的明明白白!

前言 面试时间将近两个小时(期间等待二面面试官来面我的时候等了半个多小时)面试官问的东西很多,还挖了好几个坑,一个技术点套着一个技术点的问,一定要做好万全的准备。问了一些基本层面上的技术点都答出来了&#xf…

RocketMQ消息丢失场景及解决办法,已拿offer入职

前言 当前我们都会说SpringBoot是Spring框架对“约定优先于配置理念的最佳实践的产物,一个典型的SpringBoot应用本质上其实就是一个基于Spring框架的应用,而如果大家对Spring框架已经了如指掌,那么,在我们一步步揭开SpringBoot微…

java抓rtp包_Wireshark抓取RTP包,还原语音

最近在做基于SIP的VoIP通信研究,使用Wireshark软件可以对网络流量进行抓包。VoIP使用RTP协议对语音数据进行传输,语音载荷都封装在RTP包里面。要对传输中的语音进行截获和还原,需要通过Wireshark对RTP包进行分析和解码。该过程如下&#xff1…