技术文章

Java逐行读取和写入文件

孤街醉人 提交于 2021-02-20 08:39:23
前言 前面两篇博客讲到 go语言逐行读取和写入文件 以及 nodejs使用readline逐行读取和写入文件 和 C#逐行读取和写入文件 今天使用Java实现同样的功能,即从输入文件中读取每行数据,然后将每行字段组合成SQL插入脚本,然后逐行写入另外一个空白文件中。 tb_param表的结构 tb_param表的结构如下: 创建表的SQL脚本如下,我使用的是Sqlite数据库 DROP TABLE IF EXISTS "main"."tb_param"; CREATE TABLE tb_param(protocol INT NOT NULL,slave INT NOT NULL,number INT NOT NULL,ptype INT NOT NULL,pid INT NOT NULL,name TEXT NOT NULL,format TEXT,PRIMARY KEY(protocol,slave,number,ptype,pid)); 前面使用 nodejs 实现从 input.txt 文件逐行读取数据,然后将每行数据拼接成如下的数据格式: INSERT INTO tb_param (protocol, slave, number, ptype, pid, name, format) VALUES (2, 6, 0, 1, 1, 'a34004', .0); 输入文件

PHP ajax跨域问题解决方案

﹥>﹥吖頭↗ 提交于 2021-02-20 08:39:09
本文通过设置Access-Control-Allow-Origin来实现跨域。 例如:客户端的域名是client.runoob.com,而请求的域名是server.runoob.com。 如果直接使用ajax访问,会有以下错误: XMLHttpRequest cannot load http://server.runoob.com/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://client.runoob.com' is therefore not allowed access. 1、允许单个域名访问 指定某域名( http://client.runoob.com)跨域访问,则只需在http://server.runoob.com/server.php文件头部添加如下代码: header('Access-Control-Allow-Origin:http://client.runoob.com'); 2、允许多个域名访问 指定多个域名( http://client1.runoob.com、http://client2.runoob.com等)跨域访问,则只需在http://server.runoob.com/server

spring boot 2.0.3+spring cloud (Finchley)9、 安全组件Spring Boot Security

∥☆過路亽.° 提交于 2021-02-20 08:38:02
官方文档 一、Spring Security介绍 Spring Security是Spring Resource社区的一个安全组件,Spring Security为JavaEE企业级开发提供了全面的安全防护。Spring Security采用“安全层”的概念,使每一层都尽可能安全,连续的安全层可以达到全面的防护。Spring Security可以在Controller层、Service层、DAO层等以加注解的方式来保护应用程序的安全。Spring Security提供了细粒度的权限控制,可以精细到每一个API接口、每一个业务的方法,或每一个操作数据库的DAO层的方法。Spring Security提供的是应用程序层的安全解决方案,一个系统的安全还需要考虑传输层和系统层的安全,如采用Https协议、服务器部署防火墙等。 使用Spring Security的一个重要原因是它对环境的无依赖性、低代码耦合性。Spring Security提供了数十个安全模块,模块与模块之间的耦合性低,模块之间可以自由组合来实现特定需求的安全功能。 在安全方面,有两个主要的领域,一是“认证”,即你是谁;二是“授权”,即你拥有什么权限,Spring Security的主要 目标就是在这两个领域。 JavaEE有另一个优秀的安全框架Apache Shiro,Apache Shiro在企业及的项目开发中十分受欢迎

Spring | Bean 的生命周期

谁说胖子不能爱 提交于 2021-02-20 08:37:27
作者:sunshujie1990 www.jianshu.com/p/1dec08d290c1 S pring Bean的生命周期是Spring面试热点问题。 这个问题即考察对Spring的微观了解,又考察对Spring的宏观认识,想要答好并不容易! 本文希望能够从源码角度入手,帮助面试者彻底搞定Spring Bean的生命周期。 只有四个! 是的,Spring Bean的生命周期只有这四个阶段。把这四个阶段和每个阶段对应的扩展点糅合在一起虽然没有问题,但是这样非常凌乱,难以记忆。要彻底搞清楚Spring的生命周期,首先要把这四个阶段牢牢记住。实例化和属性赋值对应构造方法和setter方法的注入,初始化和销毁是用户能自定义扩展的两个阶段。在这四步之间穿插的各种扩展点,稍后会讲。 实例化 Instantiation 属性赋值 Populate 初始化 Initialization 销毁 Destruction 实例化 -> 属性赋值 -> 初始化 -> 销毁 主要逻辑都在doCreate()方法中,逻辑很清晰,就是顺序调用以下三个方法,这三个方法与三个生命周期阶段一一对应,非常重要,在后续扩展接口分析中也会涉及。 createBeanInstance() -> 实例化 populateBean() -> 属性赋值 initializeBean() -> 初始化 源码如下,能证明实例化

第一个java程序:Hello World!

拜拜、爱过 提交于 2021-02-20 08:37:10
1. 新建一个名为 HelloWorld的txt文件,内容为: 1 public class HelloWorld { 2 public static void main(String[] args) { 3 System.out.println("Hello World!" ); 4 } 5 } Hello World 2. 将文件后缀名改为.java: 3. Windows + R 打开cmd:进入文件所在的目录   3.1》执行命令:javac HelloWorld.java(此时会生成一个HelloWorld.class文件)   3.2》执行命令:java HelloWorld(Hello World!被输出) 备注: a> javac命令和java命令来自于jdk安装路径的bin目录里 b> javac命令将java源文件转译成java字节码文件(.class文件) c> java命令运行.class文件 HelloWorld 细节 1. main的方法:Java应用程序的执行入口是main()方法 2. 一个 Java 源文件中最多只能有一个 public 类。其它类的个数不限,如果源文件文件包含一个 public 类,它必须是该类名命名 3. Java 语言严格区分大小写 4. Java方法由一条条语句构成,每个语句以分号结束 注释 注释:用于解释说明程序的文字

在SQL Server中查看对象依赖关系

只谈情不闲聊 提交于 2021-02-20 08:36:24
原文 在SQL Server中查看对象依赖关系 Viewing object dependencies in SQL Server Deleting or changing objects may affect other database objects like views or procedures that depends on them and in certain instances, can “break” the depending object. An example can be that if a View queries a table and the name of that table changes. The View will no longer function. In SQL Server there are several ways to find object dependencies. The sp_depends system stored procedure SQL Server dynamic management functions including. sys.dm_sql_referencing_entities sys.dm_sql_referenced_entities The View Dependencies

js: async-await

孤者浪人 提交于 2021-02-20 08:28:59
  async是一种用同步的方式编写异步代码的方法,与promise一样也是非阻塞的。    返回值:    async的返回值是一个promise对象。    执行顺序:    async的异步指的是async函数后面的代码是异步的,但async里面还是同步的,但需要注意的是,这里的同步不是说await后面的函数没执行完就不往下执行(指async里面的await后面的代码),而是,当调用async函数,程序执行到await时,1.会先去执行一遍await里面的代码,2.再回到调用async函数后面继续执行,3.完了之后再回到async里面的await后面继续执行。前面说的执行一遍不是说全部执行完毕,await后面的函数里如果有一个定时器(5s),那么,程序并不会等待5s后再执行步骤1,而是执行定时器的时候,异步去执行步骤1后面的。    来看两个例子:   1.如果await后面的函数的返回值是一个直接值,或者没有返回值的普通函数。 <script> function sleep(sec) { console.log( '执行1' ); setTimeout( function () { console.log( '执行2' ); }, sec * 1000 ) } async function show() { console.log( 'start...' ); let

find命令详解

空扰寡人 提交于 2021-02-20 08:28:40
find命令是一种实时查找工具,通过遍历指定的路径完成文件查找 工作特点:   由于是遍历指定路径,所以相对locate而言,它的查找速度略慢   精确查找,与locate不同的是,find是遍历指定路径,而不是通过数据库查找   实时查找,不需要向locate一样,定期更新数据库   在查找的同时,只能搜索到用户具备读取和执行权限的文件 语法: find [option]……[查找路径] [查找条件] [处理动作]   查找路径:指定具体路径;默认为当前目录   查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行,默认为找出指定路径下的所有文件   处理动作:对符合条件的文件做操作,默认输出到屏幕 查找条件可以分为以下几类: 一、按搜索层级进行搜索 选项:-maxdepth level  #最大搜索目录深度    -mindepth level  #最小搜索目录深度 举例:搜索ifcfg-ens33 上图中,当没有加maxdepth层级选项时,默认将所有的同名的文件路径输出到了屏幕。 由于上图中指定以/为路径查找,所以/的文件为第一级,而/root/ifcfg-en33则为第二级,/etc/sysconfig/network-scripts/ifcfg-ens33则为第四级 二、通过文件名查找文件 -name “文件名称”  #通过文件名查找文件,支持通配符 举例

开源分布式Job系统,调度与业务分离-如何创建周期性的HttpJob任务

久未见 提交于 2021-02-20 08:27:51
项目介绍: Hangfire:是一个开源的job调度系统,支持分布式JOB!! Hangfire.HttpJob 是我针对Hangfire开发的一个组件,该组件和Hangfire本身是独立的。可以独立更新Hangfire版本不影响! 该组件已被Hangfire官方采纳,在Hangfire官网可以查到: 开源地址: https://github.com/yuzd/Hangfire.HttpJob 该项目目的是: 剥离Job调度和业务 Hangfire.HttpJob究竟是干嘛的 传统使用Hangfire都是把JOb的处理逻辑代码写在和Hangfire的同一个工程! 缺点: 这样就耦合在了一起,如果业务线增大,会导致每个业务线的Job处理逻辑都得和Hangfire耦合在一起!发布的时候所有业务线Job都得暂停调度 而使用了Hangfire.HttpJob的话 就是把Hangfire的服务拓展成可以把Job的处理逻辑代码写在别的工程里面(以webapi的形式暴露给Hangfire去调度) 优点:这样就解耦了Hangfire和业务处理逻辑,业务job开发者可以忽略Hangfire的存在!不同的业务线分开不同的JobAgent可以分别部署,发布互不影响 Hangfire.HttpJob 是对Hangfire的一个扩展插件,利用Hangfire

Jenkins 安装、配置与项目新建及构建

给你一囗甜甜゛ 提交于 2021-02-20 08:27:13
1、Jenkins的安装与配置 1.1 java环境配置 Jenkins基于Java, Linux下安装java只要配置java环境变量即可。 首先,解压java到相应目录,我一般习惯把安装的软件放到目录/usr/local下。 tar -zxvf jdk-6u45-linux-x64.tar.gz /usr/local 编辑环境变量,在/etc/profile文件中添加环境变量,Linux的所有用户都可以使用。 vim /etc/profile 在文件最后添加内容如下: export JAVA_HOME=/usr/local/jdk1.6.0_45 export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jart 这样,java就配置完成 1.2 安装Jenkins 简单来说需要下面四步: wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins