摘要:
Spring Security OAuth2.0认证授权系列文章 Spring Security OAuth2.0认证授权一:框架搭建和认证测试 Spring Security OAuth2.0认证授权二:搭建资源服务 Spring Security OAuth2.0认证授权三:使用JWT令牌 前面 阅读全文
摘要:
SpringBoot+Spring Security+OAuth2.0 实现初版第三方登录效果 阅读全文
摘要:
springboot天生支持使用hibernate validation对参数的优雅校验,如果不使用它,只能对参数挨个进行如下方式的手工校验,不仅难看,使用起来还很不方便: if(StringUtils.isEmpty(userName)){ throw new RuntimeException(" 阅读全文
摘要:
使用ThreadLocal进行父子线程传值,,传了值也能取到,但是也不总是能取到,若干次之后就总是能取到了,这到底是是为什么呢? 阅读全文
摘要:
本篇文章会介绍win10中wsl2的安装和使用以及遇到的常见问题比如如何固定wsl2地址等问题的总结。 阅读全文
摘要:
一、前言 最近公司有使用阿里云消息队列的需求,为了更加方便使用,本人用了几天时间将消息队列封装成api调用方式以方便内部系统的调用,现在已经完成,特此记录其中过程和使用到的相关技术,与君共勉。 现在阿里云提供了两种消息服务:mns服务和ons服务,其中我认为mns是简化版的ons,而且mns的消息消 阅读全文
摘要:
转自 http://blog.csdn.net/hongchangfirst/article/details/44191925 一、远程debug原理 Java远程调试的原理是两个JVM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。 被debug的机 阅读全文
摘要:
一、SpringMVC中注解的使用 1.为什么要使用注解 之前曾经提到过的三种控制器在spring3.0中都已经被明确标记为过时了,spring3.0推荐使用注解的方式替代三种控制器,实际上使用注解的方式能够大大提高开发效率。 2.使用注解@RequestMapping 使用注解需要... 阅读全文
摘要:
一、SpringMVC框架概述 什么是SpringMVC?SpringMVC是一个和Struts2差不多的东西,他们的作用和性质几乎是相同的,甚至开发效率上也差不多,但是在运行效率上SpringMVC要高于Struts2;注意这里的SpringMVC很明确的指明了使用了MVC框架,Struts2也... 阅读全文
摘要:
一、MAVEN整合Eclipse MAVEN是非常优秀,但是总是要开命令行敲命令是比较不爽的,我们已经习惯了使用IDE,所以还有一种将MAVEN整合到Eclipse的方法。 详情查看:http://www.eclipse.org/m2e/,http://download.eclipse.org/... 阅读全文
摘要:
一、Maven概述 1.什么是Maven? Maven中文意思是"行家"、"专家",它是一种跨平台的项目管理工具。 2.Maven有什么作用? Maven能够实现基于Java平台的项目构建、依赖管理和项目信息管理。 3.什么是理想的项目构建? 高度自动化,跨平台,可重用组件,... 阅读全文
摘要:
一、CXF简介 CXF是Apache公司下的项目,CXF=Celtix+Xfire;它支持soap1.1、soap1.2,而且能够和spring进行快速无缝整合。 另外jax-ws是Sun公司发布的一套开发WebService服务的标准。早期的标准如jax-rpc已经很少使用,而cxf就是在新标... 阅读全文
摘要:
不考虑第三方框架,如果只使用JDK提供的API,那么可以使用三种方式调用WebService服务;另外还可以使用Ajax调用WebService服务。预备工作:开启WebService服务,使用jdk命令wsimport生成调用源代码package com.kdyzm.ws;import javax... 阅读全文
摘要:
一、WebService概述 什么是WebService,顾名思义,就是基于Web的服务,它使用Http方式接收和响应外部系统的某种请求,从而实现远程调用。WebService实际上就是依据某些标准,不关心对方使用的是何种语言,实现对外部其它应用程序提供跨平台、跨语言服务的一种技术。 使用Web... 阅读全文
摘要:
一、动态SQL 什么是动态SQL,就是在不同的条件下,sql语句不相同的意思,曾经在“酒店会员管理系统”中写过大量的多条件查询,那是在SSH的环境中,所以只能在代码中进行判断,以下是其中一个多条件查询的例子: 1 public Collection getCardsByMN(int request... 阅读全文
摘要:
一、简介 mybatis类似于hibernate,都是简化对数据库操作的框架,但是和hibernate不同的是,mybatis更加灵活,整体来说框架更小,这体现在它需要我们手写SQL语句,而hibernate则将对数据库的操作对程序员完全透明了,程序员只需要按照面向对象的思想编写代码即可,想要看s... 阅读全文
摘要:
一、项目源代码地址二、项目演示 阅读全文
摘要:
一、远程调用概述 1.远程调用的定义 在一个程序中就像调用本地中的方法一样调用另外一个远程程序中的方法,但是整个过程对本地完全透明,这就是远程调用。spring已经能够非常成熟的完成该项功能了。 2.spring远程调用的原理 客户端调用本地接口中的一个方法调用的时候将会被客户端代理... 阅读全文
摘要:
一、需求分析 调查问卷中或许每一个单击动作都会引发大量的数据库访问,特别是在参与调查的过程中,只是单击“上一页”或者“下一页”的按钮就会引发大量的查询,必须对这种问题进行优化才行。使用缓存策略进行查询缓存是降低数据库压力非常理想的方法,这里最起码能够有两种缓存方式: 1.使用hibernate的... 阅读全文
摘要:
之前说过,如果一个数据库中要存储的数据量整体比较小,但是其中一个表存储的数据比较多,比如日志表,这时候就要考虑分表存储了;但是如果一个数据库整体存储的容量就比较大,该怎么办呢?这时候就需要考虑分库了,就是建立多个数据库保存数据。这里以答案为例,就算调查对象不是很多,但是参与调查的人数非常多,那么... 阅读全文
摘要:
一、需求分析 日志数据在很多行业中都是非常敏感的数据,它们不能删除只能保存和查看,这样日志表就会越来越大,我们不可能永远让它无限制的增长下去,必须采取一种手段将数据分散开来。假设现在整个数据库需要保存的数据量比较少,但是只有日志表的数据量会很大,在这种情况下我们可以考虑使用分表策略分散保存日志数据... 阅读全文
摘要:
一、日志管理相关分析 1.日志管理是一种典型的系统级别的应用,非常适合使用spring AOP实现。 2.使用日志管理的目的:对系统修改的动作进行记录,比如对权限、角色、用户的写操作、修改操作、删除操作等 3.确定使用的通知方式:使用环绕通知。复习一下环绕通知,所谓环绕通知实际上就是AOP代理... 阅读全文
摘要:
一、角色管理 单击导航栏上的"角色管理"超链接,跳转到角色管理界面,在该界面上显示所有角色,并提供角色的增加和删除、修改超链接。 1.增加新角色(角色授权) 流程:单击增加新角色超链接->Action查询出所有的权限保存到值栈并转到添加新角色页面->填写表单并提交->Action保存表单-... 阅读全文
摘要:
一、使用反射动态添加权限在该系统中,我使用struts2的时候非常规范,访问的Action的形式都是"ActionClassName_MethodName.action?参数列表",所以可以非常方便的使用反射初始化权限表。比较关键的是获取所有Action类所在的包的方法:URL url=ClassL... 阅读全文
摘要:
一、权限计算相关分析 1.如何存储权限 首先说一下权限保存的问题,一个系统中最多有多少权限呢?一个大的系统中可能有成百上千个权限需要管理。怎么保存这么多的权限?首先,我们使用一个数字中的一位保存一种权限,那么如果现在有3600种权限需要保存,我们就需要一个3600位的数字来保存该权限,首先我们如... 阅读全文
摘要:
之前说了JFreechart的基本使用方法,包括生成饼图、柱状统计图和折线统计图的方法。现在需要将其整合到数据采集系统中根据调查结果生成三种不同的统计图。一、统计模型的分析和设计 实现统计图显示的流程:单击导航栏中的“我的调查”超链接->在调查列表中单击指定的调查中的“分析”超链接->统计Acti... 阅读全文
摘要:
之前已经实现了数据的采集,现在已经有了基本的数据,下一步就需要使用这些数据实现统计图的绘制了。这里使用Jfreechart实现这些统计图的绘制。首先看一下Jfreechart的基本用法,只有知道了它的基本用法才有可能实现对更为复杂的统计图的绘制。这里主要使用了它的三种绘制方式,绘制饼图、折线图和柱状... 阅读全文
摘要:
一、参与调查的流程 单击导航栏上的“参与调查”按钮->EntrySurveyAction做出相应,找到所有的Survey对象并转发到显示所有survey对象的页面上供用户选择->用户单击其中一个调查进入调查页面->页面提供上一页、下一页、退出、保存等按钮供用户选择->用户单击退出直接返回到显示所有... 阅读全文
摘要:
一、移动、复制页的逻辑实现移动、复制页的功能是在设计调查页面的时候需要实现的功能。规则是如果在同一个调查中的话就是移动,如果是在不同调查中的就是复制。无论是移动还是复制,都需要注意一个问题,那就是页面在一个调查中的位置问题,这就需要一个变量来标识该该页面在一个调查中的位置。我们在Page对象中添加一... 阅读全文
摘要:
增加logo的技术点:文件上传,国际化文件上传的功能在struts2中是使用文件上传拦截器完成的。1.首先需要在页面上添加一个文件上传的超链接。点击该超链接能够跳转到文件上传页面。我给该表单页面中的field字段使用了logo作为名字,即name=logo。2.在SurveyAction中进行表单的... 阅读全文
摘要:
一、分析答案实体 分析答案实体主要涉及到的还是设计上的问题,技术点几乎是没有的。首先需要确定一下答案的格式才能最终确定答案实体中需要有哪些属性。 答案格式的设计是十分重要的,现设计格式如下: 在表单中需要提供的信息有name值和value值,name值实际上只是用于回显和保存答案,对于保存答案... 阅读全文
摘要:
增加页面和编辑页面、增加问题和编辑问题的页面使用的都是相同的页面,最后调用的方法是saveOrUpdate方法,所以只说一个就可以了。一、增加页面 比较简单,略。流程如下: 单击“增加页”超链接->Action转发到增加页的jsp页面->填写表单并提交->PageAction保存页面到数据库->... 阅读全文
摘要:
一、Action中User注入问题 Action中可能会经常用到已经登陆的User对象,如果每次都从Session中拿会显得非常繁琐。可以想一种方法,当Action想要获取User对象的时候直接使用,这种方法还是得需要借助拦截器的力量,直接在登录拦截器中实现即可,但是登陆拦截器怎么知道该Actio... 阅读全文
摘要:
一、数据加密处理 这里使用MD5加密处理,使用java中自带加密工具类MessageDigest。 该类有一个方法digest,该方法输入参数是一个字符串返回值是一个长度为16的字节数组。最关键的是需要将这个16位的字节数组转换成为32位的字符串,转换方法是使用位移+与运算。将高四位移到低四位&... 阅读全文
摘要:
之前SSH框架已经搭建完毕,现在进行实体类的分析和Base类的书写。Base类是抽象类,专门用于继承。一、实体类关系分析 既然是数据采集系统,首先调查实体(Survey)是一定要有的,一个调查有多个页面(Page),一个页面有多个问题(Question),所以还要有页面和问题实体。参与完成调查之后... 阅读全文
摘要:
经过23天的艰苦斗争,终于搞定了数据采集系统~徐培成老师很厉害啊,明明只是用了10天就搞定的项目我却做了23天,还是模仿的。。。呵呵,算了,总之最后总算是完成了,现在该好好整理该项目了。第一天的内容:SSH框架搭建一、系统说明 1.该系统是数据采集系统,说白了就是问卷调查系统,它和考试系统使用的技... 阅读全文
摘要:
昨天有同学问我问题,他告诉我他的Action中的一个属性明明提供了get/set方法,但是在方法中却获取不到表单中传递过来的值。代码如下(简化后的代码) 1 public class UserAction implements modelDriven(){ 2 private Strin... 阅读全文
摘要:
单点登录:SSO(Single Sign On) 什么是单点登录:大白话就是多个网站共享一个用户名和密码的技术,对于普通用户来说,只需要登录其中任意一个网站,登录其他网站的时候就能够自动登陆,不需要再输入用户名和密码了。 单点登录类型: 1.具有相同一级域名的多个网站,以新浪为例,新浪... 阅读全文