专注开发,架构知识
暂时未有相关通用技术能力~
阿里云技能认证
详细说明记一次JVM调优 高级程序员必不可少的技能,这个也是高薪必问的问题 能够有效通过 JVM 调优提升系统性能的人往往被人们冠以”大牛”、”大师”之类的称呼。 过程 在项目启动时加上必要的参数 -XX:+PrintGC -XX:+PrintGCCause -XX:+PrintGCDateStamps ...
今天早上分享了下HBase,分享的时候同事提出了一些问题,可能大部分有有这样的困惑,汇总下来: HBase问题汇总与解答 两个独立的服务器,一台用HDFS,一台不用HDFS可以吗?HDFS和Hbase必须要装在同一台服务器上吗? 答: As HBase runs on HDFS (and eac...
支付系统和结算系统关系很密切,在钱收到自己的账户里面,不可能就放在那里不管了,在用户用完产品之后,大家要对对账,看看用户用了我们的什么服务,有哪些要收费的项目,用户需要付那些钱,钱有没有付清楚,钱有没有算错,等用户觉得这些收费没错,确认账单了。
平时自己瞎写了好多文章,不过没有什么套路和技巧,想写好一点,今天在星球群里看到这些建议,很受用,拿来分享 从提交点评文章的角度看,不要为了抢占点评机会而上传文章。
Django的配置文件settings.py包含了基本上所有的Django安装的配置,这里解释下配置是如何生效的,还有有哪些可用的配置。 基础 配置文件是一个Python的模块,然后里面有一些模块级的变量。
运动习惯保持的也有7年了,不管在哪个地方,做什么事情,总会想办法在一天中给自己留一点可以去运动的时间。兴趣爱好另外也都是要花费一些钱的。 坚持了这么久的一件事,难道不该弄明白为什么要做它吗? image 为什么要运动? 觉得自己应该配上更好的身材。
Spring的注解非常多,这篇文章我们说一下它的@RequestBody 和 @ResponseBody注解。 @ResponseBody 简单说,@ResponseBody注解将HttpRequest的请求体映射为Java的POJO对象。
作为Spring非常重要的一个组件,Spring MVC在java web领域已经是当之无愧的领头人物,能正确的使用Spring MVC非常重要,今天就一起搭建一个Spring MVC项目的骨架,一起入门下Spring MVC。
越来越多的人在用Vue,刚开始接触vue的话常接触的指令就几个,统一归纳一下,做个demo演示。 指令 v-text v-html v-bind v-on v-model v-for 代码 学习技术最好还是要看下代码是什么样的。
Vue项目目前在国内越来越流行,很多新的项目都会采用它,老的项目也想迁移到Vue上面来,我们公司也在用Vue了,今天在搭建Vue的时候遇到了几个问题,记录下来。
前面写了一些Spring MVC的文章,但是若要问我Spring MVC是什么,一时我可能还想不到合适的话让刚接触Spring MVC的人立刻明白。这次就要解释下Spring MVC是什么。
中间件是Django处理请求和响应处理过程中的一个钩子,它比较轻量级,但是可以用来改变Django全局的的输入和输出。 每一个中间件一般都用来做一些特殊的功能,可以添加多个中间件来实现更多的功能。
在健身训练上,或者任何事情上,人习惯性的重复自己之前的行动,更有效的行为往往因为习惯而没有做。那就要多方面提醒自己什么是相对来说更正确的动作。 锻炼手臂 而国外有实验显示,夏季女性观察男人最多的部位则是手臂,撑爆袖口的手臂让人感觉感十足,性感指数报表。
Django默认使用的数据库是SQLite,但在实际中大部分公司或个人开发者都会采用MySQL,原因肯定是MySQL比较好用啊。 在配置MySQL的过程可能会出现一点问题,这里记录一下过程与问题 记录 Django的默认配置文件在生成项目时候,会有一个settings.py文件,里面有各种配置其中有一项是配置数据库的。
Ansible的inventory文件定义了它要操作的一些主机,它可以通过inventory对这些主机进行操控。默认的inventory文件是/etc/ansible/hosts 。
Comparable和Compator都是用于给集合排序的接口,但是他们之间的区别是什么呢。 Comparable: 这个接口只有一个方法compareTo。
开发人员做个3~5年常见的功能也都做的差不多了,不管是好的还是坏的,是自己做的还是组团做的,都可以说自己是做过相关功能的。然而大家都做过相关的功能,在大公司做东西的特点是开发的很多代码你是没法单独丢出来看的。
如果是开发人员并且经常使用终端的话,很多时候要在终端安装一些软件包。比如:rabbitmq,activemq,sshpass等。 像各种编程语言提供的包管理器,java有maven,python有pip,php有composer, nodejs有npm, objective-c和swift有pod。
在当代的web应用中,清晰优雅的URL非常重要,在Django框架中,你可以随心所欲的设计你的URL,不用担心框架的限制。 概览 为了给一个app设计URL,你创建一个Python模块叫做URLConf,这个模块是纯Python代码并且用于于映射URL路径和Python的功能或视图。
模型是一个定义数据源的数据,它包含要存储数据的一些属性和行为。通常,每一个模型对应数据库中的一个数据表。 每一个模型是django.db.models.Model的子类 每一个模型属性代表数据表的一个字段。
Spring的核心是IOC与AOP,IOC主要是依赖关系的管理,依赖查询,依赖注入,在之前bean的生命周期文章中已经对bean的生命周期做了相对多的分析,这里以前探讨下AOP的实现原理。
神州优车集团平台团队常年招人,欢迎投递简历: 投递邮箱:he.ai@ucarinc.com QQ联系: 1741919901 各种岗位,Java高级/架构, 前端高级/架构。
以后面试问到Bean的生命周期再也不怕了! 看了这么久的Spring源码,想必对Spring的生命周期已经有了一定的了解,这次将之前零散的生命周期处理的事情贯穿起来,看过之后,一定对bean的生命周期有更深入的理解 与文无关 简介 实例化 设置bean的Aware BeanPostProcessor.
不管是何种类型的bean,最终都要通过createBean方法来创建,处理,createBean方法可以说是beanFactory最重要的方法之一,其实现在AbstractAutowireCapableBeanFactory类中。
前面提的基本上都是ApplicationContext的refresh方法,在分析的过程中bean容器的基本启动过程心中有了大体的了解,分析过程中,我们发现bean的实例化及加工相关的处理都在getBean方法中,一起看下getBean方法。
这个方法应该是ApplicationContext刷新的时候,最重要的方法了,因为所有的bean,如果不是lazy-init的都会在这一步进行实例化,并且做一些处理。
开发某个功能时候遇到一点小问题,记录一下 上传到git仓库,被发现在开发代码中写了测试代码.. (原本自己想测试下功能是否正常,测试完忘记删除了) 前端的项目,有个index.js文件不让修改,不是不让修改,为了大家统一。
现在到了ApplicationContext的refresh()方法中初始化消息源与事件广播器,这两个方法比较像,并且逻辑较少,放在一起看看。 initMessageSource 判断beanFactory中是否有名字为messageSource的bean,如果有,从beanFactory中获取并且判断获取的是不是HierarchicalMessageSource类型的,如果是设置其父级消息源 如果没有,新建DelegatingMessageSource类作为messageSource的Bean。
ApplicationContext刷新的时候上一步提到了,先调用BeanFactoryPostProcessors预处理下BeanFactory,现在注册Bean processors来拦截Bean的创建。
在beanFactory准备好之后,(配置ignoreDependecy,ResolvableDependency,PostProcessors),现在要调用BeanFactoryPostProcessors了。
在ApplicationContext刷新获取beanFactory之后,开始准备context使用的beanFactory。这一步相对比较简单,就是配置facotry的特性,比如:ClassLoader,post-processors等等 代码如下:...
ApplicationContext在启动的时候会首先刷新beanFactory,刷新的时候如果有之前的Bean首先销毁之前存在的Bean,然后再从我们的配置文件中注册新的Bean。
初始化ApplicationContext的时候,如果设置了自动刷新标志,会执行AbstractApplication的refresh方法,我们前篇文章提到了它的prepareRefresh方法,接下来执行的就是obtainFreshBeanFactory。
前面提到了ApplicationContext的实例化过程,实例化的时候会判断refresh标志,一般都是true的,在refresh方法中,第一个执行的方法就是prepareRefresh,今天一起看下这个方法内部都做了什么。
今天晚上接触的和挂科相关事情比较多,一个学生在大四还在挂科然后找工作也非常消极,又想起了学生时挂科的那些事。 回忆 我有一个哥们和我关系很不错,大学经常一块吃饭瞎聊,这小子大一末时班里绩点倒数第二,不过大四时顺利毕业就对了,现在在北京做娱乐相关的岗位。
Spring Bean的生命周期往深入去看,不是简单的几句话能讲完,早就想写相关的内容,但一直觉得工作量不会低,就没有动笔写。拆成几篇来写,这样也不好给自己太大的压力。
步入职场,对比刚毕业时的那段创业时间,觉得自己有一些做的不对的地方,或者整个创业团队导致失败的地方。 失败原因很多,天时、地利、人和都有因素,这次只想说说关于大家对开发的误解,这也是失败的原因之一。
Tower是个git的工具软件,git的桌面版软件,据说腾讯内部员工都是使用的这个软件,不过这个软件也确实好用。不过要收费就对了 背景 开发一般都会有自己的github账户,然后公司内部有内部的git服务器,参考搭建Gitlab仓库,在公司的话肯定要用公司的账户。
三年的锤子使用时长,接下来要入手新的手机,用了这么久的锤子,虽然现在不用了,但想说点什么。15年10月1号买的锤子坚果,16年11月入手的smatisan M1,现在M1已经要退役了。
项目扩张到一定程度,必须要有一定的规范来约束,才不至于项目变得越来越差,虽然牺牲一些效率,但是有利于公司的管理。 这里分享一些团队内部的工作流程规范 image.png 规范 需求阶段 新建需求Jira。
Spring是现今Java开发人员最常用的框架,开发人员使用Spring来构建高性能的,易于测试的,可重用的代码。使用Spring,Java开发人员的效率极大提升。
Maven Filter与Profile隔离生产环境与开发环境 在不同的开发阶段,我们一般用到不同的环境,开发阶段使用开发环境的一套东西,测试环境使用测试环境的东西,可能有多个测试环境,生产环境使用的是另外一套,生产环境要求是最严格的。
今天和女朋友聊天,聊得我大学刚到学校的时候说话很不标准都是家乡话,别人听不懂我说的内容,后面为什么改变口音,还有怎么改变的呢? 错觉 首先解释下刚到大学的时候怎么满嘴的家乡话,我发现一个有意思的现象: 我们对事物的一些认知,有些仅仅是错觉 别人听我说话,觉得是家乡话,听不懂。
习惯使用个人电脑开发,在公司也使用自己的电脑,而公司使用的开发环境一般为公司内网才能使用,比如maven仓库,npm仓库。在家里开发的时候就出现一些环境不一致的问题。
换工作之后,最近思绪不够清晰,创业是为自己,打工是为自己,但要找到工作中的动力还有下班之后要筹划的内容。 其实就是如何提升自己竞争力,眼光放长远,找到该做的事,不断坚持积累。
继续说说工作上的想法,以后要减少空想了,多看看书来电理论与实践,在工作中做的更好点。 image.png 在公司工作的效率不够高还是要提提,不过我觉得这个是正常的,要规范要流程,就肯定会减少效率。
最近在参与一个规模还算过得去的项目,其中的某一个模块的开发,虽然只是一个模块,需求都写了50多页。之前没碰到过这样的东西,很多东西要适应下。前几天基本上没状态,一脸懵逼的样子,这个星期好了点,有点想法 背景 产品与开发不能及时沟通,产品与开发分工太开...
稍具规模一点的公司都会搭建属于自己的git,svn,而内部git用的最多的则是gitlab,虽然官网已经提供了非常多的功能,但内网搭建更能保证项目的私有性,只有公司内部员工才可以访问,更加安全。
集合类在Java中是引用类型,在操作的时候可能不经意间被程序修改,一些初级开发经常会犯类似的错误。这里我们讨论下如何让ArrayList不可改变。本文将演示以下几种方式: JDK Guava Apache Commons Collection4 JDK JDK给我们提供了一个很简便的方式从集合中获取一个不可变集合 Collections.
在List中选取一个随机的元素是比较常见的应用场景,但是实现起来相对麻烦一点,这里我们列举一些再不同场景下高效实现随机选取元素的方式。 操作 首先要生成一个随机的下标数,然后通过List.get()方法获取对应下标的元素。