10 恺风

尚未进行身份认证

我思故我在,如果一个人无法独立思考,即使熟习各种工具,实质只是工具的一部分,永远无法创造工具。

等级
博文 1k+
排名 68

【杂谈】对代码的一些建议:从单模块到多模块

对于产品,一般来讲,从单模块,到负载均衡的多模块,最后到有服务治理的规模化集群(例如微服务),逐步发展和演进。本文并不打算涉及框架或者架构,也不讲什么大道理,仅从代码编写的角度,看看开发人员需要注意什么。单模块开发的一些注意事项单模块并不是指单体方式,根据功能进行模块划分,每个模块在生产环境中是单模块运行(主备方式)。单模块阶段开发人员仍是有要求,在我的实践中,从codereview看,...

2019-05-16 17:21:08

【杂谈】学习一直在路上

博客已经有一段时间没有更新。江湖依旧在,心态有些懈怠,需要收拾心情,我要好好看风景。工作近来相对轻松,也就有了更多学习的时间。虽然博客停更了一段时间,但是在我自己的mediawiki上仍在耕耘,只是大多是付费课程的笔记,放在网上就不厚道,不亦乐乎之后,博客也就暂时放下。推荐一下极客时间,都是一些资深的大牛,讲的东西系统、清晰,很多前沿技术,发展很快,版本迭代快,没有什么经典书籍,需要频繁在...

2019-04-21 17:17:23

Java for Web学习笔记(一四二)Spring security准备(3)初窥

了解SpringSecurity的基本知识完全J2EE的webcontainer也能提供完整的安全框架,但tomcat不是。SpringSecurity可以使用JDBC,或者我们的服务或仓库来认证用户,也提供了内置的对微软ActiveDerectory,Jasig的CAS(CentralAuthenticationService),JAAS(JavaAuthentication...

2018-09-27 11:45:34

Java for Web学习笔记(一四一)Spring security准备(2)授权

访问的范围和权限属于授权。Principals和Identities就Java而言,很方便利用java.security.Principal。Principal至少会包含已被认证的用户identity,例如用户名,还可能有其他信息。此外还可以保护用户的授权信息,这些信息的表述应采用常量,例如枚举或者有限的字符串,否者过多的授权会对内存有影响,进而影响性能。Roles,Groups,Ac...

2018-09-27 11:44:15

Java for Web学习笔记(一四十)Spring security准备(1)认证

匿名认证匿名认证有多种方式:不是通过你的ID进行认证,例如通过HTTP的sessionID,实际是认证你曾经访问。 作为其他认证缺失的情况:,例如可以匿名登录论坛进行浏览。当让如果要做更多的事情,通常需要进行身份认证。密码认证密码认证古来有之。有密码和反密码,例如空降兵密码为flash,地面部队为thunder,避免抢先问密码,导致密码泄漏。这有点类似https在使用前,用户先检...

2018-09-27 11:39:54

Java for Web学习笔记(一三九)篇外之数据库的ACID和JPA(3)隔离性

SQL中的Isolation实验SQL语句案例:--SELECT@@session.tx_isolation;查看当前的isolationSETSESSIONTRANSACTIONISOLATIONLEVELREADUNCOMMITTED;--SETSESSIONTRANSACTIONISOLATIONLEVELREADCOMMITTED;--SE...

2018-09-27 11:24:56

Java for Web学习笔记(一三八)篇外之数据库的ACID和JPA(2)JPA

在测试中,我们发现在一个JPA事务中:SpringData的写SQL是在最后commit前发出,这最大程度地缩短了写操作和commit之间的时间。 对相同的ID的读,JPA只从数据库中读取一次。 从数据库中获取entity,修改entity的数据,即使最后没有执行save,在commit之前,发送update。下面是其中一个测试小例子:@Transactionalpublic...

2018-09-27 11:15:07

Java for Web学习笔记(一三七)篇外之数据库的ACID和JPA(1)原子性

ACID大家都听过,看似也了解,但是在实际的项目中,发现不是所有人都正确理解。所以想谈一下当中容易忽略或者错误理解的地方。现在的开发语言和开发工具都很丰富,如果这要一一了解,也真是耗不起,但是有些是工具,知道怎么用就行,有些是基础知识,需要掌握。ACID就是基础知识,只有真正了解,才能在代码中进行合适的选择,特别是在异常处理和并发处理。在这个小系列中,基于下面的表格CREATETABL...

2018-09-27 11:08:14

Java for Web学习笔记(一三六)映射(12)还谈FetchType.LAZY

说明在前面的学习中(见JavaforWeb学习笔记(一二七)映射(3)OneToOne),加上fetch=FetchType.LAZY的属性是集合或者Map。反映在SQL中,就是读取其他表格的信息(无论是通过join还是什么)。例如前面学习的@OneToMany、@ElementCollection。就单个表格而言,一次读取所有的列的数据,实际上在MySQL中,即使我们只是SELECT...

2018-08-24 16:23:03

Java for Web学习笔记(一三五)映射(11)代码触发器

说明数据库是有触发器Trigger。但我们希望业务逻辑能从底层的具体数据存储抽象出来(有需要时可以更好存储机制),也就是要在应用中编写trigger,而不是依赖底层数据库来实现。Entity内部触发器我们随便挑选以前的某个entity,在里面加入触发器。@EntitypublicclassPerson{......//【触发器说明】//1...

2018-08-15 16:49:15

Java for Web学习笔记(一三四)映射(10)@SecondaryTables

说明@SecondaryTables在实际中很少使用。相当于是将一个entity的基础属性(不是collection)拆分到不同表中存放。这在表格设计中是不合理的。常用于遗留数据库,以及表格列太多查出数据库供应商的限制。和OneToOne不同,没有使用外键进行表格关联,而是两个表的主键代表同样含义。小例子数据库表格CREATETABLEEmployee(Employe...

2018-08-09 17:12:10

Java for Web学习笔记(一三三)映射(9)中文输入

这个小例子中,我们已经:整个项目在eclipse中指定采用UTF-8 在web.xml中对jsp的配置已经设置了<page-encoding>UTF-8</page-encoding> 在jsp文件中,已经给出了<metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">但是我们...

2018-08-08 15:55:50

Java for Web学习笔记(一三二)映射(8)@ElementCollection

说明在前面我们学习了OneToOne、OneToMany、ManyToOne,将数据库中不同表格的关联转换为spring中不同entity的关联。但是在不少场景中,我们希望在一个entity的视图中同查看到这几个表的信息,而无需通过entity之间的关联。在这个小例子中,我们还将学习和讨论到:表格有Employee,Employee_Address中存放员工多个地址,Employee_...

2018-08-08 15:52:33

Java for Web学习笔记(一三一)映射(7)entity的抽象和继承

Mappedsuperclass我们通过@javax.persistence.MappedSuperclass定义一个Mappedsuperclass,定义表格的通用属性,提供给Entity继承。它和Entity的属性映射是一样,但需注意:entity可以重写@Column。类标记为@AttributeOverride或@AttributeOverrides,在里面给出需要overr...

2018-08-03 17:25:11

Java for Web学习笔记(一三十)映射(6)@Version

@VersionJPA可以将entity的某个属性(只允许一个)标记为@javax.persistence.Version。这个属性可以是整形和java.sql.Timestamp。如果是整形,Version从0开始,每次update,每次自动+1;如果是Timestamp,就是每次更新为now()。如果数据没有实际变化,version不会变更。小例子代码CREATETABLE...

2018-08-02 14:38:05

Java for Web学习笔记(一二九)映射(5)ManyToMany

ManyToMany需要中间表格。小例子一本书可以有N个作者,一个作者可以有N本书。CREATETABLE`Book`(`Id`bigint(20)unsignedNOTNULLAUTO_INCREMENTPRIMARYKEY,`BookName`varchar(50)COLLATEutf8_unicode_ciNOTNULL)ENG...

2018-08-01 11:37:21

Java for Web学习笔记(一二八)映射(4)OneToMany和ManyToOne

OneToMany和ManyToOne是更为常见的例子。如果A和B的关系是OneToMany,则B和A的关系就是ManyToOne。小例子我们继续前面书的例子,增加书评表。一本书可以有多条书评,一条书评对应一本书。CREATETABLEBook(IdBIGINTUNSIGNEDNOTNULLAUTO_INCREMENTPRIMARYKEY,Book...

2018-07-31 14:17:54

Java for Web学习笔记(一二七)映射(3)OneToOne

OneToOneEntityA和EntityB是一对一的关联关系。这在实际中较少使用到。如果某个Entity具有上百个属性,我们可能会将某些属性分别放入子entity中另外存放。有点似列式数据库(如HBase)。用于属性很多,属性可以归类,很可能会有新增属性的情况。小例子CREATETABLEBook(IdBIGINTUNSIGNEDNOTNULLAUTO_...

2018-07-30 11:52:32

【ML】Python准备篇(3)安装pip

Linux安装$sudoapt-getinstallpython3-pigWindows版本Python下载安装有两种方式:下载zip文件,解压即用。 下载installer,进行安装。一般而言,我们喜欢第一种方式,就是绿色安装。但是这种方式,我试了很久,手动安装pip只能试用与3.5版本或之前的。而3.6和之后的3.7需要通过installer进行安装。≤3...

2018-07-27 10:55:05

【ML】Python准备篇(2)Sublime环境

下载相关介质从Sublime官网下载zip文件,在windows中解压即可。 在Python下载zip文件,在windows解压即可。Sublime上允许安装packagecontrol【方式一】在Tools下面有一个InstallPackageControl,点击即可【方式二】菜单View->ShowConsole,将下面的内容贴入到console中,按回...

2018-07-27 10:46:15
奖章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。