Luckylau's Blog

Keep Moving, Keep Learning


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 搜索
close
Luckylau's Blog

SpringBoot之Spring-Data-JPA

发表于 2017-06-12 | 分类于 java

什么是Spring-Data-JPA?

JPA(Java Persistence API,Java持久化API),定义了对象-关系映射(ORM)以及实体对象持久化的标准接口。

Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框和云计算数据服务。 Spring Data 包含多个子项目,Spring-data-jpa是其中一个用于简化JPA开发的框架。

Spring Data JPA的核心概念:

Repository:最顶层的接口,是一个空的接口,目的是为了统一所有Repository的类型,且能让组件扫描的时候自动识别。
CrudRepository :是Repository的子接口,提供CRUD的功能
PagingAndSortingRepository:是CrudRepository的子接口,添加分页和排序的功能
JpaRepository:是PagingAndSortingRepository的子接口,增加了一些实用的功能,比如:批量操作等。
JpaSpecificationExecutor:用来做负责查询的接口
Specification:是Spring Data JPA提供的一个查询规范,要做复杂的查询,只需围绕这个规范来设置查询条件即可。

阅读全文 »
Luckylau's Blog

Git常用命令

发表于 2017-06-09 | 分类于 Tools

1.添加.gitignore并生效

vim .gitignore

1
2
3
4
*.project
.settings/
.classpath
.gitignore

git rm -r --cached .

git add .

git commit -m 'update .gitignore'

2.回滚某个版本

git reset --hard commit_id

git push origin -- force

3.Github上fork项目后与原项目保持同步

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//首先下载自己fork的项目,我叫luckylau
$ git clone https://github.com/Luckylau/PiggyMetrics.git
//查看远端分支
¥cd PiggyMetrics/
$ git remote -v
origin https://github.com/Luckylau/PiggyMetrics.git (fetch)
origin https://github.com/Luckylau/PiggyMetrics.git (push)
//加入新的远端分支 名字随便取,我取作者的名字sgshq
$ git remote add sqshq https://github.com/sqshq/PiggyMetrics.git
//再次查看远端分支
$ git remote -v
origin https://github.com/Luckylau/PiggyMetrics.git (fetch)
origin https://github.com/Luckylau/PiggyMetrics.git (push)
sqshq https://github.com/sqshq/PiggyMetrics.git (fetch)
sqshq https://github.com/sqshq/PiggyMetrics.git (push)
==============================================================
开始保持同步的操作
//把原项目更新的内容fetch到本地
$ git fetch sqshq
From https://github.com/sqshq/PiggyMetrics
* [new branch] master -> sqshq/master
//查看分支
$ git branch -av
* master 914ed47 Merge pull request #17 from ddubson/master
remotes/origin/HEAD -> origin/master
remotes/origin/master 914ed47 Merge pull request #17 from ddubson/master
remotes/sqshq/master 914ed47 Merge pull request #17 from ddubson/master
//合并
$ git checkout master
Already on 'master'
Your branch is up-to-date with 'origin/master'.
$ git merge sqshq/master
Already up-to-date.
//推到github
git push -u origin master
Luckylau's Blog

你懂网络吗(4)

发表于 2017-06-07 | 分类于 网络

本文主要是基于学习《CCNA学习指南》总结网络必备的知识。

本篇章涉及以下内容:

网络的工作原理

实现 IP 编址方案和 IP 服务,以满足中型企业分支机构网络的网络需求

子网划分基础

​ 如果要使用一个网络地址创建 6 个网络,该如何办呢?必须进行子网划分,它让你能够将大型网络划分成一系列小网络。

好处在于:

减少网络流量

优化网络性能

简化管理

有助于覆盖大型地理区域

阅读全文 »
Luckylau's Blog

Java虚拟机之类的加载器机制与过程

发表于 2017-06-02 | 分类于 java

JVM类加载器机制与类加载过程

修改内容 时间
初始化 2017-6-02
丰富 2017-7-14

java是一种动态语言

​ 我们都知道JVM(java虚拟机)执行的不是本地机器码指令,而是执行一种称之为字节码的指令(存在于class文件中)。这就要求虚拟机在真正执行字节码之前,先把相关的class文件加载到内存中。虚拟机不是一次性加载所有需要的class文件,因为它在执行的时候根本不会知道以后会用到哪些class文件。它是每用到一个类,就会在运行时“动态地”加载和这个类相关的class文件。这就是java被称之为动态性语言的根本原因。除了动态加载类之外,还会动态的初始化类,对类进行动态链接。其中在JVM中负责对类进行加载的正是本文要介绍的类加载器(ClassLoader),所以,类加载器是JVM不可或缺的重要组件。

阅读全文 »
Luckylau's Blog

Java虚拟机之运行时数据区

发表于 2017-06-01 | 分类于 java
修改内容 时间
初版 2017-06-01
内存泄漏和访问堆中对象 2017-07-06

Java运行时数据区,探秘虚拟机内存管理

​ JVM就是一个特殊的进程, 我们执行的java程序, 都运行在一个JVM进程中, 这个进程的作用就是加载class文件, 并且执行class文件中的代码。既然虚拟机作为一个虚拟的计算机, 来执行我们的程序, 那么在执行的过程中, 必然要有地方存放我们的代码(class文件); 在执行的过程中, 总会创建很多对象, 必须有地方存放这些对象; 在执行的过程中, 还需要保存一些执行的状态, 比如, 将要执行哪个方法, 当前方法执行完成之后, 要返回到哪个方法等信息, 所以, 必须有一个地方来保持执行的状态。 上面的描述中, “地方”指的当然就是内存区域, 程序运行起来之后, 就是一个动态的过程, 必须合理的划分内存区域, 来存放各种数据。

​ JVM运行时数据区(JVM Runtime Area)其实就是指JVM在运行期间,其对计算机内存空间的划分和分配。

JVM的体系结构

阅读全文 »
Luckylau's Blog

Java虚拟机之理解Class文件

发表于 2017-05-26 | 分类于 java

深入理解Java Class文件格式

Class文件的位置和作用

​ JVM不会理解我们写的Java源文件, 我们必须把Java源文件编译成class文件, 才能被JVM识别, 对于JVM而言, class文件相当于一个接口, 理解了这个接口, 能帮助我们更好的理解JVM的行为;另一方面, class文件以另一种方式重新描述了我们在源文件中要表达的意思, 理解class文件如何重新描述我们编写的源文件, 对于深入理解Java语言和语法都是很有帮助的。

在整个Java技术体系结构中, class文件处于中间的位置, 对于理解整个体系有着承上启下的作用。

阅读全文 »
1…242526…36
Luckylau

Luckylau

人生识字忧患始

215 日志
14 分类
33 标签
GitHub Weibo
© 2017 - 2022 Luckylau
由 Hexo 强力驱动
主题 - NexT.Pisces