代码管理

【Spring源码分析系列】ApplicationContext 相关接口架构分析

纵饮孤独 提交于 2019-12-28 00:47:05
【原创文章,转载请注明出处】【本文地址】http://www.cnblogs.com/zffenger/p/5813470.html 在使用Spring的时候,我们经常需要先得到一个ApplicationContext对象,然后从该对象中获取我们配置的Bean对象。ApplicationContext隶属于org.springframework.context,是SpringFramework中Bean的管理者,为SpringFramework的诸多功能提供支撑作用。 下图是Spring-4.3.2.RELEASE版本中ApplicationContext相关的UML类视图(浅绿色的为接口,浅黄色的为类): BeanFactory系列接口: public interface BeanFactory BeanFactory 是 Spring 管理 Bean 的最顶层接口,是一个 Bean 容器, 管理一系列的 bean,每一个 bean 使用一个String 类型的 name(或称之为id) 来唯一确定,这些 Bean 可以是 prototype 的或者 singleton的 。Spring 提倡使用依赖注入(Dependency Injection) 的方式装配 Bean。BeanFactory从“configuration source”加载Bean的定义

XNA之RPG游戏开发教程之一

旧街凉风 提交于 2019-12-27 21:19:05
最近有些时间,想把C#,XNA,kinect等这些最近学的东西用个RPG游戏来总结下,在网上找到一份国外的开发教程,可惜是英文版的,详细的介绍了一个基于XNA的RPG游戏引擎的设计,从今天开始,我就边翻译边学习下引擎设计,有不到位的地方,还请谅解 首先打开Visual Studio 2010 (我是用C#来开发,当然C++也是可以的),新建-》项目-》点击XNA Game Studio(4.0),选择Windows Game(4.0),创建工程,命名为EyesOfTheDragon。打开工程文件可以看到平台自动为我们创建了两个项目,一个是游戏项目EyesOfTheDragon,另一个是游戏内容项目EyesOfTheDragonContent,专门用来存放一些游戏创建中有关的图片,音频等文件 对于XNA4.0有两种Graphics profiles可供选择,HiDef和Reach 配置文件,我们这里要用的是Reach这种配置文件。具体操作是右击工程下的EyesOfTheDragonContent项目文件,选择属性,可以看到有对Graphics profiles的选择,选择Reach配置文件。 配置好这些后就开始我们的模块构建。首先,我想在工程中添加两个类库文件,一个是标准类库,保存着一些可以在其他项目中公用的类代码;一个是XNA游戏类库

事务模型

我的未来我决定 提交于 2019-12-26 20:57:10
3种事务模型 本地事务模型 本地事务模型的名称来自于它实际上不是管理事务的框架,而是本地资源管理器。资源管理器是与之通信的数据源的实际提供者。例如,对于数据库,资源管理器是通过数据库驱动程序和DBMS实现的。对于JMS,资源管理器是通过特定的JMS提供程序实现的队列(或主题)连接工厂。使用本地事务模型,开发人员管理连接,而不是事务。实际管理本地事务的是DBMS或JMS提供程序。关于本地事务, 事实是事务管理由底层数据库(DBMS)处理,如果是jms,则由底层消息传递提供程序处理。从开发人员的角度来看,我们不管理本地事务模型中的事务,而是管理连接 。下面的代码示例演示了使用直接JDBC代码的本地事务模型的使用: public void updateTradeOrder(TradeOrderData order) throws Exception { DataSource ds = (DataSource) (new InitialContext()).lookup( "jdbc/MasterDS"); Connection conn = ds.getConnection(); conn.setAutoCommit(false); Statement stmt = conn.createStatement(); String sql = "update trade_order ...

69道Spring面试题和答案

烈酒焚心 提交于 2019-12-26 18:41:35
目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。 2. 使用Spring框架的好处是什么? 轻量: Spring 是轻量的,基本的版本大约2MB。 控制反转: Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。 面向切面的编程(AOP): Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。 容器: Spring 包含并管理应用中对象的生命周期和配置。 MVC框架 :Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。 事务管理: Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。 异常处理: Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。 3. Spring由哪些模块组成

Puppet常识梳理

邮差的信 提交于 2019-12-26 07:14:31
Puppet简单介绍 1)puppet是一种Linux/Unix平台下的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。 2)Puppet是开源的基于Ruby的系统配置管理工具,puppet是一个C/S结构。所有的puppet客户端同一个服务器端的puppet通讯,每个puppet客户端每半小时(可以设置)连接一次服务器端,下载最新的配置文件,并且严格按照配置文件来配置服务器。 配置完成以后,puppet客户端可以反馈给服务器端一个消息, 如果出错,也会给服务器端反馈一个消息。 3)Puppet是用于大规模集群管理的神器。其本身使用Ruby语言开发,基于C/S架构。在每台机器上部署的客户端每隔一个指定的时间会连接到Master检查资源变化情况,若资源发生变化,将按配置动作进行相应的操作。 4)Puppet将所有可操作对象抽象为资源,目前涵盖了40多种,如:File、User、Group、Host、Package、Service、Cron、Exec等。 5)Puppet 通过抽象资源的方式,使得每台机器能够“清楚”其本身“应该”是什么“状态”,而客户端根据当前是否达到这个状态决定采取指定的动作。这使得Puppet

维护日程管理项目

核能气质少年 提交于 2019-12-26 04:54:31
原先的背景用的比较单调,所以在和队友的讨论下用了一张有色调的图片 商量好背景图片之后,开始想在个人中心的界面中添加一些控件 在网上找了一些个人中心设置的图片,然后仿照着放一些简单的控件,代码如下 最后实现的效果如下: 在这过程中因为白色的背景导致线条的颜色不鲜明,上午百度了解决的方法 首先找到styles.xml 然后添加一段内容 <style name="MyEditText" parent="android:Theme"> <item name="colorControlNormal">@color/black</item> <item name="colorControlActivated">@color/black</item> </style> 最后在edittext的代码中加上一句 android :theme= "@style/MyEditText" 这次是以结对的形式来维护项目的,我的队友是庄雅丽,她在这个项目中提出了很多建议,我也力所能及的做一些我能做的,安卓部分的代码还能够理解一些,java部分的代码我主要是在听队友的讲解,在她的讲解下,也多多少少了解到一些,一些基础的设置监听器,查找控件的语句也都能理解,但是要自己独立得来完成一段代码还是存在很大的问题,结对还是有他的好处的,在不懂得情况下可以跟队友一起商量解决问题,虽然学的不精但是我也会尽我所能去写一些代码。

Shiro学习(10)Session管理

无人久伴 提交于 2019-12-26 02:32:52
Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理、会话事件监听、会话存储/持久化、容器无关的集群、失效/过期支持、对Web的透明支持、SSO单点登录的支持等特性。即直接使用Shiro的会话管理可以直接替换如Web容器的会话管理。 会话 所谓会话,即用户访问应用时保持的连接关系,在多次交互中应用能够识别出当前访问的用户是谁,且可以在多次交互中保存一些数据。如访问一些网站时登录成功后,网站可以记住用户,且在退出之前都可以识别当前用户是谁。 Shiro的会话支持不仅可以在普通的JavaSE应用中使用,也可以在JavaEE应用中使用,如web应用。且使用方式是一致的。 Java代码 login("classpath:shiro.ini", "zhang", "123"); Subject subject = SecurityUtils.getSubject(); Session session = subject.getSession(); 登录成功后使用Subject.getSession()即可获取会话;其等价于Subject.getSession(true),即如果当前没有创建Session对象会创建一个;另外Subject.getSession(false)

Git 和 GitHub

蹲街弑〆低调 提交于 2019-12-26 01:19:40
文章目录 版本控制工具 概念 作用 常见工具 Git 简介 Git准备工作 创建.git目录 设置签名 版本管理 文件版本控制方式 文件版本基础管理 版本前进后退管理 删除文件并找回方式 比较文件的方式 分支管理 什么是分支管理? 好处 操作方式 分支合并以及解决冲突 Git注意事项 1. 保持原子性的提交 2. 对提交的信息采用明晰的标注 GitHub 概述 GitHub网站应用 1. 创建远程库 邀请其他GitHub用户加入开发团队 GitHub注意事项 1. 推送之前先拉取 2. 不要推送不能通过编译的代码 3. 不要推送自己不明白的代码 4. 提前协调好项目组成员的工作计划 idea使用Git&GitHub 基本配置 将IDEA项目push(推送)到GitHub GitHub远程库clone项目到IDEA 版本控制工具 概念 版本控制工具提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。 版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了已录下来。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率 作用 (1)协同开发 团队协作共同完成同一个项目 (2)版本管理 以不断提升项目版本的方式逐步完成项目。

大龄程序员技术管理路上的悲喜总结

人走茶凉 提交于 2019-12-25 19:13:24
生在中国这片热土,我们做程序开发的人要面临很多的挑战。只要生命不息,挑战就永远不会停止。 比如最近疯传的 35 岁程序员送外卖。这明显点出了在中国搞开发,要面临的其中之一挑战:年龄。 在整个 IT 领域,大多数的开发者都属于普通人。只有极少数部分人能站在技术的尖端引领技术的前进与走向。那么,普通的开发者,又很容易被新人替换。新人更经济实惠,压力小。而老开发人员技术的天花板无法打破的情况下。要面临跟着一群小朋友一起起早贪黑的工作模式。甚至于会出现自己一把年纪,上面的领导比自己还小好多岁的窘境。 肯定有人会说我们这群老人矫情。但是,又有几人能做到内心毫无波澜呢? 本篇博文主要是针对我们这群普通的开发者处境所写。请允许我在这里贩卖焦虑。 一、系统架构 作为技术这条路线,最终都会偏架构方向。即使做技术经理或总监。都必须对系统架构要有一定的知识储备,以备对团队的架构搭建与变更做出准确的判断。 这里并不是说我们去设计一些千万级别以上 PV 的系统架构。做为普通的开发者,要接触上亿的系统平台相对来说机会并不是很多。即使接触了,也仅仅只是这个平台里面的一个小螺丝。要能主导这个架构的设计,还稍显稚嫩。我再次说明一下,这里仅仅只对普通的开发者。不指那些尖端的高技术人才。 在我的理念当中,千万级别及以下 PV 的构架,通常用不到微服务。所以,不要用微服务来坑自己。加重架构的复杂度。

Python语言高级特性:上下文管理器 #P005#

一世执手 提交于 2019-12-24 21:24:02
相信大家在编程的时候,经常会遇到这样的场景:先执行一些准备操作,然后执行自己的业务逻辑,等业务逻辑完成以后,再执行一些清理操作。例如,对文件操作,我们需要首先打开文件,然后处理文件内容,最后关闭文件。又如,当多线程程序需要访问临界资源的时候,线程首先需要获取互斥锁,当执行完成并准备退出临界区的时候,需要释放互斥锁。对于这些场景,Python中提供了上下文管理器(Context Manager),可以通过上下文管理器来控制代码块执行前的准备动作以及执行后的收尾动作。 1 上下文管理器的概念 所谓上下文管理器,就是实现了上下文管理协议的类(实现__enter__和__exit__方法)或函数(使用contextmanager装饰器)。为了使用上下文管理器,Python 2.6和Python 3.0引入了一种特殊的语句,即with语句及其可选的as子语句。with语句与上下文管理器一起作协,为Python工程师编程提供了一些便利。 上下文管理器应用于某些特殊的情景之中,典型的应用场景是打开某种资源,对资源进行处理,最后再关闭资源。可以看到,上下文管理器的作用与常见的try/finally语句的作用比较类似,都是用于确保打开的资源无论在何种情况下,都能够及时的关闭。在其他编程语言中,一般使用try/finally语句来完成。在Python中,应该优先使用上下文管理器。因为