暂时未有相关云产品技术能力~
暂无个人介绍
小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生 APP 体验的服务。 整个小程序框架系统分为两部分:**[逻辑层](https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/)**(App Service)和 **[视图层](https://developers.weixin.qq.com/miniprogram/dev/framework/view/)**(View)。小程序提供了自己的视图层描述语言 `WXML` 和 `WXSS`,以及基于 `JavaScript` 的逻
1. 2017年度百度百科十大热词之一 2. 微信小程序(wei xin xiao cheng xu),简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用( 张小龙对其的定义是无需安装,用完即走,实际上是需要安装的,只不过小程序的体积特别小, 下载速度很快,用户感觉不到下载的过程 ) 3. 限制:同一个分包中的页面享有共同的预下载大小限额 2M,限额会在工具中打包时校验。 4. 2017年1月9日0点,万众瞩目的微信第一批小程序正式低调上线。
什么是 SpringBoot?为什么要用 SpringBoot,2、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?,3、运行 Spring Boot 有哪几种方式?,4、如何理解 Spring Boot 中的 Starters?,5、如何在 Spring Boot 启动的时候运行一些特定的代码?,6、Spring Boot 需要独立的容器运行吗?,7、Spring Boot 中的监视器是什么?,8、如何使用 Spring Boot 实现异常处理?,9、你如何理解 Spring Boot 中的 Starters?,10、springboot 常用的 starter 有哪些.
1.document.write 和 innerHTML 的区别,2.jQuery 库中的 $() 是什么?,3.$(document).ready()方法和 window.onload 有什么区别?,4.行内元素有哪些?块级元素有哪些? 空(void)元素有那些?,5.你为什么要使用 jquery?,6.jquery 中的选择器 和 css 中的选择器有区别吗?,7.web 前端开发,如何提高页面性能优化?,8.什么是 Bootstrap?以及为什么要使用 Bootstrap?,9.对于各类尺寸的设备,Bootstrap 设置的 class 前缀分别是什么?,........15..
1. 标签上 title 与 alt 属性的区别是什么?,2. DIV+CSS 布局较 table 有什么优势?,3. 介绍一下标准的 CSS 的盒子模型?低版本 IE 的盒子模型有什么不同的?,4. CSS 选择符有哪些?,5. JS 的数据类型有哪些?,6. null,undefined 的区别?,7. 描述下 JSON 对象的两个很重要的方法,8. eval 是做什么的?,9. 简述下为何通过 ajax 发送的请求会出现乱码问题,如何解决?,10.HTML5、CSS3 里面都新增了那些新特性?,11.什么是响应式设计?,12.为什么我们要弃用 table 标签,.......15...
1、什么是 MyBatis,2、MyBatis 的优点和缺点,3、#{}和${}的区别是什么,4、当实体类中的属性名和表中的字段名不一样 ,怎么办?, 5、MyBatis 实现一对一有几种方式?具体怎么操作的,(联合查询和嵌套查询,联合查询是几个表联合查询,只查询一次, 通过在 resultMap 里面配置 association 节点配置一对一的类就可以完成;)
工作原理: 1、 用户发送请求至前端控制器 DispatcherServlet。 2、 DispatcherServlet 收到请求调用 HandlerMapping 处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据 xml 配置、注解进行查找),生成处理器对象及处理器拦截器 (如果有则生成)一并返回给 DispatcherServlet。 4、 DispatcherServlet 调用 HandlerAdapter 处理器适配器。 5、 HandlerAdapter 经过适配调用具体的处理器(Controller,也叫后端控制器)。 .........
1、四种会话跟踪技术作用域,2、MVC 的各个部分都有那些技术来实现?如何实现,3、web.xml 文件中可以配置哪些内容,4、session 和 cookie 有什么区别,5、Java 反射技术主要实现类有哪些,作用分别是什么,6、讲一下什么是 Spring,7、Spring 的 IOC 和 AOP 机制,8、Spring 中 Autowired 和 Resource 关键字的区别,9、依赖注入的方式有几种,各是什么,10、解释一下 spring bean 的生命周期
1、HTTP 请求的 GET 与 POST 方式的区别,2、解释一下什么是 servlet、3、说一说 Servlet 的生命周期、4、Servlet 的基本架构,5、什么情况下调用 doGet()和 doPost(),6、Request 对象的主要方法,7、forward 和 redirect 的区别,9、JSP 的常用指令,10、JSP 中动态 INCLUDE 与静态 INCLUDE 的区别
easyui是基于jQuery、Angular.、Vue和React的用户界面组件的集合。 easyui提供了构建现代交互式javascript应用程序的基本功能。 使用easyui,您不需要编写许多javascript代码,通常通过编写一些HTML标记来定义用户界面。 完整的HTML5网页框架。 使用easyui开发你的产品时可以大量节省你的时间和规模。 easyui使用非常简单但功能非常强大。
1. freemarker介绍 2. freemarker使用步骤 2.1 在pom.xml引入freeMarker的依赖包 2.2 在springboot中添加freemarker配置 2.3 编写模板文件*.ftl(当做jsp使用即可)编辑 2.4 访问控制器后进行页面跳转 3. freemarker常用语法 3.1 取值 3.2 条件 3.3 循环 3.4 include 3.5 局部变量(assign)/全局变量(global) 4. yml的介绍 5."freemarker"和"jsp"的区区别和联系有
Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如Tomcat、WebLogic),不管是J2SE还是J2EE环境都可以使用,提供了会话管理,会话事件监听,会话存储/持久化,容器无关的集群,失效/过期支持,对Web的透明支持,SSO单点登录的支持等特性。 所谓会话,即用户访问应用时保持的连接关系,在多次交互中应用能够识别出当前访问的用户是谁,且可以在多次交互中保存一些数据。如访问一些网站时登录成功后,网站可以记住用户,且在退出之前都可以识别当前用户是谁。
Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如Tomcat、WebLogic),不管是J2SE还是J2EE环境都可以使用,提供了会话管理,会话事件监听,会话存储/持久化,容器无关的集群,失效/过期支持,对Web的透明支持,SSO单点登录的支持等特性。
<!--anon 表示匿名访问,不需要认证以及授权--> <!--authc表示需要认证 没有进行身份认证是不能进行访问的--> <!--roles[admin]表示角色认证,必须是拥有admin角色的用户才行--> <!--user表示用户不一定已通过认证,只要曾被Shiro记住过登录状态的用户就可以正常发起请求,比如rememberMe--> <!--perms表示指定过滤规则,这个一般是扩展使用,不会使用原生的--> <!--port表示请求的URL端口验证--> <!--ssl表示安全的URL请求,协议为https--> <!--rest表示根据请求的方法,
shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。 spring中有spring security (原名Acegi),是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单。 shiro不依赖于spring,shiro不仅可以实现 web应用的权限管理,还可以实现c/s系统, 分布式系统权限管理,shiro属于轻量框架,越来越多企业项目开始使用shiro。
传统关系型数据库里面的优化器分为CBO和RBO两种。 1)RBO--- Rule_Based Potimizer 基于规则的优化器: RBO :RBO所用的判断规则是一组内置的规则,这些规则是硬编码在数据库的编码中的,RBO会根据这些规则去从SQL诸多的路径中来选择一条作为执行计划(比如在RBO里面,有这么一条规则:有索引使用索引。那么所有带有索引的表在任何情况下都会走索引)所以,RBO现在被很多数据库抛弃(oracle默认是CBO,但是仍然保留RBO代码,MySQL只有CBO) 2)CBO :CBO在会从目标诸多的执行路径中选择一个成本最小的执行路径来作为执行计划。
1) 视图是一种虚拟的表,是从数据库中一个或多个表中导出来的表。 2) 数据库中存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。 3) 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。
1) UNION:将所有的查询结果合并到一起,然后去除掉相同的记录 2) UNION ALL:将所有的查询结果合并到一起,不会去除掉相同的记录 前提条件:结果集列数个数相同,列的类型还要相同或是兼容 使用场景:在项目统计报表模块,用来合并数据
1)添加表外键: ALTER TABLE 表名 ADD FOREIGN KEY(外键名称) REFERENCES 主表名称(主键名称); 2)删除表外键: ALTER TABLE 表名 DROP FOREIGN KEY 约束名; 3)新增主键: ALTER TABLE 表名 ADD PRIMARY KEY(主键名称); 4)删除主键:主键只有一个直接删除即可 ALTER TABLE 表名 DROP PRIMARY KEY; 5)新增唯一约束: ALTER TABLE 表名 ADD UNIQUE(列名称1[,列名称2,..]); 6)删除唯一约束:其实就是
数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。 现在许多不同的数据库管理系统都支持多种不同的数据引擎。 Mysql的核心就是存储引擎。
layui(谐音:类 UI) 是一套开源的 Web UI 解决方案,采用自身经典的模块化规范,并遵循原生 HTML/CSS/JS 的开发方式,极易上手,拿来即用。其风格简约轻盈,而组件优雅丰盈,从源代码到使用方法的每一处细节都经过精心雕琢,非常适合网页界面的快速开发。layui 区别于那些基于 MVVM 底层的前端框架,却并非逆道而行,而是信奉返璞归真之道。准确地说,它更多是面向后端开发者,你无需涉足前端各种工具,只需面对浏览器本身,让一切你所需要的元素与交互,从这里信手拈来。
Spring Bean的生命周期: 1)通过XML、Java annotation(注解)以及Java Configuration(配置类) 等方式加载Spring Bean 2)BeanDefinitionReader:解析Bean的定义。在Spring容器启动过程中, 会将Bean解析成Spring内部的BeanDefinition结构; 理解为:将spring.xml中的<bean>标签转换成BeanDefinition结构 有点类似于XML解析 3)BeanDefinition:包含了很多属性和方法。例如:id、class(类名)、 scope、ref(依赖的bean)等等。
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。 Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。 Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。 然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
四个环境分别是:dev、test、pre、pro(master),中文名字:开发环境、测试环境、灰度环境、生产环境 dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大。 test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定 pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样。 pro(master)环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境
1.1 mybatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。 mybatis是一个基于Java的持久层框架(半自动),主要包括SQL Maps和Data Access Objects(DAO) ORM:Object Relational Mapping (对象与关系型数据库之间的映射管理框架) 1.2 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的
在Spring Cloud微服务体系下,常用的服务网关有Netflix公司开源的Zuul和Spring Cloud自己开源的Spring Cloud Gateway 1.1 Netflix公司的zuul Spring Cloud集成的Spring Cloud Zuul是Zuul1.x Zuul版本已经迭代至2.x,但是Spring Cloud并未集成 1.2 Spring Cloud Gateway Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于Netty
和生产者的消息确认机制不同,因为消息接收本来就是在监听消息,符合条件的消息就会消费下来。 所以,消息接收的确认机制主要存在三种模式 1.自动确认 这也是默认的消息确认情况。AcknowledgeMode.NONE,RabbitMQ成功将消息发出(即将消息成功写入TCP Socket)中立即 认为本次投递已经被正确处理,不管消费者端是否成功处理本次投递 当自动应答等于true的时候,表示当消费者一收到消息就表示消费者收到了消息,消费者收到了消息就会立即从队列中删除 2.不确认(不介绍) 3.手动确认(多数选择的模式) 消费者收
TTL是Time To Live的缩写, 也就是生存时间。 RabbitMq支持对消息和队列设置TTL,对消息这设置是在发送的时候指定,对队列设置是从消息入队列开始计算, 只要超过了队列的超时时间配置, 那么消息会自动清除。 如果两种方式一起使用消息的TTL和队列的TTL之间较小的为准,也就是消息5s过期,队列是10s,那么5s的生效。 默认是没有过期时间的,表示消息没有过期时间;如果设置为0,表示消息在投递到消费者的时候直接被消费,否则丢弃。
IDEA 全称IntelliJ IDEA,是用于java语言开发的集成环境(也可用于其他语言),IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合等方面的功能可以说是超常的。IDEA是JetBrains公司的产品。 idea分为旗舰版和社区版:旗舰版收费,功能多于旗舰版;社区版免费,功能少一些。
TTL是Time To Live的缩写, 也就是生存时间。 RabbitMq支持对消息和队列设置TTL,对消息这设置是在发送的时候指定,对队列设置是从消息入队列开始计算, 只要超过了队列的超时时间配置, 那么消息会自动清除。 如果两种方式一起使用消息的TTL和队列的TTL之间较小的为准,也就是消息5s过期,队列是10s,那么5s的生效。 默认是没有过期时间的,表示消息没有过期时间;如果设置为0,表示消息在投递到消费者的时候直接被消费,否则丢弃。
Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录? 1. /usr:系统级的目录,可以理解为C:/Windows/,/usr/lib理解为C:/Windows/System32。 2. /usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。 3. /opt:用户级的程序目录,可以理解为D:/Software,opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可。 在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用。
GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源。与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。 不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发, 你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。
数据库(Database, DB)是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合,是按照一定的逻辑结构组织、存储、管理数据的大容量电子文件柜。
-p 3306:3306:宿主机端口:容器端口 --name mysql:容器名字 -v:挂载宿主机的一个目录, 持久化存储的关键所在,将主机目录挂载到容器对应目录,分别是:配置文件、日志文件、数据文件 -v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/logs:/logs -v /data/mysql/data:/var/lib/mysq --privileged=true:使用该参数,container内的root拥有真正的root权限, 否则,container内的root只是外部的一
主要解决异步处理、应用解耦、流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构 1.异步处理 用户注册后,需要发注册邮件和注册短信 2.应用解耦 用户下单后,订单系统需要通知库存系统 3.流量削锋(重点) 流量削锋也是消息队列中的常用场景,一般在秒杀或团抢活动中使用广泛
SpringMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。 依赖于web框架,在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用。由于拦截器是基于 web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个 controller生命周期之内可以多次调用。
我们知道,系统中异常包括:编译时异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。在开发中,不管是dao层、service层还是controller层,都有可能抛出异常,在springmvc中,能将所有类型的异常处理从各处理过程解耦出来,既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护。
JSR303是Java为Bean数据合法性校验提供给的标准框架,已经包含在 JavaEE6.0中、 JSR303通过在Bean 属性中标注类似 @NotNull @Max 等标准的注解指定校验规则,并通过标准的验证接口对 Bean进行验证
SpringMVC核心开发步骤 3.1 DispatcherServlet在web.xml中的部署描述,从而拦截请求到springMVC 3.2 HandlerMapping的配置,从而将请求映射到处理器 @RequestMapping() 3.3 HandlerAdapter的配置,从而支持多种类型的处理器 3.4 处理器(页面控制器)的配置,从而进行功能处理 @Controller 3.5 ViewResolver的配置,从而将逻辑视图名解析为具体的视图技术
redis缓存的一些注意事项 只应将热数据放到缓存中 所有缓存信息都应设置过期时间 缓存过期时间应当分散以避免集中过期 缓存key应具备可读性 应避免不同业务出现同名缓存key 可对key进行适当的缩写以节省内存空间 选择合适的数据结构 确保写入缓存中的数据是完整且正确的 避免使用耗时较长的操作命令,如:keys * Redis默认配置中操作耗时超过10ms即视为慢查询 一个key对应的数据不应过大 对于string类型,一个key对应的value大小应控制在10K以内,1K左右更优hash类型,不应超过5000行
Nginx是一款高性能的Web服务器,最初由俄罗斯程序员Igor Sysoev开发,自2004年问世以来,凭借其高性能、高可靠、易扩展等优点,在反向代理、负载均衡、静态文件托管等主流场合得到了广泛的应用。
Spring Boot它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。 也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具 同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等), Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都 只需要非常少量的配置代码,开发者能够更加专注于业务逻辑
使用AnnotatedElement接口中的方法提取注解中的数据,像Class/Constructor/Field/Method/Package这些类都实现了AnnotatedElement接口 注:只有当定义Annotation时使用了@Retention(RetentionPolicy.RUNTIME)修饰, JVM才会在装载class文件时提取保存在class文件中的Annotation,该Annotation才会在运行时可见,这样我们才能够解析
SpringBoot中的starter是一种非常重要的机制(自动化配置),能够抛弃以前繁杂的配置,将其统一集成进starter, 应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。 starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰。SpringBoot会自动通过classpath路径下的类发现需要的Bean, 并注册进IOC容器。SpringBoot提供了针对日常企业应用研发各种场景的spring-boot-starter依赖模块。 所有这些依赖模块都遵循着约定成俗的默认配置,并允许
直连交换机是一种带路由功能的交换机,一个队列会和一个交换机绑定,除此之外再绑定一个routing_key,当消息被发送的时候,需要指定一个binding_key,这个消息被送达交换机的时候,就会被这个交换机送到指定的队列里面去。同样的一个binding_key也是支持应用到多个队列中的。 这样当一个交换机绑定多个队列,就会被送到对应的队列去处理。
在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络 原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会 出现网络延迟,此时若有大量的网络涌入,会形成任务堆积,最终导致服务瘫痪。 接下来,我们来模拟一个高并发的场景
一般开发高并发系统常见的限流有: 1)限制总并发数(比如数据库连接池、线程池)、限制瞬时并发数(如 nginx 的 limit_conn 模块,用来限制瞬时并发连接数)、 2)限制时间窗口内的平均速率(如 Guava 的 RateLimiter、nginx 的 limit_req 模块,限制每秒的平均速率); 3)其他还有如限制远程接口调用速率、限制 MQ 的消费速率。 4)另外还可以根据网络连接数、网络流量、CPU 或内存负载等来限流。 本文讨论在gateway集成的实现
这样的架构,会存在着诸多的问题: - 客户端多次请求不同的微服务,增加客户端代码或配置编写的复杂性 - 认证复杂,每个服务都需要独立认证。 - 存在跨域请求,在一定场景下处理相对复杂。 上面的这些问题可以借助API网关来解决。 所谓的API网关,就是指系统的**统一入口**,它封装了应用程序的内部结构,为客户端提供统一服 务,一些与业务本身功能无关的公共逻辑可以在这里实现,诸如**认证鉴权、监控、路由转发**等等。
在Spring Cloud微服务体系下,常用的服务网关有Netflix公司开源的Zuul和Spring Cloud自己开源的Spring Cloud Gateway 1.1 Netflix公司的zuul Spring Cloud集成的Spring Cloud Zuul是Zuul1.x Zuul版本已经迭代至2.x,但是Spring Cloud并未集成 1.2 Spring Cloud Gateway Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于Netty