中科软学习总结

1.RestFul风格是一种URL规则,传递参数的时候不用?改用/

@RestMapping(“/list/{id}”)通过@PathVariable()可以接收url中传过来的参数,@RestMapping(“/list/{id}”)中接收参数使用大括号加上变量名称@PathVariable(“id”)中的变量名称要和@RestMapping(“/list/{id}”)中的变量名称相同

2.  Mysql中建表时给字段添加注释:①CREATE TABLE groups(gid INT PRIMARY KEY AUTO_INCREMENT COMMENT '设置主键自增')②查看表注释:SHOW  CREATE TABLE communication_group③查看列注释:SHOW FULL COLUMNS FROM groups

3. 这个::是java 8里引入lambda后的一种用法,表示引用,比如静态方法的引用String::valueOf;
比如构造器的引用,ArrayList::new

4.各种校验:

//联系电话校验
String regex = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(16[([0-3]|[5-9])])|(17[([0-3]|[5-9])])|(18[0,5-9]))\\d{8}$";
//联系邮箱校验
String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";

5. @JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段若这个字段存在则不会忽略。这个注解还可以指定要忽略的字段不管是空还是非空。使用方法如下@JsonIgnoreProperties({ "internalId", "secretKey" })@JsonIgnore此注解用于属性或者方法上(最好是属性上),序列化和反序列化就会忽略该属性(不管该属性是空还是非空),以上的三个注解都是在序列化和反序列化的时候起作用。

@JsonInclude()注解该注解只对javaBean序列化为json对象时起作用,反序列化的时候不起作用

使用jackson进行序列化时,往往会遇到后台某个实体对象的属性为null,当序列化成json时对应的属性也为null;这样在某些前端组件上应用该json对象会报错。(例如:echarts) 

下面总结了两种方法,解决了当属性为null时不参与序列化:

方法一:

1.实体上使用如下注解  @JsonInclude(Include.NON_NULL)  将该标记放在属性上,如果该属性为NULL则不参与序列化 ;如果放在类上边,那对这个类的全部属性起作用。具体取值有:
//Include.Include.ALWAYS 默认 
//Include.NON_DEFAULT 属性为默认值不序列化 
//Include.NON_EMPTY 属性为 空(“”) 或者为 NULL 都不序列化 
//Include.NON_NULL 属性为NULL 不序列化 
注:使用了该注解,那么在import时需要把一下两个类引入到源文件中
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;

2.代码上使用如下方法:

ObjectMapper mapper = new ObjectMapper();

mapper.setSerializationInclusion(Include.NON_NULL); 

User user = new User(1,"",null); 
String outJson = mapper.writeValueAsString(user); 
System.out.println(outJson);

         通过该方法对mapper对象进行设置,所有序列化的对象都将按改规则进行系列化 。具体取值有:
//Include.Include.ALWAYS 默认 
//Include.NON_DEFAULT 属性为默认值不序列化 
//Include.NON_EMPTY 属性为 空(“”) 或者为 NULL 都不序列化 
//Include.NON_NULL 属性为NULL 不序列化 

 

6. 学习JackJson

7. MySql相关

①当某一列发生变化需要修改的时候执行如下面的语句(前提是列名没有发生变化,只是数据类型和约束发生了变化):

 

ALTER TABLE HRSC_ORDER_BATCH MODIFY COLUMN FAIL_REAS  INT(3) COMMENT '失败原因【批量派出失败原因:字典值';

②如果想在一个已经建好的表中添加一列,可以用诸如:

alter table t1 add column addr varchar(20) not null;

这条语句会向已有的表t1中加入一列addr,这一列在表的最后一列位置。如果我们希望添加在指定的一列,可以用:

alter table t1 add column addr varchar(20) not null COMMENT ‘注释的东西’ after user1;

注意,上面这个命令的意思是说添加addr列到user1这一列后面。如果想添加到第一列的话,可以用:

alter table t1 add column addr varchar(20) not null first;

 

将表web1.new_table change中,列名def改为unit

alter table web1.new_table change  def unit char;

 

将表web1.new_table change中,列名def的列删除

alter table web1.new_table drop column def ;

if等的用法:

 

8.@Value("${db.driverclass}"):获取配置文件(.properties结尾)的db.driverclass的值,并自动注入到类的某个setter方法上

有的时候我们定义了Properties文件,并且使用Spring的PropertyPlaceholderConfigurer类在Spring配置文件中以占位符的方式替换数据库等配置文件,那么万一我们想将这些属性也同时注入到某个bean中呢?

这里做个说明,网上很多资料说的<util:properties>方式我们这里不做介绍,有兴趣的自己去看。我们这里只介绍使用PropertyPlaceholderConfigurer管理起来的方式。

       其实很简单,比如你在db.properties中配置的db.driverclass=com.mysql.jdbc.Driver,则在我们的bean的某个set方法上可以用@Value("${db.driverclass}")来完成注入,

       也可以在成员变量上注入。

      例子代码如:

     @Service

      public class DatabaseInfo {

     private String driverClass;     //也可以在这里注入

             private void setDriverClass(String dc) {

this.driverClass = dc;

             }

      }

9. lombok 注解:
          lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。
          Lombok 注解在线帮助文档:http://projectlombok.org/features/index.
          下面介绍几个我常用的 lombok 注解:
              @Data   :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
              @Setter:注解在属性上;为属性提供 setting 方法
              @Getter:注解在属性上;为属性提供 getting 方法
              @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
              @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
              @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

lombok是一个可以帮助我们简化java代码编写的工具类,尤其是简化javabean的编写,即通过采用注解的方式,消除代码中的构造方法,getter/setter等代码,使我们写的类更加简洁,当然,这带来的副作用就是不易阅读…不过,还是能看得懂吧,废话不多说,先看一下lombok支持的一些常见的注解。

@NonNull

@Cleanup

@Getter/@Setter

@ToString

@EqualsAndHashCode

@NoArgsConstructor/@RequiredArgsConstructor /@AllArgsConstructor

@Data

@Value

@SneakyThrows

@Synchronized

@Log

 

@NonNull

这个注解可以用在成员方法或者构造方法的参数前面,会自动产生一个关于此参数的非空检查,如果参数为空,则抛出一个空指针异常,举个例子来看看:

//成员方法参数加上@NonNull注解public String getName(@NonNull Person p){

    return p.getName();

}

实际效果相当于:

public String getName(@NonNull Person p){

    if(p==null){

        throw new NullPointerException("person");

    }

    return p.getName();

}

用在构造方法的参数上效果类似,就不再举例子了。

@Cleanup

这个注解用在变量前面,可以保证此变量代表的资源会被自动关闭,默认是调用资源的close()方法,如果该资源有其它关闭方法,可使用@Cleanup(“methodName”)来指定要调用的方法,就用输入输出流来举个例子吧:

public static void main(String[] args) throws IOException {

     @Cleanup InputStream in = new FileInputStream(args[0]);

     @Cleanup OutputStream out = new FileOutputStream(args[1]);

     byte[] b = new byte[1024];

     while (true) {

       int r = in.read(b);

       if (r == -1) break;

       out.write(b, 0, r);

     }

 }

实际效果相当于:

public static void main(String[] args) throws IOException {

     InputStream in = new FileInputStream(args[0]);

     try {

       OutputStream out = new FileOutputStream(args[1]);

       try {

         byte[] b = new byte[10000];

         while (true) {

           int r = in.read(b);

           if (r == -1) break;

           out.write(b, 0, r);

         }

       } finally {

         if (out != null) {

           out.close();

         }

       }

     } finally {

       if (in != null) {

         in.close();

       }

    }

}

是不是简化了很多。

@Getter/@Setter

这一对注解从名字上就很好理解,用在成员变量前面,相当于为成员变量生成对应的get和set方法,同时还可以为生成的方法指定访问修饰符,当然,默认为public,直接来看下面的简单的例子:

public class Programmer{

    @Getter

    @Setter

    private String name;

 

    @Setter(AccessLevel.PROTECTED)

    private int age;

 

    @Getter(AccessLevel.PUBLIC)

    private String language;

}实际效果相当于:

public class Programmer{

    private String name;

    private int age;

    private String language;

 

    public void setName(String name){

        this.name = name;

    }

 

    public String getName(){

        return name;

    }

 

    protected void setAge(int age){

        this.age = age;

    }

 

    public String getLanguage(){

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章 流体力学概述 1、Introduction to Fluid Mechanics流体力学简介 2、Governing Equations of Fluid Mechanics流体力学控制方程 3、Potential Flow位流 4、Boundary Layer and Viscous Flows边界层与粘性流 5、External Flows外流 6、Internal Flows内流 7、Heat Transfer传热学 第二章 CFD概述 1、Introduction to CFD 计算流体力学简介 2、Mathematical Equations of CFD计算流体力学的数学方程 3、Overview of CFD Solution Methodologies计算流体力学求解方法 4、Discretization 方程离散 5、Solution Methods 求解方法 6、Postprocessing and Visualization后处理与可视化 7、Modeling Turbulent Flows湍流模拟 8、Designing Meshes for CFD Calculations网格设计 9、Case Studies算例学习 第三章 Gambit几何建模 1、Introduction to GAMBIT + Demo Gambit简介 2、Tutorial – Creating and Meshing a Basic Geometry基本几何的建立与网格生成 3、Introduction to Geometry Operations 几何建模简介 4、Exercise 1练习1 5、CAD/CAE Data Import and Geometry Cleanup CAD/CAE数据导入与几何简化 6、Tutorial 算例 7、Semi-Automated Cleanup Tools + Demo半自动几何简化工具 8、Tutorial 算例 第四章 Gambit网格生成 1、Edge and Face Meshing 边与面的网格生成 2、Exercise 2 – 2D Geometry and Mesh Generation二维几何与网格生成 3、Volume Meshing 体网格生成 4、Exercise 3 – 3D Geometry and Mesh Generation三维几何与网格生成 5、Mesh Control & Size Functions网格控制与SF 6、Exercise 4 算例 7、Meshing Strategy & Tips网格生成策略与技巧 8、Tutorial 算例 第五章 TGrid网格生成简介 1、面网格修正 2、边界层网格生成 3、体网格生成 第六章 FLUENT解算器 1、Introduction to ANSYS—Fluent 简介 2、Lecture – Introduction to CFD Analysis CFD分析简介 3、Demonstration: Overview of the CFD Process CFD流程 4、Tutorial Session – Tutorial #1 (3D Mixing Elbow) 算例 5、Lecture – Solver Basics 解算器基础 6、Lecture – Boundary Conditions边界条件 7、Tutorial Session 算例 8、Lecture – Solver Settings 解算器设置 9、Tutorial Session 算例 10、Lecture – Turbulence Modeling 湍流模拟 11、Tutorial Session 算例 12、Lecture – Heat Transfer Modeling 传热模拟 13、Lecture – User Defined Functions 用户自定义UDF 14、Lecture (Optional) –Multiphase Modeling 多相流简模型 15、Lecture (Optional) – Moving Zone Models 运动区域模拟 16、Tutorial Session 算例 17、案例分析
一、虚拟化评估与规划 1、微软虚拟化概述 2、虚拟化管理概述 3、评估现有的虚拟化环境 4、规划Hyper-V R2角色 二、安装和配置Hyper-V R2服务器角色 1、安装Hyper-V R2服务器角色 2、配置Hyper-V R2设置和虚拟网络 三、创建和配置虚拟硬盘和虚拟机 1、创建和配置虚拟硬盘 2、创建和配置虚拟机 3、管理虚拟机快照 4、虚拟机的连接应用 5、规划虚拟化的应用 四、Hyper-V R2与SCVMM 2008 R2的整合 1、规划SCVMM 2008 R2 2、安装VMM服务和管理控制台 3、管理主机和主机组 五、使用SCVMM 2008 R2创建和部署虚拟机 1、使用SCVMM 2008 R2创建新的虚拟机 2、将物理服务器转换为虚拟机 3、转换和迁移虚拟机 4、克隆虚拟机 六、使用SCVMM 2008 R2管理虚拟机 1、SCVMM 2008 R2管理任务概述 2、创建和管理检查点 七、配置和管理VMM库 1、VMM库概述 2、管理配置文件和模板 3、实现VMM库的高可用性 八、内容二 :配置用户角色和虚拟机管理器自服务平台 1、配置用户角色 2、安装和配置VMM管理器自服务平台 九、使用离线虚拟机维修工具维护软件更新 1、离线虚拟机维修工具概述 2、配置WSUS和离线虚拟机维修工具 十、虚拟机备份和还原策略 1、虚拟机和VMM数据库的备份和还原选项概述 2、为备份Hyper-V架构实施DPM 2007 SP1 十一、为服务器虚拟化实施高可用性 1、故障转移群集概述 2、使用Hyper-V实施故障转移群集 3、使用SCVMM 2008 R2实施高可用性 十二、服务器虚拟化监视和报告 1、SCVMM 2008 R2监视工作 2、SCOM和SCVMM的集成 3、配置性能和资源优化 十三、使用RDS实现桌面虚拟化 1、远程桌面服务概述 2、实施远程桌面会话主机 3、实施远程桌面连接代理 4、实施远程桌面虚拟化主机 十四、扩大本组织以外的远程桌面服务 1、配置远程桌面网关服务 2、配置远程桌面WEB访问
培训目标: 掌握表格、数据录入技巧,控制数据的正确录入和安全性的操作,专业表格修饰技巧及特殊的数字格式设置;运用函数进行复杂数据计算、进行表间关联和索引;掌握数据透视表中的计算和分析;掌握图表设置中的技巧,及特殊图表制作,运用动态图表展示数据;了解Excel中数据分析工具,认识宏,并运用宏提高工作效率。 课程大纲: 第一章、Excel数据处理基本技巧 第一节Excel中的表格基本操作技巧 快捷键应用介绍 表格区域命名 多工作表的快速定位 工作表的链接 第二节、快速准确输入数据 数字、日期输入技巧 快速填充特殊技巧 导入外部数据 第三节、大型表格的编辑、打印技巧 第二章、表格数据安全控制 第一节、利用有效性控制表格内容输入 利用序列控制输入内容 设置序列跨工作表数据源引用 有效性提示文字 第二节、工作表和单元格的保护、隐藏 第三章、编辑美观专业的表格 第一节、表体的特殊格式的修饰应用 特殊数字格式 第二节、增强条件格式 选用条件格式规则 运用公式自定义条件格式 第四章、高效准确的公式计算 第一节、Excel 中公式建立方法和相关工具 自动求和的灵活应用 合并计算多张工作表数据 第二节、深层次理解公式中引用关系 第四章、函数的高级应用 第一节、常用条件统计函数的应用 通配符在条件统计函数中的应用 Sumifs、Countifs、Average复杂条件统计 Round函数 第二节、逻辑函数 If条件函数的嵌套应用 And、Or函数与If的组合应用 第三节、查找引用函数的使用 利用Vlookup函数建立查询系统、实现工作表关联 Index与Match函数的基本使用 Offset函数的基本使用 第四节、文本类函数的使用 EXACT检查两个文本值是否相同 Left、Right、MID提取字符 Find函数 第五节、日期函数使用 Date、DateDif 第六节、数组函数 SUMPRODUCT 第五章、图表常用类型设计 第一节、图表类型用途分析 第二节、图表布局设置 第三节、图表处理 对空值的处理 对隐藏行列数据的处理 断开图表与源数据的关系 图表标题来自某单元格 处理图例 使用时间刻度坐标轴 多行分类坐标轴 第四节、迷你图设计 迷你图与常规图表区别 创建与格式化迷你图 第五节、图表分析工具 趋势线 误差线 涨跌柱线 第六节、特殊图表的制作 双Y轴 复合饼图 第七节、动态图表 建立辅助数据区 Vlookup、Index、Offset函数引用数据 建立图表 应用按钮,让图表变换更直观 第六章、数据统计基础工具应用 第一节、排序特殊用功能 第二节、数据筛选 高级筛选:提取数据、删除数据 按颜色筛选 第三节、分类汇总 嵌套分类汇总 定位复制汇总数据 第七章、数据透视分析 第一节、数据透视表工具介绍 数据透视表的规范要求 不规范数据表格的处理 第二节、在数据透视表上实现分组 按日期、地区、产品类别分组 组合的注意事项 第三节、数据透视表的格式化 修改字段名称 设置字段的数字格式 显示/隐藏明晰数据 显示/隐藏汇总数据 套用报表样式 第四节、数据透视表使用技巧 如何设置空值和错误值在单元格中的显示方式 如何设置刷新数据 复制数据透视表中的值 第五节、多工作表数据汇总 单页字段 自定义字段 第六节、利用透视表从不同角度分析数据 第八章、数据分析 第一节、变量求解 单变量求解 双变量求解 第二节、规划求解 模型的搭建 运算报告分析 第三节、模拟运算 第九章、宏的简介 第一节、宏的概念和作用 第二节、宏的安全性 第三节、宏的录制和管理 宏的命名和执行环境 录制及注意事项 宏的快捷键与删除 第四节、执行宏 常规启动执行 自定义命令按钮执行
课程简介 : ArcGIS Server包含了一系列软件和集中管理的GIS Web应用程序的开发框架。本高级课程介绍了ArcGIS Server Web应用程序开发框架(ADF),并教授学员如何开发ArcGIS Server Web应用程序以使用多种GIS服务。学员将学习有用的类库、API及ArcGIS Server开发流程。在课程练习中,学员将创建应用程序,使用ADF Web控件来整合多种数据源、执行查询、执行新添的geoprocessing任务。学员还将学到如何使用自定义按钮和工具来扩展Web ADF,以及如何使用server对象扩展模块扩展GIS服务器。 学员收益: 理解ArcGIS Server Web ADF的组成 学习如何使用Web地图应用程序模板 在Web应用程序中使用ArcGIS Server API 使用ASP.NET Web控件开发自定义Web应用程序 开发自定义命令和工具 使用task框架创建和部署自定义web任务 使用server对象扩展模块 培训内容: 建立Web ADF应用程序:Web ADF开发者资源;Web地图应用程序模板的组织;使用Web地图应用程序模板的优点。 使用Web ADF控件:ResourceManager控件;Mapping控件;web控件与MapControl控件关联;ImageBlending选项。 Web ADF编程:使用数据源、资源和函数;普通数据源API。 图形数据源编程:元素与要素图形图层;几何体;渲染;符号化;刷新图形图层。 ArcGIS Server数据源编程:SOAP和ArcObjects API;Value和Proxy对象;网络和本地资源;在COM与Web ADF类型间转换;管理状态。 创建自定义命令和工具:扩展Web ADF工具条;客户端与服务器动作;ToolEventArgs;Postbacks和callbacks;使用CallbackResults。 Web ADF任务框架:TaskManager和TaskResults;配置任务。 创建自定义任务:Itask;扩展FloatingPanelTask;使用TaskResults;整合任务至Visual Studio和ArcGIS Server Manager。 Geoprocessing:GeoprocessingFunctionaility; GPServer; Geoprocessor;geoprocessing任务的定制与使用。 扩展GIS服务器:COM有用对象;服务器对象扩展;部署服务器对象扩展的条件;在Web应用程序上使用服务器对象扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值