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,一经查实,立即删除!

相关文章

mysql shell 回车换行_【shell mysql 导出数据到csv脚本,完美解决乱码转义符等问题】-费元星...

#!/bin/bash#author:feiyuanxing 【既然笨到家,就要努力到家】#date:2017-12-05#E-Mail:feiyuanxinggmail.com#TARGET:一键导出mysql数据到 csv#CopyRight:本脚本遵守 未来星开源协议(http://feiyuanxing.com/kaiyuanxieyi/kaiyua…

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

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

python学法用法 自动刷分器_Python selenium模拟手动操作实现无人值守刷积分功能...

def DaTi(): driver.get(url https://pc.xuexi.cn/points/exam-practice.html) elem_juje WebDriverWait(driver,100).until(EC.presence_of_element_located((By.XPATH,//div[class"q-header"]))) juje elem_juje.get_attribute(innerText) # 在每日答题中&#…

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…

mysql创建存储时覆盖_总结到位的MySQL 的覆盖索引与回表

两大类索引使用的存储引擎:MySQL5.7 InnoDB聚簇索引* 如果表设置了主键,则主键就是聚簇索引* 如果表没有主键,则会默认第一个NOT NULL,且唯一(UNIQUE)的列作为聚簇索引* 以上都没有,则会默认创建一个隐藏的row_id作为聚…

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

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

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

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

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

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

java client_java中HttpClient的使用

HttpClient的使用步骤:1、使用Apache的HttpClient发送GET和POST请求的步骤如下:1. 使用帮助类HttpClients创建CloseableHttpClient对象. 2. 基于要发送的HTTP请求类型创建HttpGet或者HttpPost实例.3. 使用addHeader方法添加请求头部,诸如User-Agent, Accept-Encodin…

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

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

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

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

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

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

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

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

java bean jsp_JavaBean与Jsp

这一节我们总结一下JavaBean和Jsp的关系。1. JavaBeanjavaBean是一个遵循特定写法的Java类,它通常具有如下特点:1)这个java类必须具有一个无参构造函数;2)属性必须私有化;3)私有化的属性必须通过public类型的方法暴露给其他程序&a…

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

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

java 追加写入txt文件_ava如何追加写入txt文件

(二)方法1public void method1() {FileWriter fw null;try {//如果文件存在,则追加内容;如果文件不存在,则创建文件File fnew File("E:\dd.txt");fw new FileWriter(f, true);} catch (IOException e) {e.printStackTrace();}Pri…

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

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

c 加密 java解密错误_java解密出错

展开全部你那个代码少得东西太多,我左试右试,都是错,也不知道你的初始32313133353236313431303231363533e78988e69d8331333332613762值都是什么。给你写了一个加密解密的,希望对你有帮助。import java.security.NoSuchAlgorithmEx…

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

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

java 中的event_Java中this与event有什么不同

Java中this与event有什么不同发布时间:2021-02-11 10:37:25来源:亿速云阅读:61作者:LeahJava中this与event有什么不同?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法&#xff…