CentOS 7 安装Mysql
CentOS7安装mysql1. 卸载默认安装的mariadb:
123yum search mysqlyum remove mariadb.x86_64
2. 去官网找到mysql的下载版本
https://dev.mysql.com/downloads/ repo/yum/
找到下面的Linux7,即CentOS7(CentOS是Red Hat旗下的)
在下面的链接上直接右键复制链接(或者可以先下载到本地然后再用ftp传到服务器)
3. 安装
安装:wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
注:推荐在/tmp目录下进行
4. 本地安装yum源
1yum localinstall mysql
5. 检测是否已经安装
1yum search mysql
找到对应的软件包,复制名称
6. 使用yum安装
1yum install mysql-community-server.x86_64
7. 查看是否安装成功
1ps -ef | grep mysql
8. 启动mysql
12345service mysqld startservice mysqld restartservice mysqld stop
9 ...
CentOS中安装Nginx
CentOS安装Nginx一、Nginx安装1.添加Nginx到yum源1rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2.安装nginx1yum install -y nginx
3.启动nginx1systemctl start nginx.service
4.设置开机启动1systemctl enable nginx.service
5. 停止开机自启动1systemctl disable nginx.service
6.查看服务当前状态1systemctl status nginx.service
7.重启Nginx服务1systemctl restart nginx.service
8.查看所有已启动的服务1systemctl list-units --type=service
二、防火墙配置1.防火墙打开80端口1firewall-cmd --zone=public --add-port=80/tcp --permanent
参数说明:–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参 ...
微信小程序学习笔记 06
微信小程序学习笔记 06
API的使用:
上一篇笔记写了小程序页面如何使用JavaScript脚本,有了脚本以后,就可以调用微信提供的各种能力(即微信API),从而作出千变万化的页面。
0x01 WXML渲染语法前面说过,小程序的页面结构使用 WXML 语言进行描述。
WXML 的全称是微信页面标签语言(Weixin Markup Language),它不仅提供了许多功能标签,还有一套自己的语法,可以设置页面渲染的生效条件,以及进行循环处理。
新建一个page:
微信 API 提供的数据,就通过 WXML 的渲染语法展现在页面上。比如,home.js里面的数据源是一个数组。
12345Page({ data: { items: ['事项 A', '事项 B', '事项 C'] }});
上面代码中,Page()的参数配置对象的data.items属性是一个数组。通过数据绑定机制,页面可以读取全局变量items,拿到这个数组。
拿到数组以后,怎样将每一个数组成员展现在页面上呢?WXML 的数组循环语法,就是一个很简便的方法。
打开home.wxml,改成下面的代码。
123456<text>pages/home/home.wxml</text>& ...
在Linux中安装VNC和图形化界面
在Linux中安装VNC和图形化界面在linux机器上安装vnc服务端,然后通过本地windows机器的vnc客户端工具去连接到服务端,这样操作linux机器就能以界面化方式操作,连接到远程linux机。
连接到远程linux机器后的服务器显示效果如图:
下面就具体步骤详细讲解:
一:确认VNC服务是否有安装1rpm -qa|grep tigervnc
发现显示已经安装过vnc,说明已经安装过vnc服务了
如果显示没有安装,如下图:
这里提供两种安装方式:
rpm包安装
此法最好用在有系统安装包的基础上,如redhat-Linux.5.5.for.x86-server-5.5 系统.iso包,打开后在Server目录下有两个包
上传vnc-server包就行了,然后运行命令
1 rpm -ivh vnc-server-4.1.2-14.el5.3.1.i386.rpm
来安装vnc服务,此法可以避免vnc版本与系统不一致的问题,因为是从系统里找的vnc的文件,但是iso文件难以获得,一般找这个
rpm文件都是要通过百度来找,寻找系统版本的vnc的rpm包来安装。否则因为版本不一致会导致后续很多问题。
yum命令安装(推荐方式)
此法比较简单,直接使用yum命令即可:
1 yum -y install tigervnc-se ...
微信小程序学习笔记 05
微信小程序学习笔记 05为小程序加入 JavaScript 脚本,做出动态效果,以及如何跟用户互动。学会了脚本,就能做出复杂的页面了。
0x01 数据绑定前面的所有示例,小程序的页面都是写死的,也就是页面内容不会变。但是,页面数据其实可以通过脚本传入,通过脚本改变页面,实现动态效果。
小程序提供了一种特别的方法,让页面可以更方便地使用脚本数据,叫做”数据绑定”(data binding)。
所谓”数据绑定”,指的是脚本里面的某些数据,会自动成为页面可以读取的全局变量,两者会同步变动。也就是说,脚本里面修改这个变量的值,页面会随之变化;反过来,页面上修改了这段内容,对应的脚本变量也会随之变化。这也叫做 MVVM 模式。
下面看一个例子。打开index.js文件,打开成下面这样。
123456789Page({ /** * 页面的初始数据 */ data: { time:(new Date()).toString(), } });
上面代码中,Page()方法的配置对象有一个data属性。这个属性的值也是一个对象,有一个time属性。数据绑定机制规定,data对象的所有属性,自动成为当前页面可以读取的全局变量。也就是说,index页面可以自动读取time变量。
接着,修改index.wxml文件 ...
微信小程序学习笔记 04
微信小程序学习笔记 040x01 事件模型0x0101 监听函数浏览器的事件模型,就是通过监听函数(listener)对事件做出反应。事件发生后,浏览器监听到了这个事件,就会执行对应的监听函数。这是事件驱动编程模式(event-driven)的主要编程方式。
JavaScript 有三种方法,可以为事件绑定监听函数。
0x010101 HTML 的 on- 属性HTML 语言允许在元素的属性中,直接定义某些事件的监听代码。
12<body onload="doSomething()"><div onclick="console.log('触发事件')">
上面代码为body节点的load事件、div节点的click事件,指定了监听代码。一旦事件发生,就会执行这段代码。
元素的事件监听属性,都是on加上事件名,比如onload就是on + load,表示load事件的监听代码。
注意,这些属性的值是将会执行的代码,而不是一个函数。
12345<!-- 正确 --><body onload="doSomething()"><!-- 错误 --><body onload="doSomething">
一旦指定的事件 ...
微信小程序学习笔记 03
微信小程序学习笔记 030x01 this 关键字this关键字是一个非常重要的语法点。毫不夸张地说,不理解它的含义,大部分开发任务都无法完成。
前一章已经提到,this可以用在构造函数之中,表示实例对象。除此之外,this还可以用在别的场合。但不管是什么场合,this都有一个共同点:它总是返回一个对象。
简单说,this就是属性或方法“当前”所在的对象。
1this.property
上面代码中,this就代表property属性当前所在的对象。
下面是一个实际的例子。
123456789var person = { name: '张三', describe: function () { return '姓名:'+ this.name; }};person.describe()// "姓名:张三"
上面代码中,this.name表示name属性所在的那个对象。由于this.name是在describe方法中调用,而describe方法所在的当前对象是person,因此this指向person,this.name就是person.name。
由于对象的属性可以赋给另一个对象,所以属性所在的当前对象是可变的,即this的指向是可变的。
12345678910111213 ...
微信小程序学习笔记 02
微信小程序学习笔记 020x01 Flex布局应用首先,在pages/home目录里面,新建一个index.wxss文件,这个文件设置的样式,只对 home 页面生效。这是因为每个页面通常有不一样的布局,所以页面布局一般不写在全局的app.wxss里面。
然后,index.wxss文件写入下面的内容。
1234567page { height: 100%; width: 750rpx; display: flex; justify-content: center; align-items: center;}
开发者工具导入项目代码,页面渲染结果如下。
下面解释一下上面这段 WXSS 代码,还是很简单的。
(1)height: 100%;:页面高度为整个屏幕高度。
(2)width: 750rpx;:页面宽度为整个屏幕宽度。
注意,这里单位是rpx,而不是px。rpx是小程序为适应不同宽度的手机屏幕,而发明的一种长度单位。不管什么手机屏幕,宽度一律为750rpx。它的好处是换算简单,如果一个元素的宽度是页面的一半,只要写成width: 375rpx;即可。
(3)display: flex;:整个页面(page)采用 Flex 布局。
(4)justify-content: center;:页面的一级子元素(这个示例是<view>)水平 ...
微信小程序学习笔记 01
微信小程序学习笔记 010x01 总体样式微信小程序允许在顶层放置一个app.wxss文件,里面采用 CSS 语法设置页面样式。这个文件的设置,对所有页面都有效。
注意,小程序虽然使用 CSS 样式,但是样式文件的后缀名一律要写成.wxss。
在项目顶层新建一个app.wxss文件,内容如下。
12345678page { background-color: pink;}text { font-size: 24pt; color: blue;}
上面代码将整个页面的背景色设为粉红,然后将<text>标签的字体大小设为 24 磅,字体颜色设为蓝色。
开发者工具导入代码之后,得到了下面的渲染结果。
可以看到,页面的背景色变成粉红,文本字体变大了,字体颜色变成了蓝色。
实际开发中,直接对<text>标签设置样式,会影响到所有的文本。一般不这样用,而是通过class属性区分不同类型的文本,然后再对每种class设置样式。
打开pages/wxml/index.wxml文件,把页面代码改成下面这样。
123<block> <text class="title">当前时间为:{{time}}</text></blo ...
Spring Boot 学习笔记 11
Spring Boot 学习笔记 110x01 Dubbo-SSM框架接口工程: 存放实体Bean和业务接口_服务提供者:_它是一个Springboot框架web项目,集成MyBatis,Redis
添加依赖:Mybatis依赖,Mysql驱动依赖,Dubbo依赖,zookeeper依赖,Redis依赖
配置Springboot核心配置文件
配置连接数据库
配置连接redis数据库dubbo _服务消费者:_它是一个Springboot框架web项目,集成JSP,dubbo
添加依赖:Dubbo,zookeeper依赖,解析JSP页面的依赖,接口工程
配置Springboot核心配置文件
配置试图解析器
配置dubbo
0x02 构建Dubbo-SSM框架First and formost(首先),我们依次创建Maven接口项目工程、Springboot+Maven服务提供者(Provider)项目工程、Springboot+Maven服务消费者(Consumer)项目工程。
In addition(其次),我们在提供者(Provider)项目工程文件下添加一个Mybatis逆向工程的配置文件GeneratorMapper.xml:
12345678910111213141516171819202122232425262728293031323334353637 ...
Spring Boot 学习笔记 10
Spring Boot 学习笔记 10SpringBoot集成Dubbo 代码调试前一篇文章中,我们已经将 接口项目、消费者项目、提供者项目 配置完成,接下来就是写代码的事情了。在Consumer项目的控制层中: StudentCOntroller.java:
123456789101112131415161718192021222324package com.bjpowernode.springboot.web;import com.alibaba.dubbo.config.annotation.Reference;import com.bjpowernode.springboot.service.StudentService;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class StudentController { //dubbo:reference interface="" version=" ...
Spring Boot 学习笔记 09
0x01 Dubbo3 简介1Apache Dubbo 是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力。这意味着,使用 Dubbo 开发的微服务,将具备相互之间的远程发现与通信能力, 同时利用 Dubbo 提供的丰富服务治理能力,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。同时 Dubbo 是高度可扩展的,用户几乎可以在任意功能点去定制自己的实现,以改变框架的默认行为来满足自己的业务需求。
Dubbo3 基于 Dubbo2 演进而来,在保持原有核心功能特性的同时, Dubbo3 在易用性、超大规模微服务实践、云原生基础设施适配等几大方向上进行了全面升级。 以下文档都将基于 Dubbo3 展开。
0x02 What is Dubbo?如开篇所述,Dubbo 提供了构建云原生微服务业务的一站式解决方案,可以使用 Dubbo 快速定义并发布微服务组件,同时基于 Dubbo 开箱即用的丰富特性及超强的扩展能力,构建运维整个微服务体系所需的各项服务治理能力,如 Tracing、Transaction 等,Dubbo 提供的基础能力包括:
服务发现
流式通信
负载均衡
流量治理
…..
Dubbo 计划提供丰富的多语言客户端实现,其中 Java、Golang 版本是当前稳定性、活跃度最好的版本,其他多语言客户端[]正在持续建设中。
自开源以来,D ...
Spring Boot 学习笔记 08
Spring Boot 学习笔记 080x01 Redis数据库的安装和配置安装:下载地址:https://github.com/tporadowski/redis/releases。
Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。
打开一个 cmd 窗口 使用 cd 命令切换目录到 C:\redis 运行:
1redis-server.exe redis.windows.conf
如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:
1234567891011121314151617181920212223[23520] 30 Jul 20:12:27.585 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo[23520] 30 Jul 20:12:27.585 # Redis version=5.0.10, bits=64, commit=1c047b68, modified=0, pid=23520, just started[23520] 30 Ju ...
Spring Boot 学习笔记 07
Spring Boot学习笔记 070x01 SpringMVC 常用注解@GetMapping等价于单独使用Get方法的**@RequestMapping**,比如下面代码:
12345@RequestMapping(value = "/queryStudentById2",method = RequestMethod.GET)//该注解通过在查询数据的时候使用 -> 查询public Object queryStudentById2() { return "Ony GET Method";}
可以写成:
12345@GetMapping(value = "/queryStudentById2") //相当于上一句话,只接收GET请求,如果请求方式不对会报405错误 //该注解通过在查询数据的时候使用 -> 查询 public Object queryStudentById2() { return "Ony GET Method"; }
相当于上一句话,只接收GET请求,如果请求方式不对会报405错误。
同理的还有**@PostMapping**,比如下面的代码:
12345@RequestMapping(value ...
Spring Boot 学习笔记 06
Spring Boot 学习笔记 060x01 Mybatis服务接口及调用在我们已经通过逆向生成了Mapper接口类、映射文件以及JAVA模型的之后,我们还需要通过业务层的服务来调用数据。
我们首先在控制层@Controller注解的方法下添加@Autowired注解来注入业务层提取的数据:
12345678910111213@Controllerpublic class StudentController { @Autowired private StudentService studentService; @RequestMapping(value = "/student") public @ResponseBody Object student(Integer id) { Student student = studentService.queryStudentById(id); return student; }}
并且在下方的@RequestMapping注解中调用该服务注入的数据存放到Student类中。
这时候肯定还是不够的,因为我们在这里创建了一个叫做StudentService的类,那我们就在Application.java同级 ...
Spring Boot 学习笔记 05
Spring Boot学习笔记 050x01 Mybatis 映射文件转移到resources文件夹下关于Mapper映射文件的存放位置的写法有两种:
将mapper接口和mapper映射文件存放到src/main/java同一目录下,还需要在pom.xml文件中手动指定资源文件夹路径resources。
将mapper接口和映射文件夹分开存放,mapper接口类存放到src/main/java目录下,mapper映射文件存放到resources(类路径),在springboot核心配置文件中指定mapper映射文件的存放位置。
将src下的XML映射文件移动到resources文件夹Mapper中,这样有助于我们管理xml映射文件。
然后在application.properties中添加:
1mybatis.mapper-locations=classpath:mapper/*.xml
这样我们就不用像上一次在pom.xml里的中添加这一项了
因为maven只编译src中的.java文件
0x02 SpringBoot集成Mybatis最主要的是两个注解
@Mapper 需要在每一个Mapper接口类上添加,作用扫描dao接口
@MapperScan 是在Springboot启动入口类上添加的,它是一次扫描所有的包
0x03 ...
Spring Boot 学习笔记 04
Spring Boot学习笔记 04xxxMapper.xml内容分析
Mybatis逆向生成的文件只有单表操作。
文件头(UTF-8)编码:
1<?xml version="1.0" encoding="UTF-8"?>
生成的xxxMapper.xml内容:
12<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.springboot.springboot012mybatis.mapper.StudentMapper">
resultMap作用:
当数据库中字段名称与实体类对象的属性名不一样时,可以进行转换
当查询的结果没有对应一个表的时候,可以自定义一个结果集
其中:
id 标签只能修改主键字段
result 除了主键以外的字段
column 数据库中的字段名称
property 映射对象的属性名称
jdbcType 列中数据库中字段的类型(可以忽略不写)
如果数据库中字段名称由多个单词构成,通过Mybatis逆向工程生成 ...
使用Docker搭建图床
用Docker搭建图床第一步,安装 docker :1yum install docker
第二步,启动 docker:1systemctl start docker
也可以设置开机自启:
1systemctl enable docker
第三步,把别人已经做好的镜像拉下来在 docker 中拉镜像跟 Git 拉仓库差不多,命令是:
1docker imgae pull
这里需要拉的是 kdelfour/lychee-docker,所以完整命令:
1docker image pull kdelfour/lychee-docker
镜像拉下来后,你可以用 ls 看一下是不是有这个镜像了(docker image ls)。
第四步,启动这个镜像需要说明的是端口映射的问题。由于我的服务器已经搭了个人网站,也用的浏览器默认的 80 端口,所以图床就不能用 80,我改用 5120,完整命令:
1docker run -it -d -p 5120:80 kdelfour/lychee-docker
访问 5120 端口,映射到 docker 容器里边的 80 端口)。
命令 docker container ls 是查看正在运行的容器。可以看到第一次用这个命令的时候,没有容器在跑;启动之后就有了。
第五步,访问http://你的域名:5120由于我是在本地的虚拟机里搭 ...
Spring Boot 学习笔记 03
Spring Boot学习笔记 03
0x01 SpringBoot集成JSP打开IDEA创建SpringBoot项目后,在src文件夹的main中创建一个新的文件夹webapp来存放web资源(假如原来没有webapp文件夹)。
创建好在模块设置中的模块->Web->Web资源目录添加上面创建的webapp目录,相对与部署根的路径为/,然后点击创建工件,最后点击应用,就完成了webapp的设置,待会在里面创建jsp文件就行了。
由于项目本身对jsp的解析并不支持,所以在pom.xml文件里面要添加对jsp解析的包的依赖:
123456<!-- 引入SpringBoot内嵌Tomcat对jsp的解析包,不添加解析不了jsp--><!-- 仅仅只是展示jsp页面,只添加以下一个依赖--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency>
然后为了使jsp正常编译,还要在pom.xml ...
Spring Boot 学习笔记 02
Spring Boot学习笔记 02
0x01 多环境下核心配置文件的使用(properties)
需要注意.properties中的属性值不要出现空格,会被识别出现问题!
在工作中的开发环境有
开发环境(dev)
测试环境(test)
准生产环境(pre)
生产环境(product)
老样子,我们在创建号的SpringBoot环境下,在Application.java文件的同级目录或下级目录创建一个Controller/IndexController.java,内容如下:
123456789101112131415package com.springboot.springboot006multienvironment.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class IndexController { @RequestMapping(value = "/say&qu ...