- 浏览: 48840 次
- 性别:
- 来自: 广州
最新评论
-
hsluoyz:
现在新推出了一个权限框架,叫jCasbin(https://g ...
扩展RBAC用户角色权限设计方案 -
江川河:
rongxh,您好RBAC模型里面,User-Role-Per ...
扩展RBAC用户角色权限设计方案 -
di1984HIT:
写的很好啊~
扩展RBAC用户角色权限设计方案 -
liyonghui160com:
ming_02 写道ming_02 写道ming_02 写道m ...
扩展RBAC用户角色权限设计方案 -
ming_02:
ming_02 写道ming_02 写道ming_02 写道x ...
扩展RBAC用户角色权限设计方案
文章列表
const出现在星号左边,表示被指物是常量; const出现在星号右边,表示指针本身是常量。
char name[] = "rongxinhua";
char name2[] = "tommer";
char *p1 = name; //非常量指针
const char *p2 = name; //指向常量的指针(不可改变指针所指的对象)
//char const *p2 = name; //同上
char *const p3 = name; //常量指针(不能重新指向其他对象)
const char *const p ...
不管是资源(Resource),还是资源加载器(ResourceLoader),Spring都把它定义成了接口的形式,而不是类的形式。这样降低了与具体的实现类之间的耦合,更具灵活性与易扩展性。它们的关系图如下:
且看ResourceLoader的getResource(String location)方法的声明:
/**
* Return a Resource handle for the specified resource.
* The handle should always be a reusable resource descriptor,
* al ...
【方法区】存放要加载的类的信息(名称、修饰符等)、类中的静态变量、类中final类型的常量、类中的Field信息、类中的方法信息,方法区域是全局共享的。OutOfMemory。
【堆Heap】存储对象实例和数组值,Heap中对象所占用的内存由GC回收。OutOfMemory。
【新生代】大多数new的对象,都从新生代中分配内存;
【旧生代】经过多次垃圾回收仍然存活的对象,如缓存对象,新建的对象也可能在旧生代中分配内存:大对象,大的数组对象。
【本地方法栈】用于支持native方法的执行
【PC寄存器】每个线程会创建PC寄存器和JVM方法栈。
【JVM方法栈】线 ...
类加载机制是指.class文件加载到JVM,并形成Class对象的机制,之后就可以对Class对象进行实例化并调用。
类加载过程分为如下3个步骤:
【装载(Load)】:将二进制字节码加载到JVM中。
怎样标识一个被加载了的类?类的全限定名+ClassLoader实例ID。
a. 对于接口和非数组型的类,由该接口(类)所在的ClassLoader加载;
b. 对于数组,数组中的元素的类,由该类所在ClassLoader加载,而数组类则由JVM直接创建。
注:数组型的类名称:“[基本类型”,如“[B”; “[L引用类型类名”,如“[Ljava.lang.Object”。
...
ThreadLocal是什么?看Java源码中的描述:
This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (via its get or set method) has its own, independently initialized copy of the variable. ThreadLocal instances are typically private ...
记得JavaEye上有一位牛人用JavaScript封装过Ajax,在他发文的几个月前,我也写个这样的封装。诚然,我写的没有他写的功能全面与封装完美,我的属于简单的方法封装,没有用到面向对象的思想。贴一下我的代码,对于一般的Ajax请求也够用。
我提供了post和get这两种请求方式,方法命名用了易于记忆的"doGet"和"doPost",用法上,类似于Jquery的get方法和post方法,只是没有用到JavaScript的面向对象编程而已。
先看下两个简单的用法:
//异步Get请求
var url1 = "user ...
【构造方法】
ArrayList通过数组来存储对象,构造ArrayList会新建一个数组。默认情况下这个数组的初始化大小是10,可通过传入参数initialCapacity修改它的初始化大小。(See Code)
private transient Object[] elementData;
public ArrayList(int initialCapacity) {
super();
if (initialCapacity < 0)
throw new IllegalArgumentException ...
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)
角色是什么?可以理解为一定数量的权限的集合,权限的载体。例如:一个论坛系统,“超级管理员”、“版主”都是角色。版主可管理版内的帖子、可管理版内的用户等,这些是权限。要给某个用户授予这些权限,不需要直接将权限授予用户,可将“版主”这个角色赋予该用户。
当用户的数量非常大时,要给系统每个用户逐一 ...
在使用Struts2、WebWork框架开发Web应用时,JSP页中的表单项,常常会使用这样的参数名:
<input type="text" name="person.username" />
<input type="password" name="person.password" />
甚至,可以有更多层次的,如:
<input type="text" name="person.username.firstname" />
...
#include<stdio.h>
#include<stdlib.h>
#define SIZE 4
#define FILENAME "person"
struct person
{
int id;
char name[10];
};
int main()
{
void copyContent(char inFileName[], char outFileName[]);
void savePerson(struct person psons[], int size, char fileN ...
#include<stdio.h>
int main()
{
void method1(int& val);
void method2(int* addr);
void swap(int* val1, int* val2);
printf("Test 1 ...\n");
//默认情况下,num是一个变量(值)
int val = 7;
printf("原始的值为:%d\n", val);
method1(val);
printf("method1后的值:%d\n&qu ...
JDK1.5引进了方法的可变参数,受到许多开发人员的青睐。有了这种机制,我们可以写出类似于JavaScript的arguments那样的带任意多个参数的方法。Java的可变参数,可用于普通方法上,也可以用于构造方法上,大大增大了我们所写方法的适用范围。
然而,使用可变参数时,要注意几个问题:
1) 可变参数方法与数组参数方法重载时
public class MethodParams{
//带可变参数的方法
public void hello(String ...params) {
System.out.println("执行带可变参数的方法,参数个数为: ...
代理模式,相信大多数人都非常熟悉,常见的实现方式是通过公共接口的方式,让我们的目标类和代理类实现同一接口,在代理类中调用目标类对象的方法。具体请看我另一个博客中的文章:Java的代理模式(通过公共接口实现) 。通过接口的方式,有个不好的地方,就是对每个目标类都要写一对与之相对应的接口和代理类,如果业务类很多,就是非常繁锁的工作了。
而加入反射机制的代理模式,可实现一个公共的代理类,省去我们不少功夫。Java的java.lang.reflect包及其子包中提供了Class、Method、Annotation等有用的类。下面,写个方法代理的类MethodProxy,实现动态地 ...
开发Java Web项目时,如果不采用Struts、WebWork、SpringMVC等MVC框架,而使用原始的Servlet API时,该怎么开发呢?
Struts 1.x采用了一个有“总控制器”作用的Servlet处理所有的请求,而Struts 2.x则采用了Filter。两者各有优 ...
现在JavaWeb领域,MVC框架越来越多,比较出名的有Struts、Struts2、SpringMVC、WebWork等。而Ajax,作为一种与特定的动态Web编程语言(如Java、C#、PHP)无关的技术,也已经被引入到了Java MVC框架的各家各户。而这些MVC框架,归根到底,都是对Servlet技术的封装。同时,支持Ajax的JavaScript框架(or类库)也越来越多,出名的如Jquery、Ext、