JDK 8新特性之Lambda表达式的基本语法
学习笔记 : JDK 8新特性之Lambda表达式的基本语法简介Lambda表达式 : 在Java8语言中引入的一种新的语言元素和操作符,这个操作符为->,该操作符被称为Lambda操作符或箭头操作符,它将Lambda分为以下两个部分
左侧 : 指定Lambda表达式需要的参数列表
右侧 : 制定了Lambda体,是抽象方法的实现逻辑,也既Lambda表达式要执行的功能
特征
可选类型声明 : 不需要声明参数类型,编译器可以统一识别参数值
可选的参数圆括号 : 一个参数无需定义圆括号,但多个参数需要定义圆括号
可选的大括号 : 如果主体包含了一个语句,就不需要使用大括号
可选的返回关键字 : 如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值
语法
语法格式一 : 无参,无返回值
1Runnable runnable = () -> System.out.println("Hello Lambda1 !");
语法格式二 : Lambda需要一个参数,但是没有返回值
12//可以简写为: Consumer< ...
Java项目开发中PO,BO,VO,DTO,POJO,DAO的概念及其作用
学习笔记 : Java项目开发中PO,BO,VO,DTO,POJO,DAO的概念及其作用最近参与了GitHub上的一个开源项目 : 一个简洁优美的Springboot集成Shiro的权限管理系统, 项目中无论是模块的划分,还是结构的分层,都让我眼前一亮! 既而代码的功能被理所当然地划分的非常有层次感,可见作者的编程设计水平实属厉害啊~ 下面来一起学习下Java项目开发中 PO, BO, VO, DTO, POJO, DAO 的概念及其作用吧~
PO(bean、entity等命名)Persistant Object持久对象 : 数据库表中的记录在Java对象中的显示状态. 最形象的理解就是一个PO就是数据库中的一条记录,好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象
BO(service、manager、business等命名)Business Object业务对象 : 主要作用是把业务逻辑封装为一个对象. 这个对象可以包括一个或多个其它的对象,形象描述为一个对象的形为和动作,当然也有涉及到基它对象的一些形为和动作. 比如处理一个人的业务逻辑,有睡觉,吃饭,工作,上班等等形 ...
SpringBoot整合FreeMarker
学习笔记 : Spring Boot整合FreeMarkerFreeMarker官方简介Apache FreeMarker™ is a template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data. Templates are written in the FreeMarker Template Language (FTL), which is a simple, specialized language (not a full-blown programming language like PHP). Usually, a general-purpose programming language (like Java) is used to prepare the data (issue database queries, do b ...
Lombok简介及基本使用
学习笔记 : Lombok简介及基本使用简介问题引入 : 开发中经常需要写的JavaBean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误哟~
Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法. 出现的神奇就是在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法. 这样就省去了手动重建这些代码的麻烦,既而达到简化代码,提高开发人员的开发效率的目的
优点 :
能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率
让代码变得简洁,不用过多的去关注相应的方法
属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等
缺点 :
不支持多种参数构造器的重 ...
详解在IDEA中多处设置JDK及其区别
学习笔记 : IDEA为何多处设置JDK,有什么区别呢 ?设置编译器的版本编译器的版本,既生成class文件的jdk版本 : Settings > Build,Execution,Deployment > Complier > Java Compiler
设置Modules中的SDK和language level版本这里选择Modules中的SDK和language level的默认版本 : Project Structure > Project Settings > Project
注意 : Language Level为限定项目编译检查时最低要求的 JDK 特性
设置项目实际的Language Level版本Project Structure > Project Settings > Modules > Sources
设置项目实际的SDK版本相比整个工程设置语言级别可以更加地精确控制 : Project Structure > Project Settings > Modules > Depende ...
一个基础的的SSM整合Shiro案例
学习笔记 : 一个基础的的SSM整合Shiro案例前些日子写了一个基础的SpringBoot整合Shiro案例,然后又进阶地学习了SSM整合Shiro的基本知识,继而今天总结一下 : 写一个基础的SSM整合Shiro案例(该案例与上述案例思路相同)~ 该案例的代码仓库 : https://github.com/YUbuntu0109/Shiro-learning/tree/master/ssm%20project%20with%20shiro
数据库设计数据库ER图如下所示 :
数据表中用户及其分配的权限信息如下所示 :
账户
密码(MD5加密前)
角色
权限
admin
demo
admin
*
tea
demo
teacher
teaListView:view , stuListView:view , stuListView:add , stuListView:edit
stu
demo
student
stuListView:view
案例截屏解析用户登录页面,访问资源前必须先进行用户身份认证,详情参考资源拦截器中的配置信息哟
若要访问教师 / 学 ...
详解JSP中Shiro标签的使用
学习笔记 : 详解JSP中Shiro标签的使用Apache Shiro provides a Subject-aware JSP/GSP tag library that allows you to control your JSP, JSTL or GSP page output based on the current Subject’s state. This is quite useful for personalizing views based on the identity and authorization state of the current user viewing the web page. For more information, please refer to : http://shiro.apache.org/web.html#Web-taglibrary
Tag Library ConfigurationThe Tag Library Descriptor (TLD) file is bundled in shiro-web.jar in the M ...
SSM整合Shiro的基本配置
学习笔记 : SSM整合Shiro的基本配置学习Spring Boot整合Shiro知识后,写了一个简单的Spring Boot整合Shiro的权限管理案例,可随后在GitHub上发现了一个基于SSM框架简单的后台权限管理系统,很喜欢该项目(比较初级,适合练手),所以又开始学习如何在SSM中整合Shiro,Spring集成Shiro一般通过的 xml 配置,相比Spring Boot较为繁琐哟~ 以下基本配置信息摘自案例 : 一个简单的SSM整合Shiro的权限管理案例
Maven依赖Shiro-learning/ssm project with shiro/ssm-shiro/pom.xml
123456789101112<!-- Shiro --><dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.1</version>&l ...
GitHub中emoji表情的含义及使用规范
学习笔记 : GitHub中emoji表情的含义及使用规范日语 : 絵文字/えもじ emoji,是日本在无线通信中所使用的视觉情感符号,绘指图画,文字指的则是字符,可用来代表多种表情,如笑脸表示笑、蛋糕表示食物等. emoji 频繁地出现在我们的聊天记录、朋友圈、甚至很多时候我们都会用 emoji 代替文字来聊天,既而来传达自己想要表达的一切,作为一名程序员,常用的代码托管平台 GitHub 中也是可以使用 emoji 表情的哟~ 😜
执行git commit时使用 emoji 为本次提交打上一个标签, 使得此次 commit 的主要工作得以凸现,也能够使得其在整个提交历史中易于区分与查找,添加了 emoji 表情的提交记录真的能包含很多有用信息,阅读体验非常棒. 但是,emoji 表情在提交代码的时候也不能乱用,否则容易造成误解. 因此开源项目 gitmoji 专门规定了在 GitHub 提交代码时应当遵循的 emoji 规范~ 更多信息请参考 : https://github.com/carloscuesta/gitmoji/
emoji
emoji代码
commit ...
Git Commit Message 规范
学习笔记 : Git Commit Message规范Git Commit Message 应该清晰明了,要用精简的语言说明本次提交的目的,其主要作用是为了后续的搜索、版本的回滚、合并冲突的追溯等操作~
规范介绍这次主要介绍 AngularJS 的规范,它是由 Google 推出的一套提交消息规范标准,也是目前使用范围最广的规范,比较合理和系统化,并且还有配套的工具可以供我们使用,规范执行方案如下 :
格式要求12345<type>(<scope>): <subject><BLANK LINE><body><BLANK LINE><footer>
消息只占用一行,任何行都不能超过 100 个字符
允许使用 GitHub 以及各种 Git 工具阅读消息
提交消息由页眉、正文和页脚组成,由空行分隔
HeaderHeader部分只有一行,包括三个字段 : type(必需)、scope(可选)、和subject(必需)
type代表某次提交的类型,比如是修复一个 bug 或是增加一个 feature ...