- 什么是事件
事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理。
- 小程序中常用的事件 (更多…)
- 数据绑定的基本原则
1. 在data中定义数据
2. 在WXML中使用数据 - 在data中定义页面的数据
在页面对应的.js文件中,数据定义到data对象中即可。
- Mustache 语法的格式
在data中的数据绑定到页面中渲染,使用Mustache 语法(双大括号)将变量名包起来即可。语法格式如下: (更多…)
- 小程序API概述
小程序中的API是由宿主环境提供的,通过这些丰富的小程序API,开发者可以方便的调用微信提供的能力,例如:获取用户信息,本地存储,支付功能等。 - 小程序API的3大分类
小程序官方把api分为了如下3大类:
1. 事件监听api:
特点:以on开头,用来监听某些事件的触发。
举例:wx.onWindowResize(function callback)监听窗口尺寸变化的事件
2. 同步api
特点1:以Sync结尾的api都是同步api
特点2:同步api的执行结果,可以通过函数返回值直接获取,如果执行出错会抛出异常
举例:wx.setStorageSync(‘key’,’value’)向本地存储中写入内容
3. 异步api
特点:类似于jQuery中的$.ajax(options)函数,需要通过success、fail、complete接收调用的结果
举例:wx.request() 发起网络请求,通过success 回调函数接收数据
- 小程序中组件的分类
小程序中的组件也是由宿主环境提供的,开发者可以基于组件快速搭建出漂亮的页面结构。
官方把小程序的组件分为9大类,分别是:
1. 视图容器、2. 基础内容、3.表单组件、4.导航组件、5.媒体组件、6.map地图组件、7.canvas画布组件、8.开放能力、9.无障碍访问 - 常用的视图容器类组件
1. view:普通视图区域、类似于HTML中的div,是一个块级元素,常用来实现页面的布局效果
2. scroll-view:可滚动的视图区域,常用来实现滚动列表效果 (更多…)
- 小程序启动的过程
1. 把小程序的代码包下载到本地
2.解析 app.json 全局配置文件
3. 执行 app.js 小程序入口文件,调用 App()创建小程序实例
4. 渲染小程序首页
5. 小程序启动完成 - 小程序页面渲染的过程
1. 加载解析页面的 .json配置文件
2. 加载页面的 .wxml 模板 和 .wxss 样式
3. 执行页面的.js文件,调用 Page()创建页面实例
4. 页面渲染完成
-
- 什么是宿主环境
宿主环境(host environment)指的是程序运行所必须的依赖环境。
例如:安卓系统 和 iOS系统 是两个不同的宿主环境。
安卓版的微信app是不能在ios环境下运行的,所以安卓是安卓软件的宿主环境,脱离了宿主环境的软件是没有任何意义的 - 小程序的宿主环境
手机微信是小程序的宿主环境。
小程序借助宿主环境提供的能力,可以完成许多普通网页无法完成的功能,例如:
微信扫码,微信支付、微信登录、地理定位、etc等等 - 小程序宿主环境包含的内容
1. 通信模型、2.运行机制、3.组件、4. api
- 什么是宿主环境
- 小程序中的 .js文件
一个项目仅仅提供界面展示是不够的,在小程序中,我们通过.js文件来处理用户的操作。
例如:响应用户的点击、获取用户的位置等等。 - 小程序中 .js文件的分类
1. app.js:是整个小程序项目的入口文件,通过调用 APP() 函数来启动整个小程序
2. 页面的 .js 文件:是页面的入口文件,通过调用 Page() 函数来创建并运行页面
3. 普通的 .js 文件:是普通的功能模块文件,用来封装公共的函数或属性供页面使用
- 什么是WXML
WXML(WeiXin Markup Language)是小程序框架设计的一套标签语言,用来构建小程序页面的结构,其作用类似于网页开发中的HTML。 - WXML 和 HTML 的区别
1. 标签名称不同
HTML(div,span,img,a)
WXML(view,text,image,navigator)
2. 属性节点不同
<a href=”#”>超链接</a>
<navigator url=”/pages/home/home”></navigator>
3. 提供了类似于 Vue 中的模板语法 (更多…)
- json配置文件的作用
json是一种数据格式,在实际开发中,json总是以配置文件的形式出现,小程序项目中也不例外:通过不同的.json配置文件,可以对小程序项目进行不同级别的配置。
小程序项目中有4种json配置文件,分别是:
1. 项目根目录中的 app.json 配置文件
2. 项目根目录中的 project.config.json 配置文件
3.项目根目录中的 sitemap.json 配置文件
4.每个页面文件夹中的 .json 配置文件 - app.json 文件
app.json 是当前小程序的全局配置,包括了小程序的所有页面路径、窗口外观、界面表现、底部tab等。app.json 配置文件内容如下: (更多…)
- 小程序目录结构
Pages用来存放所有小程序的页面
Utils用来存放工具性质的模块(例如:格式化时间的自定义模块)
app.js 小程序项目的入口文件
app.json 小程序项目的全局配置文件
app.wxss 小程序项目的全局样式文件
project.config.json 项目的配置文件
Sitemapjson 用来配置小程序及其页面是否允许被微信索引
@RequestMapping("/login")//登录 public String login(String username, String password, HttpServletRequest request, HttpServletResponse response, HttpSession session){ FarmUserMapper farmUserMapper = ss.getMapper(FarmUserMapper.class); FarmUser user = farmUserMapper.queryUser(username, password); if (user!=null) { Cookie cookie=new Cookie("userinfo",username+"#"+password); cookie.setMaxAge(60*60*24*7); cookie.setPath("/"); response.addCookie(cookie); session.setAttribute("user",user); if(user.getType()==1)return "redirect:/admin/"; else if(user.getType()==0) return "redirect:/user/"; else { request.setAttribute("accountErr","accountErr"); return "public/error"; } }else{ request.setAttribute("loginErr","loginErr"); return "public/error"; } }
// 注销登录 @RequestMapping("/logout") public String logout(HttpSession session, HttpServletRequest request){ FarmUser user = (FarmUser) session.getAttribute("user"); if (user!=null) { session.removeAttribute("user"); session.invalidate(); }else{ Cookie[] cookies = request.getCookies(); if (cookies.length!=0) { for (Cookie cookie : cookies) { String name = cookie.getName(); if (name.equals("userinfo")) { cookie.setMaxAge(0); } } } } return "redirect:/"; }
Linux运行SpringBoot项目出现404解决方案
修改项目的 pom.xml文件,依赖请根据自身项目情况进行摘选
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.54</version> </dependency> <!--druid连接池--> (更多…)
控制层:
@Controller @RequestMapping("/") public class UploadController { @RequestMapping("/") public String index(){return "upload";} // 得到一个新的文件路径 public String realPath(String path){ SimpleDateFormat y=new SimpleDateFormat("yyyy"); SimpleDateFormat m=new SimpleDateFormat("MM"); SimpleDateFormat d=new SimpleDateFormat("dd"); Date date=new Date(System.currentTimeMillis()); String year = y.format(date); String month = m.format(date); String day = d.format(date); String realPath=path+ File.separator+year+File.separator+month+File.separator+day; File file=new File(realPath); if(!file.exists()) file.mkdirs(); return realPath; } (更多…)
Linux配置固定IP
TYPE=”Ethernet”
PROXY_METHOD=”none”
BROWSER_ONLY=”no”
BOOTPROTO=”static”
DEFROUTE=”yes”
IPV4_FAILURE_FATAL=”no”
IPV6INIT=”yes”
IPV6_AUTOCONF=”yes”
IPV6_DEFROUTE=”yes”
IPV6_FAILURE_FATAL=”no”
IPV6_ADDR_GEN_MODE=”stable-privacy”
NAME=”ens33″
UUID=””
DEVICE=”ens33″
ONBOOT=”yes”
#IPADDR=192.168.0.123
#GATEWAY=192.168.0.1
IPADDR=192.168.31.123
GATEWAY=192.168.31.1
NETMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=114.114.114.114
保存之后重启服务:service network restart
Idea之没有网络的情况下创建SpringBoot项目
一丶创建SpringBoot有两个方式
1.没有网络的情况下使用Maven创建
1.1:用Idea创建maven项目 不要勾选 next (更多…)
2020java高级框架之SpringMVC解决乱码
1.在Tomcat文件夹下 conf 目录 server.xml文件 修改 (仅解决 get 请求)
<Connector port=”8080″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ URIEncoding=”utf-8″ />
2.在控制层添加(解决 get 请求和 post 请求的参数)
request.setCharacterEncoding("utf-8");
SpringBoot整合mybatis和ElasticSearch
1.创建客户模块和搜索模块
2.准备客户模块的静态资源(页面,实体类,数据库)
3.准备搜索模块的资源(在ES中创建客户模块的索引)
3.1 导入ES的依赖
<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>6.5.4</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>6.5.4</version> </dependency>
3.2 编写连接ES的config配置类(搜索模块) (更多…)
2020java微服务架构六之springboot教程
一、SpringBoot介绍
SpringBoot是由pivotal团队研发的,SpringBoot不是一门新技术,只是将之前的Spring,SpringMVC,data-jpa等常用的框架封装到了一起,帮助你隐藏这些框架的整合细节,实现敏捷开发。
SpringBoot就是一个工具集。
SpringBoot的特点:
1.SpringBoot项目不需要模板化的配置
2.SpringBoot中整合第三方框架时,只需要导入相应的starter依赖包,就自动整合了
3.SpringBoot默认只有一个.properties的配置文件,不推荐使用xml,后期会采用.java文件去编写配置信息
4.SpringBoot工程在部署时,采用的是jar包方式,内部自动依赖Tomcat容器,提供了多环境的配置
5.后期要学习的微服务框架SpringClound需要建立在SpringBoot的基础上 (更多…)
2020java微服务架构五之ES全文搜索引擎教程
一、ElasticSearch 介绍
1.1 引言
1.在海量数据中执行搜索功能时,如果使用mysql,效率太低
2.如果关键字输入的不准确,一样可以搜索到想要的数据。
3.将搜索关键字,以红色的字体展示。
1.2 ES的介绍 (更多…)
2020java微服务架构四之Redis教程
一、Redis介绍
1.NoSQL介绍
Redis就是一款NoSQL
NoSQL->非关系型数据库–>Not Only SQL
key-value:Redis
文档型:ElasticSearch,Solr,Mongdb
面向列:Hbase,Cassandra
图形化:Neo4j
除了关系型数据库都是非关系型数据库
noSQL只是一种概念,泛指非关系型数据库,和关系型数据库做一个区分
2.Redis介绍
有一位意大利人,在开发一款LLOOGG的统计页面,因为MySQL的性能不好,自己研发了一款非关系型数据库,并命名为Redis。Salvatore。 (更多…)