阿里巴巴java开发
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于阿里巴巴java开发内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在阿里巴巴java开发相关知识领域提供全面立体的资料补充。同时还包含 android、a href、abap 的知识内容,欢迎查阅!
阿里巴巴java开发相关知识
-
阿里官方Java代码规范《阿里巴巴Java开发手册 v1.3.0》终极版 v1.3.0 2017年开春之际,阿里诚意献上重磅大礼:《阿里巴巴Java开发手册》,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本。 至今为止已更迭了三个版本,2017年9月25日,阿里巴巴Java开发手册(终极版)》正式发布,这是史上内容最全、修正最为彻底的一个版本,并且增加了单元测试规约内容,这也是阿里官方对外发布的最后一个PDF版本,值得收藏。 《阿里巴巴Java开发手册》是阿里内
-
阿里巴巴Java开发规约插件p3c详细教程及使用感受阿里巴巴Java开发手册 在进入正题介绍这款插件之前,首先来谈一下《阿里巴巴Java开发手册》,2017年年初,首次公开的阿里官方Java代码规范标准手册可以说是引起了全民(IT界)代码规范的热潮,相信这个手册很多行业内的朋友都比较熟悉,毕竟有"大厂光环",想低调都难,这个手册的愿景是: "统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本" 至今为止已更迭了三个版本,2017年9月25日,《阿里巴巴Java开发手册(终极版)》正式发布,也是阿里
-
《阿里巴巴 Java开发手册》读后感前言 只有光头才能变强 前一阵子一直在学Redis,结果在黄金段位被虐了,暂时升不了段位了,每天都拿不到首胜(好烦)。 趁着学校校运会,合理地给自己放了一个小长假,然后就回家了。回到家才发现当时618买了一堆书,这堆书还有没撕包装的呢....于是我翻出了最薄的一本《阿里巴巴 Java开发手册》 这本书一共就90多页,一天就可以通读完了,看完之后我又来水博文了。 注意: 书上很多的规范是可以用IDE来避免的,也有很多之前已经知道的了。 所以,这篇文章只记录我认为比较重要,或者说是
-
为什么阿里巴巴Java开发手册中强制要求整型包装类对象值用 equals 方法比较?在阅读《阿里巴巴Java开发手册》时,发现有一条关于整型包装类对象之间值比较的规约,具体内容如下: 这条建议非常值得大家关注, 而且该问题在 Java 面试中十分常见。 还需要思考以下几个问题: 如果不看《阿里巴巴Java开发手册》,如何知道 Integer var = ? 会缓存 -128 到 127 之间的赋值? 为什么会缓存这个范围的赋值? 如何学习和分析类似的问题? Integer 缓存问题分析 先看下面的示例代码,并思考该段代码的输出结果: public class IntegerTest { public sta
阿里巴巴java开发相关课程
阿里巴巴java开发相关教程
- 4.1 阿里云 AI 开放平台 阿里云 AI (https://ai.aliyun.com) 致力于构建最全面、最开放、最前沿的AI开放平台,从 2015 年开始,阿里云推出 AI 产品,包括语音识别,还有图像识别、视觉识别等 130 多款细分产品,适用于 300 多个场景。阿里云的 AI 解决方案阿里云提供了提供最易用的 API、SDK 等开发组件,助力企业快速高效的实现产品升级。对每项产品提供多种编程接口,包括:Python、Java、C++、ios、Android、Restful 等。以语音合成为例,阿里云 AI 的语音合成 Python SDK 提供了如下接口:SpeechSynthesizer,设置语音合成请求参数,发送语音合成请求。SpeechSynthesizerCallback,用于获取语音合成结果。
- 2.3 其他远程仓库 有了中央仓库,我们为什么还需要其他的远程仓库呢?我们要找的构件可能不存在于中央仓库中;由于某些原因,访问中央仓库的速度相对较慢。这种时候,我们就可以选择一个使用起来相对方便的远程仓库来配置,大大提高了我们的开发效率。国内常用的 Maven 仓库:阿里云镜像:<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf></mirror>阿里巴巴镜像:<mirror> <id>ibiblio</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url></mirror>repo2 镜像:<mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo2.maven.org/maven2/</url> </mirror>我们可以将对应的仓库的镜像配置到 settings.xml 文件中的 mirrors 节点中即可。如下图所示,我们配置了阿里云的镜像。
- 1. 前言 首先要理解数据源的作用,数据源实际上是一个接口 javax.sql.DataSource 。 Spring Boot 在操作数据库时,是通过数据源类型的组件实现的。数据源的类型有很多,但是都实现了 javax.sql.DataSource 接口,所以 Spring Boot 可以尽情地更换各类数据源以实现不同的需求。其中 Druid 数据源就是数据源中比较出类拔萃的存在,而且是阿里开发的。国人出品的东西,咱们能支持的必须得支持啊,当然这是建立在人家做的确实好的基础上。 Druid 是阿里巴巴数据库事业部出品本篇我们使用 Druid 替换默认的数据源,然后做一下性能对比测试。网上有很多文章写 Druid 性能如何如何强悍,但是很多并没有事实依据。我们做程序员还是要严谨,相信实践是检验真理的唯一标准。所以本篇的内容就是研究下 Druid 如何使用,及其性能到底是否足够优异。
- 3. 各种语言的 Web 框架介绍 目前,主流的 Web 框架可以按照语言类型进行分类,比如基于 Java 开发的 Web 框架、基于 Python 开发的 Web 框架和基于 Go 开发的 Web 框架等等。每种语言领域内的 Web 框架也是各有特色,有大而全,有小而精,还有专注异步高性能等等。热门的 Python Web 框架有:Django:基于 MTV 的框架模式,有强大的数据库功能、强大的后台管理功能、模板系统、缓存系统等;Flask:小而精的 Web 框架典范,可扩展性强;Tornado: 轻量级的 Web 框架,其特点是非阻塞和高性能,是实时 Web 服务的一个 理想框架。主流的 Java Web 框架有:Spring/Spring Boot/Spring MVC 等:几乎是大部分 Java web 开发者的首选和必选,占据了大部分市场。基于 Spring 及其衍生框架,我们能迅速开发一个 Java Web 服务,几乎不需要任何 Web 开发基础;Dubbo:阿里巴巴的开源的高性能 RPC 框架、特点是分布式、高性能以及高度可扩展;Struts2:老一代的 Java Web 框架,特点是高度成熟。不过目前趋势来看,已经很少人使用 Struts2 来开发新的 Web 服务。Go 作为近几年快速崛起的后端开发语言,也受到了广大后端开发者的追捧,Go Web 框架也随之而来,其中的典型代表有:Beego 框架:它类似于 Python Web 框架 Django,走大而全的风格,具备各种 Web 应用程序的通用功能;Gin 框架:Gin 是 Go 的一个微框架,封装优雅,接口友好。具有快速灵活,容错方便、性能优异等特点;Echo 框架:Go 的微型 Web 框架。其具备快速 HTTP 路由器、支持扩展中间件,同时还支持静态文件服务。
- 5. Druid 监控 看到这个结果,大家可能对本篇文章不满了,说了半天,也没看出 Druid 好在哪儿啊,为啥还费劲将默认的 Hikari 更换掉呢。不要着急,我们仔细看下官方介绍: Druid 在阿里巴巴开源项目官网的描述可以看到, Druid 是为监控而生,说明 Druid 最强大的功能实际上是监控,接下来我们就演示下如何实现 Druid 监控。添加监控相关的配置类,需要注意的是我们设定了监控功能的账号和密码。实例:/** * Druid配置 */@Configurationpublic class DruidConfig { /** * 注册servletRegistrationBean */ @Bean public ServletRegistrationBean servletRegistrationBean() { ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); servletRegistrationBean.addInitParameter("allow", ""); // 账号密码 servletRegistrationBean.addInitParameter("loginUsername", "imooc"); servletRegistrationBean.addInitParameter("loginPassword", "123456"); servletRegistrationBean.addInitParameter("resetEnable", "true"); return servletRegistrationBean; } /** * 注册filterRegistrationBean */ @Bean public FilterRegistrationBean filterRegistrationBean() { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); // 添加过滤规则. filterRegistrationBean.addUrlPatterns("/*"); filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean; }}此时打开网址 http://127.0.0.1:8080/druid 即可显示 Druid 登录页面: Druid 登录页面我们使用指定的用户名 imooc 密码 123456 登录后,即可查看各类监控信息,内容还是非常全面的,此处就不再展开介绍了。 Druid 监控页面
- 3.1 JsonObject 处理器 JSON 可分为 object 和 array 两大类,分别对应 info 和 tags 字段,这两类需要分别实现类型处理器。由于需要对 JSON 进行处理,我们在 pom.xml 文件中添加上对应的依赖。<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.60</version></dependency>这里,我们使用阿里巴巴开源的 fastjson库。在 com.imooc.mybatis 包下新建 handler 包,并向 handler 包中添加上 json object 的类型处理器 JsonObjectTypeHandler。如下:package com.imooc.mybatis.handler;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import org.apache.ibatis.type.*;import java.sql.CallableStatement;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;@MappedJdbcTypes(JdbcType.VARCHAR) // 对应jdbc 类型@MappedTypes({JSONObject.class}) // 对应处理后类型public class JsonObjectTypeHandler extends BaseTypeHandler<JSONObject> { // 当为 PreparedStatement 参数时,如何处理对象 @Override public void setNonNullParameter(PreparedStatement preparedStatement, int i, JSONObject o, JdbcType jdbcType) throws SQLException { preparedStatement.setString(i, JSON.toJSONString(o)); } // 当通过名称从结果中取json字段时如何处理 @Override public JSONObject getNullableResult(ResultSet resultSet, String s) throws SQLException { String t = resultSet.getString(s); return JSON.parseObject(t); } // 当通过序列号从结果中取json字段时如何处理 @Override public JSONObject getNullableResult(ResultSet resultSet, int i) throws SQLException { String t = resultSet.getString(i); return JSON.parseObject(t); } // 当通过序列号从 CallableStatement 中取json字段时如何处理 @Override public JSONObject getNullableResult(CallableStatement callableStatement, int i) throws SQLException { String t = callableStatement.getString(i); return JSON.parseObject(t); }}有了 BaseTypeHandler 作为基础后,实现一个类型处理器就比较简单了,我们只需要为其中 4 个方法添加上对应的实现即可。类型处理器有两个作用,第一处理 Java 对象到 JdbcType 类型的转换,对应 setNonNullParameter 方法;第二处理 JdbcType 类型到 Java 类型的转换,对应 getNullableResult 方法,getNullableResult 有 3 个重载方法。下面我们依次来说明这四个方法的作用:setNonNullParameter:处理 PreparedStatement 中的 JSONObject 参数,当调用 PreparedStatement 执行 SQL 语句时,调用该处理 JSONObject 类型的参数,这里我们通过 fastjson 的JSON.toJSONString(o)函数将 JSONObject 转化为字符串类型即可。getNullableResult:从结果集中获取字段,这里 CallableStatement 和 ResultSet 分别对应不同的执行方式,对于 JDBC 而言 JSON 类型也会当做字符串来处理,因此这里我们需要将字符串类型转化为 JSONObject 类型,对应 JSON.parseObject(t)代码。
阿里巴巴java开发相关搜索
-
ajax
android
a href
abap
abap开发
abort
absolutelayout
abstractmethoderror
abstracttablemodel
accept
access
access教程
accordion
accumulate
acess
action
actionform
actionlistener
activity
addeventlistener