Bootstrap

鸿蒙OS开源代码精要解读之—— 系统服务框架子系统(服务启动)

帅比萌擦擦* 提交于 2020-10-15 13:37:35
鸿蒙OS开源代码精要解读之—— 系统服务框架子系统(服务启动) 作者介绍 : 中科创达OpenHarmony研究组 说明 : 中科创达OpenHarmony研究组第一时间对 https://codechina.csdn.net/openharmony 上开源的代码进行了详尽的代码研读和学习。为此,我们打算编写一系列篇幅中等,内容精炼的源码分析文章来引领大家更进一步的走进鸿蒙OS。随着对代码的了解,广大开发者想亲自动手参与的意愿和信心也会随之增强——这也是鸿蒙OS开源的意义所在。 本篇内容摘要: Samgr 模块提供了面向服务体系结构(SOA)的开发框架基础,提供了Servcie、Feature和Founction的基本模型,以及注册和发现功能。是鸿蒙Framework非常重要的部分。系统中基于Samgr开发了许多服务,如Broadcast service, Bootstrap Servcie等,用户也可以基于Samgr开发框架开发自己的Service。 本篇介绍了OpenHarmony服务按序注册和启动的流程。 主要结构体 关键成员说明: 1. struct TaskConfig:在注册Service时提供,描述了Servcie对应的task的优先级,栈等信息 2. struct TaskPool:初始化Service时生成 queueId:创建taskpool时生成

Spring Cloud Bus:消息总线

試著忘記壹切 提交于 2020-10-14 20:16:15
Spring Cloud Bus:消息总线 SpringBoot实战电商项目mall(20k+star)地址: github.com/macrozheng/… 摘要 Spring Cloud Bus 使用轻量级的消息代理来连接微服务架构中的各个服务,可以将其用于广播状态更改(例如配置中心配置更改)或其他管理指令,本文将对其用法进行详细介绍。 Spring Cloud Bus 简介 我们通常会使用消息代理来构建一个主题,然后把微服务架构中的所有服务都连接到这个主题上去,当我们向该主题发送消息时,所有订阅该主题的服务都会收到消息并进行消费。使用 Spring Cloud Bus 可以方便地构建起这套机制,所以 Spring Cloud Bus 又被称为消息总线。Spring Cloud Bus 配合 Spring Cloud Config 使用可以实现配置的动态刷新。目前 Spring Cloud Bus 支持两种消息代理:RabbitMQ 和 Kafka,下面以 RabbitMQ 为例来演示下使用Spring Cloud Bus 动态刷新配置的功能。 RabbitMQ的安装 安装Erlang,下载地址: erlang.org/download/ot… 安装RabbitMQ,下载地址: dl.bintray.com/rabbitmq/al… 安装完成后

Java 面试知识点解析(三)——JVM篇

让人想犯罪 __ 提交于 2020-10-14 19:40:31
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文: 知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大部分内容参照自这一篇文章,有一些自己补充的,也算是重新学习一下 Java 吧。 前序文章链接: Java 面试知识点解析(一)——基础知识篇 Java 面试知识点解析(二)——高并发编程篇 (一)JVM 基础知识 问题和答案都是自行整理的,所以仅供参考!欢迎指正! 1)Java 是如何实现跨平台的? 注意:跨平台的是 Java 程序,而不是 JVM。JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM 答:我们编写的 Java 源码,编译后会生成一种 .class 文件,称为字节码文件。Java 虚拟机(JVM)就是负责将字节码文件翻译成特定平台下的机器码然后运行,也就是说,只要在不同平台上安装对应的 JVM,就可以运行字节码文件,运行我们编写的 Java 程序。 而这个过程,我们编写的 Java 程序没有做任何改变,仅仅是通过 JVM 这一 “中间层” ,就能在不同平台上运行,真正实现了 “一次编译,到处运行” 的目的。 2)什么是 JVM ? 解析:不仅仅是基本概念,还有 JVM 的作用。 答:JVM,即 Java Virtual

较真儿学源码系列-Netty核心流程源码分析

安稳与你 提交于 2020-10-12 07:09:05
目录 1 简介 1.1 线程模型 1.2 ChannelHandler & ChannelPipeline 1.3 直接内存 2 NioEventLoopGroup 3 ServerBootstrap & Bootstrap 3.1 构造器 3.2 group方法 3.3 channel方法 3.4 option方法 3.5 childHandler & handler方法 3.6 bind & connect方法 4 sync方法 5 writeAndFlush方法 6 心跳检测机制 6.1 构造器 6.2 channelActive方法 6.3 channelRead方法 Netty版本:4.1.51.Final。 1 简介 因为NIO的类库和API比较繁琐,使用起来比较麻烦,开发的工作量和难度都非常大,例如客户端面临断连重连、网络闪断、心跳处理、半包读写、网络拥塞和异常流的处理等等。所以Netty对Java自带的NIO API进行了良好的封装,解决了上述问题。且Netty拥有高性能、吞吐量更高、延迟更低、减少资源消耗,零拷贝直接内存等优点。所以Netty可以很方便地实现出一个网络通信系统,比如聊天服务器或弹幕系统(我曾经使用Netty实现过一个简易聊天室的demo,感兴趣的可以查看 《Netty实现简易聊天室的功能》 ),同时在分布式框架中

8年web前端开发经验者告诉你如何零基础学习web前端

孤街浪徒 提交于 2020-10-12 01:59:47
随着web前端的飞速发展,学习web前端的人员也是越来越多,在移动 互联网 时代,相信我们每个人的手机上都装有数十个APP,这些APP的开发其实也和当下热门的 Web 前端开发息息相关。 事实上,如今一半以上的APP都是采用Hybrid混合模式开发,即结合安卓和Web端技术开发。而纯 Web开发 的APP也不在少数,比如我们众所周知的 QQ 空间就是使用 Web前端 的React Native技术开发。除了APP,我们在手机端常看到的H5页面,也是主要运用了Web端的 HTML5 技术开发。 当然,Web前端现在也不仅仅局限于前端网页和APP,服务器端、桌面级应用甚至是VR都有涉及。 首先讲一下Web前端开发所需要的知识技能及学习路径 1. HTML5 + CSS3 + JavaScript Web开发基础中的基础,HTML是负责网页结构,CSS负责网页样式,JS则负责逻辑交互。前两者更像是标记语言,没有什么逻辑,JS才是前端的重中之重。 HTML5 新增的技术大部分需要结合JS学习。 每个人学习进度可能不同,这个阶段主要是多仿站,熟悉基础,试试用CSS写响应式页面,了解JS深入性的知识,比如原型链、闭包、 设计模式 等需要更多的积累,逐渐理解并实践掌握。 2. JQuery + BootStrap + Ajax + Json jQuery是JS的一个应用库

在Ubuntu18.04上部署搭建hyperledge fabric 2.0(二):镜像部署网络

送分小仙女□ 提交于 2020-10-09 00:20:25
前言 本文主要是镜像部署网络,最终成功运行first-network。 一、拉取fabric项目 首先,我们创建并进入项目目录 mkdir - p ~ / go / src / github . com / hyperledger cd ~ / go / src / github . com / hyperledger 然后拉取fabric项目 git clone https : / / github . com / hyperledger / fabric . git 下载缓慢,还可能会出错中断,反正我报错了 对此,我们可以加大缓存区 git config -- global http . postBuffer 524288000 然后将https地址换成ssh地址来clone git clone git : / / github . com / hyperledger / fabric . git 再次拉取fabric项目,成功。 拉取好后,切换fabric版本为2.0 cd fabric git checkout v2 . 0.0 显示如下 二、修改bootstrap.sh脚本并拉取镜像 因为在执行bootstrap.sh脚本时等待时间漫长且极易失败,这里我们修改下bootstrap.sh,仅拉取镜像,之后我们再手动下载拉取fabric-samples及二进制文件。

Netty的部分案例实现

旧城冷巷雨未停 提交于 2020-10-07 09:56:47
Netty简单入门案例实现 server端 package com.shi.netty.netty1.simple; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioServerSocketChannel; /** * @author shiye * @create 2020-06-10 10:24 */ public class NettyServer { public static void main(String[] args) throws InterruptedException { //创建bossGroup 和 workerGroup

6 个接私活的网站,你有技术就有钱!

雨燕双飞 提交于 2020-10-07 00:58:11
作者 | 发哥 来 源 | GitHubDaily 本篇文章会向大家推荐国内外几个接外包比较靠谱的平台,主旨是贵精不贵多。因此,像「猪xx」这种会让程序员自贬身价,扰乱市场规则的网站,便不会出现在下方推荐列表中。 下面开始进入正题。 国外篇 如果你打算接国外的软件外包,以下几点能力最好提前掌握: 基本的英语沟通能力(能跟阿三哥沟通) 良好的统筹规划能力(考虑好时差因素) 财务管理能力(报税、回款周期管理) freelancer freelancer.com 如果你打算进军国外的外包行业,与阿三哥竞争,那不论如何都绕不开 freelancer 这个网站。 排在首位的 freelancer,目前是全球影响力最大的自由职业与众包平台,公司创办于 2010 年,总部位于澳大利亚悉尼,员工遍布 240+ 个国家,拥有 4000+ 万的雇主与自由职业者。从软件设计、开发、测试到营销、会计、法律服务,你都能在上面找到对应的合作方,其业务覆盖范围不可谓不广。 另外,财大气粗的 freelancer 还在不断收购一些比较优质的外包市场,进一步扩大自己的规模,慢慢蚕食着整个市场。 不过,作为上市公司的 freelancer,近半年的公司股价却在持续走低... 具体原因在此就不多做分析了。 仅从平台规模与市场占比上看,freelancer 是集聚了当今世界上诸多优秀自由职业者的接单平台

程序员接私活,接单平台

人盡茶涼 提交于 2020-10-06 06:50:39
面向国内企业接单,主要好处就是对英语沟通能力的要求没那么高,不过客户屁事多,不懂装懂,需求来回改,喜欢瞎 bb,回款周期长的问题也普遍存在。 因此,我个人觉得,面向国内市场接单,在你基本技术能力都满足的情况下,下面这项能力应该是你最需要重视的: 商务沟通能力(管理好客户的心理预期) 倘若管理不好客户心理预期,项目就容易出问题。最常见的情况,就是信息不对称:客户认为钱给多了,你活干少了;或者你活干了一堆,却见不到具体产出物等等。 类似这样的坑,还有一堆。限于篇幅,就不在此细聊了,我后面会新开篇文章跟大家分享。 下面我们接着回来聊聊国内几个比较靠谱接单平台。 码市 https://codemart.com/ 要聊「码市」,就得先聊 Coding,作为国内首个一站式云端软件服务平台,你可以简单把 Coding 理解为中国版 GitHub,尽管他们志向并不在于此。 Coding 于 2014 年 2 月在深圳成立,目前共拥有 100 万用户,7000+ 企业,170 万托管项目,获得各大资本融资累计 2500 万美元。 我个人应该是 2015 年前后接触的 Coding,那会主要是被他们网站清新优雅的 UI 所折服,因为 Coding 是国内为数不多使用 Semantic UI 进行前端开发的产品之一。在 Bootstrap 被广泛应用的时代,选用一款刚诞生不久

java开发安全策略_风险漏洞与解决方案

自闭症网瘾萝莉.ら 提交于 2020-10-06 06:48:50
项目语言:java 项目环境:JDK1.8 Web服务器Nginx+tomcat 数据库mysql 前端技术bootstrap+layui+jquery+ajax 后端技术maven+springboot+shiro+jpa+druid+log4j 1、 敏感信息泄露 a) 漏洞描述:敏感信息泄露漏洞,是一种通过提交错误请求,使系统出现异常处理并报错,并且将系统程序、配置、路径、类、方法 等敏感信息泄露出来的漏洞。 b) 解决方案:创建统一错误页面,在后端将异常进行拦截处理,将错误信息存储到日志中,并返回对应的错误描述或状态码。 2、 用户密码未加密传输 a) 漏洞描述:用户登录时,密码进行明码传输,导致请求被拦截获取账号信息。 b) 解决方案:使用不可逆的加密算法,采取salt(盐)+用户名+密码进行加密的方式,由前端加密后传输到后端进行身份认证。 3、 SQL注入 a) 漏洞描述:通过在string(字符串)类型的字段中,输入敏感SQL语句,进行免密登录或越权操作。 b) 解决方案:对输入信息进行敏感字符拦截,并在后端开发中使用对象SQL注入方式进行数据库访问,避免使用SQL拼接的形式进行数据库访问。 4、 越权敏感信息修改 a) 漏洞描述:修改信息时,仅根据id参数进行操作,存在越权修改任意数据问题。 b) 解决方案:后端使用session机制