Other

使用注解开发

在spring4以后,要使用注解开发,必须要保证aop的包导入了 不要忘记导入注解支持 @Component有几个衍生注解,我们在web开发中,会按照mvc三层架构分层 dao(@Repository) service(@Service) controller(@Controller) 这四个注解功能都是一样的,都是代表将某个类注册到Spring的IOC容器 自动装配 @Autowired:自动装配通过类型,名字 @Resource:自动装配通过名字,类型 作用域 @Scope(“prototype”) @value(“user”):相当于<property name=name value=user/> xml与注解: xml更加万能,适用于任何场合,维护简单方便 注解不是自己类使用不了,维护相对复杂 xml与注解最佳实战 xml用来管理bean 注解只负责完成属性的注入 我们在使用的过程中,只需要要注意一个问题,必须让注解生效,就需要开启注解 <context:component-scan base-package=com.zou/>//扫描指定包下的注解 <context:annotation-config/>//注解支持  

readlines()函数

1.readlines()函数  功能:生成一个列表,将读取的txt文件的每一行为一个字符元素,字符元素后面都会有一个换行转义字符\n  实例:  描述:下面的txt文件有三行,每一行的内容分别是姓名、和三个分数  读取文件代码:  返回结果页面:   说明:返回的结果是一个列表,每一行都是一个字符串元素,每一个元素后面都有换行转义字符\n    

初识TypeScript

TypeScript是什么 TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准。 由微软开发的自由和开源的编程语言。 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。 编译语法:> tsc esaybook.ts # esaybook.ts const message : string = Hi Esaybook! console.log(message)   JavaScript 与 TypeScript 的区别 TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。 TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。 (图片来源网络,侵权联系删除)   TypeScript 如何安装 [ 使用npm安装,前提你的本地环境已经安装npm工具 ] 如果使用国内镜像,可通过如下命令: > npm config set registry https://registry.npmmirror.com 安装typescript: > npm install -g typescript  通过查看版本号验证是否安装成功:

Ubuntu 18及以上版本配置 IP 的方法,你 get 了吗?

本文首发于公众号「5分钟学网络 (ID: learnnet5)」,欢迎你的关注。 作者:伍工 原文链接:https://mp.weixin.qq.com/s/EaFoZ1qx7TRvtQLFt0xCRg 本文讲讲 Ubuntu 18 及以上版本配置 IP 的方法,为什么它值得一讲,因为以 Ubuntu 16 为首的版本的配置方法已经不适用了,如果你还不知道,那本文正好 get 一个新技能。 Ubuntu 18 之后版本配置方法 需要使用 netplan 工具。 对应配置文件: /etc/netplan/50-cloud-init.yaml,有的不一定是 50-cloud-init.yaml这个文件,但都大同小异。修改如下: # vim /etc/netplan/50-cloud-init.yaml network: version: 2 renderer: networkd ethernets: enp10s0: dhcp4: no addresses: [192.168.1.3/24] gateway4: 192.168.1.1 nameservers: addresses: [114.114.114.114,8.8.8.8] 其中,可以配置 IP 、网关、DNS 等。 配完需要使用 netplan apply 生效,也可以使用 netplan try 检查配置文件是否有误。 但是,以前的方法也不是完全就废弃了,如果你还想使用以前的方法,需要安装 ifupdown 工具。 apt install ifupdown 顺带把 Ubuntu 18 之前版本的配置方法列一下,方便大家阅读。 Ubuntu 18 之前版本配置方法 配置文件:

FSM

package com.mrsaber.fsm; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.util.*; public class FSM { // This class implements a Flying Spaghetti Monster public static void main(String[] args) { FSM fsm = new FSM(状态转换机器); fsm.addState(INIT); fsm.addState(PROCESSING); fsm.addState(FINISH); Transition toProcessing = new Transition(DO_WORK,INIT,PROCESSING){ @Override public void doBeforeTransition() { } @Override public void doAfterTransition() { System.out.println(DoAfter); } }; System.out.println(fsm.currentState); fsm.addTransition(toProcessing); fsm.addEvent(DO_WORK); } protected String name; protected String currentState; protected Map<String, State> states; protected List<ChangeListener> changeListeners; protected boolean debug; /** * Create a blank FSM with the given name (which is arbitrary).

创建动态路由表

当需要进行 用户权限处理,我们需要先对路由表进行一个划分: 私有路由表 privateRoutes :权限路由,根据meta判断是否有权限进入 公有路由表 publicRoutes:无权限路由 /*eslint-disable*/ import { createRouter, createWebHashHistory } from 'vue-router' import layout from '@/layout' /** * 私有路由表 */ const privateRoutes = [{ path: '/user', component: layout, redirect: '/user/manage', meta: { title: 'user', icon: 'personnel' }, children: [{ path: '/user/manage', component: () => import('@/views/user-manage/index'), meta: { title: 'userManage', icon: 'personnel-manage' } }, { path: '/user/role', component: () => import('@/views/role-list/index'), meta: { title: 'roleList', icon: 'role' } }, { path: '/user/permission', component: () => import('@/views/permission-list/index'), meta: { title: 'permissionList', icon: 'permission' } }, { path: '/user/info/:id', name: 'userInfo', component: () => import('@/views/user-info/index'), meta: { title: 'userInfo' } }, { path: '/user/import', name: 'import', component: () => import('@/views/import/index'), meta: { title: 'excelImport' } } ] }, { path: '/article', component: layout, redirect: '/article/ranking', meta: { title: 'article', icon: 'article' }, children: [{ path: '/article/ranking', component: () => import('@/views/article-ranking/index'), meta: { title: 'articleRanking', icon: 'article-ranking' } }, { path: '/article/:id', component: () => import('@/views/article-detail/index'), meta: { title: 'articleDetail' } }, { path: '/article/create', component: () => import('@/views/article-create/index'), meta: { title: 'articleCreate', icon: 'article-create' } }, { path: '/article/editor/:id', component: () => import('@/views/article-create/index'), meta: { title: 'articleEditor' } } ] } ] /** * 公有路由表 */ const publicRoutes = [{ path: '/login', component: () => import('@/views/login/index.

实验三

task1 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <windows.h> #define N 80 void printText(int line, int col, char text[]); // 函数声明 void printSpaces(int n); // 函数声明 void printBlankLines(int n); // 函数声明 int main() { int line, col, i; char text[N] = hi, May~; srand(time(0)); // 以当前系统时间作为随机种子 for (i = 1; i <= 10; ++i) { line = rand() % 25; col = rand() % 80; printText(line, col, text); Sleep(1000); // 暂停1000ms } return 0; } // 打印n个空格 void printSpaces(int n) { int i; for (i = 1; i <= n; ++i) printf( ); } // 打印n行空白行 void printBlankLines(int n) { int i; for (i = 1; i <= n; ++i) printf(\n); } // 在第line行第col列打印一段文本 void printText(int line, int col, char text[]) { printBlankLines(line - 1); // 打印n-1行空行 printSpaces(col - 1); // 打印n-1列空格 printf(%s, text); } 功能:实现在第line行第col列输出hi,May~,一共输出十次。

python 函数是第一类对象的理解

什么是第一类对象   可作为对象赋值到一个变量 可作为元素添加到集合对象 可作为参数传递给其他函数 可当做函数的返回值  对象通用属性   ID 类型 值   def foo():  return 1  print(id(foo)) print(type(foo)) print(foo)  举例函数赋值到变量   赋值给另一个变量时,函数并不会被调用,只是在函数对象上绑定一个新名字,引用计数加一   bar = foo b = foo print(bar is b)  类也可作为函数 自定义类实现了 __call__ 方法,则该类的实例化对象的行为就是函数,是可以被调用 callback 的对象   class Add:

量化 - 量化回测框架

一、框架介绍 基础回测框架 不适用   云端的框架   二、策略创建运行流程 2.1 一个完整的策略,需要做的事情   2.2 策略初始设置介绍      2.3 策略主体运行流程分析    如果 回测频率 选的是每分钟,那么handle_bar就是每分钟判断一次。  三、数据获取接口   3.1 数据接口种类 (from 弹幕:get_fundamentals 目前改用get_factor)   3.2 获取行业、板块以及概念股票列表  

字符串处理函数split(),join()

1.split()函数  功能:把字符串切割成列表,字符串被细分为一个个列表元素  案例:  分割字符串:     打印结果     使用split处理字符串”罗恩 23 35 44“    打印结果:    说明:字符串变列表,字符被切割成一个个列表元素   2.join()函数  功能:把字符串进行拼接  案例:    结果:    说明:把列表中的每一个字符连接起来,形成一个字符串。可以加每一元素字符的连接符