Apache Shiro(发音为shee-roh
,日语堡垒(Castle)的意思)是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障 - 从命令行应用、移动应用到大型网络及企业应用。相较于Spring Security来说较为简单,易于上手。
Apache Shiro有三个核心的概念Subject,SecurityManager和Realms,如下图所示:
Apache Shiro(发音为shee-roh
,日语堡垒(Castle)的意思)是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障 - 从命令行应用、移动应用到大型网络及企业应用。相较于Spring Security来说较为简单,易于上手。
Apache Shiro有三个核心的概念Subject,SecurityManager和Realms,如下图所示:
在pom.xml文件中,将打包方式改为war:
1 | <packaging>war</packaging> |
然后添加如下的Tomcat依赖配置,覆盖Spring Boot自带的Tomcat依赖:
1 | <dependency> |
在程序中可以使用缓存的技术来节省对数据库的开销。Spring Boot对缓存提供了很好的支持,我们几乎不用做过多的配置即可使用各种缓存实现。这里主要介绍平日里个人接触较多的Ehcache和Redis缓存实现。
Merge语句是Oracle 9i新增的语法,用来合并Update和Insert语句。通过Merge语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行Update,无法匹配的执行Insert。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于Insert+Update。
merge语句语法如下:
1 | merge into table_name t |
Oracle 中的分析函数基于对数据行的分组来计算相关值,类似于聚合函数。其和聚合函数主要的区别在于:分析函数对于每个分组返回多行数据,而聚合函数每个分组只能对应一行数据。
分析函数由三个部分组成:分区子句、排序子句和开窗子句,基本语法如下:
1 | function(arg1,arg2,...argN) |
在Oracle数据库中,我们可以创建自定义的对象类型(Object Type)。数据库的对象类型和Java中的类相似,可以包含属性和方法(函数和存储过程)。对象类型包括对象类型规范(Object Type Specification)和对象类型主体(Object Type Body)。对象类型规范用于定义对象的属性和不包含实现的方法。对象类型主体用于实现对象类型规范中定义的方法。
程序包由PL/SQL 程序元素(如变量、类型)和匿名PL/SQL 块(如游标)、命名PL/SQL 块(如存储过程和函数)组成。一个完整的程序包包含程序包规范和程序包主体,程序包规范用于规定在程序包中可以使用哪些变量、类型、游标和子程序(只包含名称没有具体实现);程序包的主体包含了在规范中声明的游标、过程和函数的实现代码。这个过程类似于在Java中定义一个包含抽象方法的接口,然后创建一个该接口的实现类。
触发器可以看做一种“特殊”的存储过程,由“触发事件”触发。所谓的“触发事件”指能够引起触发器运行的操作,包括:
1.执行DML 语句(使用INSERT、UPDATE、DELETE 语句对表或视图执行数据处理操作);
2.执行DDL语句(使用CREATE、ALTER、DROP语句在数据库中创建、修改、删除模式对象);
3.引发数据库系统事件(如系统启动或退出、产生异常错误等);
4.引发用户事件(如登录或退出数据库操作)。