更新整理本人所有博文中提供的代码与工具(Java,2014.01)

DuMiYue 2014-01-20 11:00:53
加精
为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载。

Java

1、《高效 Java Web 应用开发框架 JessMA v3.3.1 正式发布》

  摘要:JessMA(原名:Portal-Basic)是由 JessMA Open Source 开发的一套高效 Java Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate、MyBatis 与 JDBC DAO 组件),集成了 Action 拦截、Form / Dao / Spring Bean 装配、国际化、文件上传下载和页面静态化等基础 Web 应用组件,提供高效灵活的纯 Jsp/Servlet API 编程模型,可完美整合 Spring,支持 Action Convention,能快速开发传统风格和 RESTful 风格应用程序,文档和示例完善,非常容易学习。

  资源下载地址:请访问项目主页 ^_*

2、《用 Java 实现的日志切割清理工具(源代码下载)》

  摘要:对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能。如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求。例如:如何在每个星期六凌晨3点把超过2G大的日志文件进行切割,保留最新的100M日志记录?网上没有发现能满足本座要求的日志切割工具,因此花了一些闲暇时间自己写了一个。由于要在多个平台上使用,为了方便采用 Java 实现。本工具命名为 LogCutter,主要有以下特点:

1、支持 Linux、Mac 和 Windows 等所有常见操作系统平台
2、支持命令行交互式运行
3、支持后台非交互式运行(Linux/MAC 下使用 daemon 进程实现,Windows 用系统 Service 实现)
4、支持三种日志清理方式(删除、切割或归档日志文件)
5、支持对 GB18030、UTF-8、UTF-16LE、UTF-16BE 等常用日志文件类型进行切割(不会发生切掉半个字符的情况)
6、高度可配置(程序执行周期、要删除的日志文件过期时间、要切割的日志文件阀值和保留大小等均可配置

  资源下载地址:http://www.oschina.net/p/log-cutter (源代码在 LogCutter.zip 中)

3、《通用 Java 文件上传和下载组件的设计与实现》

  摘要:文件上传和下载是 Web 应用中的一个常见功能,相信各位或多或少都曾写过这方面相关的代码。但本座看过不少人在实现上传或下载功能时总是不知不觉间与程序的业务逻辑纠缠在一起,因此,当其他地方要用到这些功能时则无可避免地 Copy / Pase,然后再进行修改。这样丑陋不堪的做法导致非常容易出错不说,更大的问题是严重浪费时间不断做重复类似的工作,这是本座绝不能容忍的。哎,人生苦短啊,浪费时间在这些重复工作身上实在是不值得,何不把这些时间省出来打几盘罗马或者踢一场球?为此,本座利用一些闲暇之时光编写了一个通用的文件上传和文件下载组件,实现方法纯粹是基于 JSP,没有太高的技术难度,总之老少咸宜 ^_^。现把设计的思路和实现的方法向各位娓娓道来,希望能起到抛砖引玉的效果,激发大家的创造性思维。

  资源下载地址:http://code.google.com/p/portal-basic/downloads/list (作为 JessMA 的一部分,代码在 org.jessma.util.http 包的 FileUploader 和 FileDownloader 中)

4、《深度剖析:Java POJO Bean 对象与 Web Form 表单的自动装配》

  摘要:时下很多 Web 框架 都实现了 Form 表单域与 Java 对象属性的自动装配功能,该功能确实非常有用,试想如果没这功能则势必到处冲积着 request.getParameter() 系列方法与类型转换方法的调用。重复代码量大,容易出错,同时又不美观,影响市容。现在的问题是,这些框架通过什么方法实现自动装配的?如果不用这些框架我们自己如何去实现呢?尤其对于那些纯 JSP/Servlet 应用,要是拥有自动装配功能该多好啊!本座深知各位之期盼,决定把自动装配的原理和实现方法娓娓道来。

  资源下载地址:http://code.google.com/p/portal-basic/downloads/list (作为 JessMA 的一部分,代码在 org.jessma.BeanHelper 中)
...全文
4961 58 打赏 收藏 转发到动态 举报
写回复
用AI写文章
58 条回复
切换为时间正序
请发表友善的回复…
发表回复
DuMiYue 2014-04-18
  • 打赏
  • 举报
回复
沉了!?~~~~
DuMiYue 2014-03-24
  • 打赏
  • 举报
回复
引用 66 楼 Jucbt 的回复:
commons-fileupload-1.3.jar commons-io-2.4.jar 服务器为tomcat6.0
<form action="/smh/la/upload_file" method="POST" enctype="multipart/form-data">
	文件<input type="file" name="file"/>
	<input type="submit" value="提交">
</form>
还是一样阿,后台java代码无任务报错,但是就是拿不到文件。 我觉得你有一部分隐藏的代码是否跟我环境有冲突的地方,毕竟我的jar跟你的不一样,或许你的代码无法集成spring mvc使用,只适用于你ActionSupport。。。。我装了反编译插件,发现你ActionSupport里面反编译会有问题。 ActionSupport.class
/*jode*/


/***** DECOMPILATION REPORT *****
	LOCATION: D:\likunming\workspace\MyJessMA\WebRoot\WEB-INF\lib\jessma-3.3.1.jar!org.jessma.mvc.ActionSupport
	TOTAL TIME: 0 ms

	CAUGHT EXCEPTIONS:
java.lang.NoClassDefFoundError: org.jessma.mvc.ActionSupport
	at jode.bytecode.ClassInfo.loadInfo(ClassInfo.java:631)
	at jode.decompiler.ClassAnalyzer.<init>(ClassAnalyzer.java:86)
	at jode.decompiler.ClassAnalyzer.<init>(ClassAnalyzer.java:123)
	at jode.decompiler.ClassAnalyzer.<init>(ClassAnalyzer.java:128)
	at net.sourceforge.jode.JodeDecompiler.decompile(JodeDecompiler.java:72)
	at net.sourceforge.jode.JodeSourceMapper.findSource(JodeSourceMapper.java:82)
	at net.sourceforge.jode.JodeSourceMapper.findSource(JodeSourceMapper.java:65)
	at net.sourceforge.jode.JodeClassFileEditor.doOpenBuffer(JodeClassFileEditor.java:104)
	at net.sourceforge.jode.JodeClassFileEditor.init(JodeClassFileEditor.java:70)
	at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:828)
	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:647)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
	at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850)
	at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842)
	at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2764)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:368)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:174)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:249)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:228)
	at org.eclipse.jdt.internal.ui.javaeditor.JavaElementHyperlink.open(JavaElementHyperlink.java:77)
	at org.eclipse.jface.text.hyperlink.HyperlinkManager.mouseUp(HyperlinkManager.java:429)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:219)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

 ********************************/
你的这儿actionSupport.java是古老的床说中的status吗?
1、要想反编译用JD-GUI即可。 2、不知是否和SpringMVC有冲突,以前有人尝试用在Struts2中使用这个上传组件,后来发现Struts2的拦截器把文件上传的请求拦截了,得不到文件,最后用Servlet来解决的。你尝试建立一个不用任何框架的普通web project测试一下。或者在工程中定义一个Servlet,不经过spring上传试试。
Jucbt 2014-03-24
  • 打赏
  • 举报
回复
commons-fileupload-1.3.jar
commons-io-2.4.jar
服务器为tomcat6.0
<form action="/smh/la/upload_file" method="POST" enctype="multipart/form-data">
文件<input type="file" name="file"/>
<input type="submit" value="提交">
</form>

还是一样阿,后台java代码无任务报错,但是就是拿不到文件。
我觉得你有一部分隐藏的代码是否跟我环境有冲突的地方,毕竟我的jar跟你的不一样,或许你的代码无法集成spring mvc使用,只适用于你ActionSupport。。。。我装了反编译插件,发现你ActionSupport里面反编译会有问题。
ActionSupport.class
/*jode*/


/***** DECOMPILATION REPORT *****
LOCATION: D:\likunming\workspace\MyJessMA\WebRoot\WEB-INF\lib\jessma-3.3.1.jar!org.jessma.mvc.ActionSupport
TOTAL TIME: 0 ms

CAUGHT EXCEPTIONS:
java.lang.NoClassDefFoundError: org.jessma.mvc.ActionSupport
at jode.bytecode.ClassInfo.loadInfo(ClassInfo.java:631)
at jode.decompiler.ClassAnalyzer.<init>(ClassAnalyzer.java:86)
at jode.decompiler.ClassAnalyzer.<init>(ClassAnalyzer.java:123)
at jode.decompiler.ClassAnalyzer.<init>(ClassAnalyzer.java:128)
at net.sourceforge.jode.JodeDecompiler.decompile(JodeDecompiler.java:72)
at net.sourceforge.jode.JodeSourceMapper.findSource(JodeSourceMapper.java:82)
at net.sourceforge.jode.JodeSourceMapper.findSource(JodeSourceMapper.java:65)
at net.sourceforge.jode.JodeClassFileEditor.doOpenBuffer(JodeClassFileEditor.java:104)
at net.sourceforge.jode.JodeClassFileEditor.init(JodeClassFileEditor.java:70)
at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:828)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:647)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850)
at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2764)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:368)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:174)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:249)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:228)
at org.eclipse.jdt.internal.ui.javaeditor.JavaElementHyperlink.open(JavaElementHyperlink.java:77)
at org.eclipse.jface.text.hyperlink.HyperlinkManager.mouseUp(HyperlinkManager.java:429)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:219)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

********************************/

你的这儿actionSupport.java是古老的床说中的status吗?
DuMiYue 2014-03-20
  • 打赏
  • 举报
回复
引用 64 楼 Jucbt 的回复:
楼主,看了你说的如何才能重用还有组件的可用性如何两个问题之后我深深的被你打动了,屁颠屁颠的用公司破网络将30000000+字节的3.3.1_all.zip整个down下来,结果我裤子都脱了,发现用不了,你说怎么办?后台spring3.2 mvc做controller。。。前端用Extjs 3.4发现不行我还以为Extjs用不了结果换成html,还是一样,你给看下我调用的代码是否有误,主要我装了编译之后还是无法打开你的源码,目测是打jar包出了问题或者做了手脚。

@RequestMapping("/upload_file")
    private @ResponseBody Map<String, Object> uploadFile(HttpServletRequest request, HttpServletResponse response) {
    	Map<String, Object> map = new HashMap<String, Object>();
    	//保存文件路径
    	String savePath="D:/likunming/lkm_file_temp";
    	//能上传的文件类型
    	String[] acceptTypes=new String[]{"jpg","png","bmp","gif"};
    	//一次上传最大10MB
    	long sizeMax=1024 * 1024 * 10;
    	//单个文件最大5MB
    	long fileSizeMax=1024 * 1024 * 5;
    	String cause;
		try {
			FileUploader fileUploader=new FileUploader(savePath, acceptTypes, sizeMax, fileSizeMax);
			// 执行上传并获取操作结果
			Result result = fileUploader.upload(request,response);
			// 检查操作结果
			if(result != FileUploader.Result.SUCCESS){
				// 获取失败描述
				cause = fileUploader.getCause().toString();
				// 记录日志
				LOGGER.error("upload file fail",fileUploader.getCause());
				map.put("failure", true);
				map.put("fail",cause);
				return map;
			}
			// 通过非文件表单域创建 VO
			//person	= BeanHelper.createBean(Person.class, fu.getParamFields());
			// 附件名称列表
			List<String> photos	= new ArrayList<String>();
			/* 轮询文件表单域 */
			Set<String> keys = fileUploader.getFileFields().keySet();
			for(String key : keys){
				FileInfo[] ffs = fileUploader.getFileFields().get(key);
				for(FileInfo ff : ffs){
					photos.add(String.format("[%s] %s%s%s", key, fileUploader.getSavePath(), File.separator, ff.getSaveFile().getName()));
				}
			}
			// 设置 VO 的 photos 属性
			//person.setPhotos(photos);
			map.put("success", true);
		} catch (Exception e) {
			LOGGER.error("Exception {}", e);
		}
		return map;
    }
result为success,问题就出在Set<String> keys = fileUploader.getFileFields().keySet(); 这一句得到的一直是空的。 另说明整个3.3.1_all我只把其中 jessma-3.3.1.jar jessma-ext-guice-3.3.1.jar jessma-ext-rest-3.3.1.jar jessma-ext-spring-3.3.1.jar 加入到了项目中。 -----------------------------------------------------------求解释。
1、文件上传只需要jessma-3.3.1.jar,但依赖于 commons-file-upload.jar 和 commons-io.jar,请确认是否加入了。 2、文件上传form的enctype必须设置为"multipart/form-data",请确认是否设置正确。
Jucbt 2014-03-19
  • 打赏
  • 举报
回复
楼主,看了你说的如何才能重用还有组件的可用性如何两个问题之后我深深的被你打动了,屁颠屁颠的用公司破网络将30000000+字节的3.3.1_all.zip整个down下来,结果我裤子都脱了,发现用不了,你说怎么办?后台spring3.2 mvc做controller。。。前端用Extjs 3.4发现不行我还以为Extjs用不了结果换成html,还是一样,你给看下我调用的代码是否有误,主要我装了编译之后还是无法打开你的源码,目测是打jar包出了问题或者做了手脚。

@RequestMapping("/upload_file")
    private @ResponseBody Map<String, Object> uploadFile(HttpServletRequest request, HttpServletResponse response) {
    	Map<String, Object> map = new HashMap<String, Object>();
    	//保存文件路径
    	String savePath="D:/likunming/lkm_file_temp";
    	//能上传的文件类型
    	String[] acceptTypes=new String[]{"jpg","png","bmp","gif"};
    	//一次上传最大10MB
    	long sizeMax=1024 * 1024 * 10;
    	//单个文件最大5MB
    	long fileSizeMax=1024 * 1024 * 5;
    	String cause;
		try {
			FileUploader fileUploader=new FileUploader(savePath, acceptTypes, sizeMax, fileSizeMax);
			// 执行上传并获取操作结果
			Result result = fileUploader.upload(request,response);
			// 检查操作结果
			if(result != FileUploader.Result.SUCCESS){
				// 获取失败描述
				cause = fileUploader.getCause().toString();
				// 记录日志
				LOGGER.error("upload file fail",fileUploader.getCause());
				map.put("failure", true);
				map.put("fail",cause);
				return map;
			}
			// 通过非文件表单域创建 VO
			//person	= BeanHelper.createBean(Person.class, fu.getParamFields());
			// 附件名称列表
			List<String> photos	= new ArrayList<String>();
			/* 轮询文件表单域 */
			Set<String> keys = fileUploader.getFileFields().keySet();
			for(String key : keys){
				FileInfo[] ffs = fileUploader.getFileFields().get(key);
				for(FileInfo ff : ffs){
					photos.add(String.format("[%s] %s%s%s", key, fileUploader.getSavePath(), File.separator, ff.getSaveFile().getName()));
				}
			}
			// 设置 VO 的 photos 属性
			//person.setPhotos(photos);
			map.put("success", true);
		} catch (Exception e) {
			LOGGER.error("Exception {}", e);
		}
		return map;
    }
result为success,问题就出在Set<String> keys = fileUploader.getFileFields().keySet(); 这一句得到的一直是空的。 另说明整个3.3.1_all我只把其中 jessma-3.3.1.jar jessma-ext-guice-3.3.1.jar jessma-ext-rest-3.3.1.jar jessma-ext-spring-3.3.1.jar 加入到了项目中。 -----------------------------------------------------------求解释。
咖啡机 2014-03-18
  • 打赏
  • 举报
回复
关注中,如果数字不够,我会说粗口的。
ssxgs 2014-03-16
  • 打赏
  • 举报
回复
JessMA web框架非常好用,值得学习~~
DuMiYue 2014-03-13
  • 打赏
  • 举报
回复
引用 51 楼 u013761636 的回复:
我来学习下
THX ~~~
DuMiYue 2014-03-10
  • 打赏
  • 举报
回复
引用 53 楼 u013774160 的回复:
谢谢啊,资料很好
敬请关注~~~
DuMiYue 2014-03-06
  • 打赏
  • 举报
回复
引用 58 楼 u012520284 的回复:
好东西,绝对好用!!!
必须的!!!
777517 2014-03-04
  • 打赏
  • 举报
回复
好东西,绝对好用!!!
DuMiYue 2014-03-03
  • 打赏
  • 举报
回复
引用 54 楼 AS_MSDN 的回复:
非常感谢你的共享精神
good!!!!!
DuMiYue 2014-02-26
  • 打赏
  • 举报
回复
引用 54 楼 AS_MSDN 的回复:
非常感谢你的共享精神
you are welcome ...
DuMiYue 2014-02-26
  • 打赏
  • 举报
回复
引用 54 楼 AS_MSDN 的回复:
非常感谢你的共享精神
DuMiYue 2014-02-25
  • 打赏
  • 举报
回复
引用 51 楼 u013761636 的回复:
我来学习下
快快用起来~~~~~
AS_MSDN 2014-02-25
  • 打赏
  • 举报
回复
非常感谢你的共享精神
LIUQiaoA 2014-02-25
  • 打赏
  • 举报
回复
谢谢啊,资料很好
厚德物语 2014-02-24
  • 打赏
  • 举报
回复
我来学习下
DuMiYue 2014-02-24
  • 打赏
  • 举报
回复
引用 47 楼 long111 的回复:
up up up ~~
DuMiYue 2014-02-18
  • 打赏
  • 举报
回复
引用 41 楼 mengjunquan 的回复:
楼主好同志啊,代表党和人民及程序员兄弟感谢你啊,谢谢分享哦
顶一下吧,别沉了。。。
加载更多回复(38)
免费试听地址:B站搜索JeeGit观看《JeeSite4.x数据权限教程》、《JeeSite1.2.7系列基础教程》、《JeeSite4.x系列基础教程》等相关课程! 郑重声明:购课前,请认真听完第一章 课程简介 建议实战人群直接听:第九章、第十章 学生人群、刚入门:全听       数据权限主要讲解内容包含第一章 课程简介31.1 课程目标31.2 适用人群31.3 课程简介31.4 环境要求31.5 课程知识点大全31.6 课程售价31.7 购课声明31.8 资源清单31.9 售后方式41.10 讲师介绍4第二章 权限基础42.1 权限模型概述4第三章 JeeSite权限管理模型123.1 JeeSite1.2.7 权限管理模型123.2 JeeSite4.x 权限管理模型123.3 JeeSite4.x权限设计的扩展13第四章 用户管理144.1 JeeSite4.x内置用户类型144.1.1 用户管理思路144.1.2 网站会员、员工、单位、个人登录视图配置154.2 用户数据权限类型164.3实战训练、调试、日志查看16第五章 机构管理16第六章 角色管理186.1 JeeSite4.x角色管理概述186.2 JeeSite4.x越级授权与菜单权重186.3 JeeSite4.x 越级授权可能存在的隐患极其解决方案196.4用户表如何区分非管理员、系统管理员、二级管理员206.5 角色权限注意事项206.6 角色授权数据范围使用注意事项216.7 为何用户不设置员工权限无效?236.8 岗位管理与角色分类的岗位分类与角色分类有何区别?23第七章 二级管理员23第八章 系统管理员238.1 系统管理员238.2 总结:何时使用超级管理员、系统管理员、二级管理员?23第九章 Jeesite数据权限调用239.1 JeeSite4.x数据调用基础239.2 JeeSite4.x 实现数据列权限推荐解决方案249.3多数源模式下数据权限bug简易解决方案249.4 JeeSite4.x 自定义扩展数据权限249.5支持全球地区、全球企业、全球机构、全球部门授权24第十章 JeeSite数据权限实战2410.1 案例一2410.2 案例二2410.3 案例三2510.4 案例四2510.5 案例五25第十一章 JeeSite4.x常见问题解答251.1数据权限管理的代码会公开吗,购买了能看吗?251.2 JeeSite数据权限教程是Thinkgem录制的吗?25第十二章 参考阅读2612.1、JeeSite官方文档2712.2、美国国家标准与技术研究院2712.3、国国家标准化管理委员会2712.4、ITSEC欧洲安全评价标准2812.5、百度学术2812.6、开源框架2912.6.1 JeeSite2912.6.2 Casbin2912.6.3 Eladmin2912.6.4 Spring-boot-demo2912.6.5 Jeeplatform3012.6.6 Pig3012.6.7 Jeecg-boot3012.6.8 Jfinal3012.6.9 Guns3112.6.10 Zheng3112.6.11 Cloud-Platform3112.7 博文资源31

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧