编程星球——水·滴20180624期

[TOC]

2018/5/14

#水·滴# 微信开发调试两个有用的网页工具链接:

X5内核调试专用页 http://debugx5.qq.com/

X5内核调试专用页 (http://debugtbs.qq.com/

2018/5/16

Vscode下快速开始编写html的方法

  1. 首先在第一行输入!
  2. 然后将光标移动到!
  3. 最后,按下tab键 4.完成

2018/5/17

#水·滴# 使用 jdk9 运行报错:Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException 原因:Java9以后JAXB APIs划分为Java EE模块,不再认为是SE模块,而默认的路径只包含了SE模块中。 方案1: 虽然路径没有包含,但是JDK中包含了EE模块,可以通过命令行参数添加需要的模块,例如: --add-modules java.xml.bind 还有这些:

  • java.activation
  • java.corba
  • java.transaction
  • java.xml.bind << This one contains the JAXB APIs
  • java.xml.ws
  • java.xml.ws.annotation

如果9以下版本使用该参数会出错,可以使用-XX:+IgnoreUnrecognizedVMOptions命令行参数忽略,但使用该参数后会导致jvm不验证参数。最好是在脚本中检查版本在生成相应的命令行。 方案2: mvn配置中添加插件:

<plugin>
    <artifactId>maven-surefire-plugin<artifactId>
    <version>2.20.1<version>
    <configuration>
        <argLine>--add-modules java.xml.bind<argLine>
    <configuration>
<plugin>

方案3: 直接导入缺失的包:

<!-- Java 6 = JAX-B Version 2.0   -->
<!-- Java 7 = JAX-B Version 2.2.3 -->
<!-- Java 8 = JAX-B Version 2.2.8 -->
<dependencies>
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-core</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.2.0</version>
    </dependency>
</dependencies>

2018/5/21

#水·滴# Spring Data Query方法的属性表达式中,如果描述嵌入对象的属性,直接添加,例如:

List<Person> findByAddressZipCode(ZipCode zipCode); 

相当于: x.address.zipCode 但有时可能会出现冲突或混淆,可以用下划线区分:

 List<Person> findByAddress_ZipCode(ZipCode zipCode); 

参考文档:Spring Data 之 Property Expressions

2018/5/22

#水·滴# Groovy变态的语法糖: 变量不加def,将变量添加到当前脚本的binding,一般看作全局变量。

x = 1
assert x == 1
assert this.binding.getVariable("x") == 1

def y = 2

assert y == 2

try {
    this.binding.getVariable("y") 
} catch (groovy.lang.MissingPropertyException e) {
    println "error caught"
} 
Prints: "error caught"

2018/5/24

#水·滴# 一个JavaWebApp多个实例部署在一个容器(Tomcat)报错:

Web app root system property already set to different value: 'webapp.root' = [C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\myapp] instead of [C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\myapp2] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!

解决方法,设置不同的webAppRootKey,避免冲突,例如:

<!--app1中的web.xml-->
<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>app1.root</param-value>
</context-param>
 
<!--app2中的web.xml-->
<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>app2.root</param-value>
</context-param>

2018/5/25

#水·滴# Python print 小窍门: end 参数用在print 函数中作用是打印一行并允许下一次打印在同一行继续。这是一个让 print 能够不在末尾打印出\n(换行符)符号的小窍门。

2018/5/25

#水·滴# Win10 Linux Subsystem 路径:

C:\Users<username>\AppData\Local\Packages<group_name>\LocalState

  • buntu: CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc openSUSE
  • Leap 42: 46932SUSE.openSUSELeap42.2_022rs5jcyhyac
  • SUSE Linux Enterprise Server 12: 46932SUSE.SUSELinuxEnterpriseServer12SP2_022rs5jcyhyac

2018/6/9

#水·滴# windows 下MongoDB服务配置安装:

  1. 编写Mongodb配置文件
systemLog:
  destination: "file"
  path: "c:\\data\\log\\mongod.log"
storage:
  dbPath: "c:\\data\\db"
  1. 安装服务
"C:\Program Files\MongoDB\Server\3.6\bin\mongod.exe" ^
  --config "C:\Program Files\MongoDB\Server\3.6\mongod.cfg" ^
  --install

对于我是:

mongod  --config "D:\Data\MongoDB\mongod.cfg" --install

2018/6/13

#水·滴# 微软在 4 月 18 那天发布了题为《Windows Command Reference》的 PDF 文档,内容达到了惊人的 948 页,全面覆盖了超过 250 个 Windows 控制台命令。

链接:https://download.microsoft.com/download/5/8/9/58911986-D4AD-4695-BF63-F734CD4DF8F2/ws-commands.pdf

2018/6/13

#水·滴# Angular ng serve 时报错:

Could not resolve submodule for for routing:

原因路由配置问题:

export const ROUTES: Routes = [
  {path: '', loadChildren: 'app/home#HomeModule'},
  {path: '**', component: NotFoundComponent},
];

解决方法: 使用路由配置文件的相对路径,例如:

export const ROUTES: Routes = [
  {path: '', loadChildren: './home#HomeModule'},
  {path: '**', component: NotFoundComponent},
];

2018/6/14

#水·滴# Angular是目前最火的前端框架,常用的资源可以看官方网站:

链接:Angular Docs https://angular.io/resources

还有对应的中文网站:

链接:Angular Docs https://angular.cn/

另外,介绍几个我常用的第三方组件:

界面组件首选Ant: 链接:NG-ZORRO - Ant Design Of Angular https://ng.ant.design/

备选Primary: 链接:PrimeNG https://www.primefaces.org/primeng

还有官方的Material2: 链接:GitHub - angular/material2: Material Design compon...

移动端开发OnsenUI: 链接:Angular and AngularJS UI Components by Onsen UI Hy...

2018/6/14

#水滴# SqlServer从源表同步数据的语法:

--同步两个表的神奇语句
merge into TargetTable as t
using SourceTable as s
on t.id = s.id
when matched --源表和目标表存在同样ID是,更新目标表数据
then update set t.val=s.val
when not matched --目标表不存在源表数据,目标表插入源数据
then insert values(s.id, s.val)
when not matched by source --源表中不存在的数据,目标表删除
then delete;

一个实际的例子:

--同步两个表的神奇语句
merge into T_Site_Type as t
using (select * from T_Site_Type where Serial={Serial}) as s
on t.Serial = s.Serial
when matched --源表和目标表存在同样ID是,更新目标表数据
then update set t.TypeName = '雨水总排口监测点22211111'
when not matched --目标表不存在源表数据,目标表插入源数据
then insert  (TypeId, TypeName, Serial) values(s.TypeId, s.TypeName, s.Serial);
when not matched by source --源表中不存在的数据,目标表删除
then delete;

2018/6/14

#水·滴# 一段代码演示一下Python的异常处理:

def except_test(num):
    if num < 1:
        raise Exception("我错了")
condition = 1     
try:
    except_test(condition)
except Exception as arg:
    print("不好,发生异常")
    print(arg)
else:
    print("火箭发射正常")
finally:
    print("收工")

2018/6/20

#水·滴# 基于maven的Kotlin和Java混合项目,如果需要设置不同的源码路径,可以使用build-helper-maven-plugin插件,例如:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>3.0.0</version>
    <executions>
        <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>src/main/java</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>

2018/6/21

#水·滴# 使用VS创建MVC Controller时报错:

EntityType 'XXXXX' has no key defined. Define the key for this EntityType。

可能是以下几种原因:

  • 0、必须要有关键字属性;
  • 1、属性名需为id,否则在上面使用[Key]注解;
  • 2、关键字应为属性,不能是字段,没有get/set也会报错;
  • 3、关键字需public;
  • 4、关键字需要 CLS-compliant 类型,意味着无符号类型,如:uint, ulong 等等都不可以;
  • 5、关键字名称冲突,如xId,yId等,需通过[Key]注解注明;
  • 6、奇葩的一个,你新建实体类,但是没有build也会造成这个错误。

2018/6/21

#水·滴# C#类字段属性区别:

字段一般用在类的内部使用,属性一般供外部类访问。按照类的设计原则,字段都是private的,只能在类的内部使用,如果是public的,那么外部类谁都有可能访问,对字段进行破坏性的修改,这是我们不希望看到的,所以字段一定是private的。

属性相当于是给字段加了一个保护套,如果想读这个字段的值,属性里面走的一定是get{},如果想给字段赋值,属性里一定走的是set{},那么程序员可以在get{}和set{}中增加一些限制,验证要赋值的内容,或者让某个字段只能读不能赋值(对应该字段的的属性只让它有get{},不写set{})。对于外部使用者来说只能够使用它,不能控制它,如何控制操作是由类自身决定的(或者说是由程序员决定的,嘿嘿~)。

另外,字段值可以用作ref、out参数,而属性不能。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FD的专栏

Brainfuck JIT Compiler in Rust

我们都知道,对于解释型的语言实现来说,性能是大家关注的焦点。比如,这位 Tondbal ik Ni 曾经还说过:

1113
来自专栏恰同学骚年

.NET单元测试的艺术-1.入门

开篇:最近在看Roy Osherove的《单元测试的艺术》一书,颇有收获。因此,将其记录下来,并分为四个部分分享成文,与各位Share。本篇作为入门,介绍了单元...

832
来自专栏Kirito的技术分享

深入理解RPC之传输篇

RPC 被称为“远程过程调用”,表明了一个方法调用会跨越网络,跨越进程,所以传输层是不可或缺的。一说到网络传输,一堆名词就蹦了出来:TCP、UDP、HTTP,同...

8847
来自专栏IT技术精选文摘

跟着实例学习ZooKeeper的用法: Leader选举

Leader Election Barriers Queues Locks Two-phased Commit 其它应用如Name Service, Confi...

2389
来自专栏Jerry的SAP技术分享

Hybris Enterprise Commerce Platform 服务层的设计与实现

Hybris Enterprise Commerce Platform这个系列之前已经由我的同事,SAP成都研究院Hybris开发团队的同事张健(Zhang J...

972
来自专栏JadePeng的技术博客

XNginx - nginx 集群可视化管理工具

之前团队的nginx管理,都是运维同学每次去修改配置文件,然后重启,非常不方便,一直想找一个可以方便管理nginx集群的工具,翻遍web,未寻到可用之物,于是自...

3183
来自专栏Java帮帮-微信公众号-技术文章全总结

Web-第三十天 Activiti工作流【悟空教程】

工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的...

2223
来自专栏学习力

《Java从入门到放弃》框架入门篇:hibernate中的多表对应关系

2077
来自专栏源哥的专栏

基于linux的嵌入IPv4协议栈的内容过滤防火墙系统(5)-包过滤模块和内容过滤模块所采用的各种技术详述

3。1 module编程 module可以说是 Linux 的一大革新。有了 module 之后,写 device driver 不再是一项恶梦,修改 ker...

893
来自专栏cmazxiaoma的架构师之路

IDEA入门(1)--lombok和Junit generator2插件的运用

1533

扫码关注云+社区