项目框架
Michaeles
这个作者很懒,什么都没留下…
展开
-
SSO单点登录
一、单系统登录机制1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必...转载 2018-11-02 09:46:24 · 205 阅读 · 0 评论 -
spring 基于AOP模拟权限检查
一、基于jdk动态代理模拟权限检查1.JDKProxy.javapublic class JDKProxy implements InvocationHandler { private Object targetObject;//需要代理的目标对象 /* * 创建动态代理,通过反射来实例化目标对象 */ public Object newPr...原创 2018-12-30 22:41:37 · 365 阅读 · 0 评论 -
spring 基于AOP模拟日志打印
一、控制方法执行打印日志、执行后打印日志、让指定方法打印日志1.指定方法打印日志(1)在invoke()方法中加一个对method名字的判断,其中method的名字可以写在xml文件中。二、代码实现1.ILogger代码public interface ILogger { void start(Method method); void end(Method...原创 2018-12-30 23:42:58 · 277 阅读 · 0 评论 -
spring aop实现原理
一、AOP概念(Aspect Oriented Programming切面面向编程)1.AOP是一种 思想,是OOP(面向对象编程)的延续,主要实现业务和切面的逻辑分离,降低耦合度,用作权限认证、过滤器、拦截器、日志、事务处理等。2.实现原理:通过预编译的方式,在运行期基于动态代理的方式来实现的一种技术。二、动态代理1.Jdk动态代理接口:如果目标对象实现了接口,默认使用JDK的动...原创 2019-01-01 14:36:33 · 190 阅读 · 0 评论 -
Spring IOC :Spring通过DI(依赖注入)实现IOC(控制反转)
一、DI依赖注入1.谁依赖谁,为什么需要依赖,谁注入谁,注入了什么?应用程序依赖IOC容器、需要IOC容器提供对象、IOC注入对象、注入了外部对象2.常用的3种注入方式?注解注入、setter注入、构造方法注入二、Ioc控制反转1.将对象和依赖对象的创建交给Spring容器去管理。由spring来负责控制对象的生命周期和对象间的关系。2.谁控制谁,控制什么、为何是反转、哪些...原创 2019-01-01 14:56:51 · 1037 阅读 · 0 评论 -
解决下载时 火狐浏览器文件名中文乱码问题
//解决火狐浏览器文件名中文乱码问题String agent = request.getHeader("User-Agent");//根据不同浏览器进行不同的编码String realFilename = "";if (agent.contains("MSIE")) { // IE浏览器 realFilename = URLEncoder.encode(fileName,...原创 2019-01-02 17:46:39 · 3439 阅读 · 0 评论 -
从浏览器打开http://www.baidu.com地址回车发送请求到看到页面的过程?
一、整体过程1.将域名解析成ip的过程;2.通过ip找到网站服务器,请求打开具体的网页,服务器响应请求,客户端浏览器收到响应报文后,渲染html文档,最终看到网页页面。二、原理1.dns解析的流程?(1)输入网址回车的时候,浏览器首先查询浏览器的缓存,如果没找到就去查询本地的dns缓存和hosts文件,如果有www.baidu.com这个域名对应的ip,则直接通过这个ip访...原创 2019-01-12 20:19:25 · 22530 阅读 · 1 评论 -
整合springboot父子项目时出现的一个问题
1.报错springboot版本2.1.3.RELEASE解决:将tomcat更换为jetty就好了。java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping; at org.apache...原创 2019-03-11 20:00:27 · 1077 阅读 · 0 评论 -
Springboot常用注解
1.RequestBody可以将请求体中的JSON字符串绑定到相应的bean上(1)之前 $.ajax({ url:"/login", type:"POST", data:'{"userName":"admin","pwd","admin123"}', content-type:"application/j原创 2018-12-31 22:19:05 · 324 阅读 · 0 评论 -
springboot 中@Bean的用法
1.@Configuration、@Bean配置详解(1)@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的< beans>,作用为:配置spring容器(应用上下文)(2)在@Configuration加上@Bean去注册一个bean 对象,这样我们就不用再去写xml文件去注册bean对象。@Bean标注在方法上(返回某个实例的方法)。...原创 2018-12-24 14:16:39 · 16359 阅读 · 0 评论 -
自定义注解——基于springboot
1.自定义注解实现——判断接口是否需要验证MD5@Documented@Target(ElementType.METHOD)@Inherited@Retention(RetentionPolicy.RUNTIME) public @interface checkAnnotation { boolean check() default false; String privat...原创 2018-12-22 21:57:52 · 257 阅读 · 0 评论 -
springboot与微服务的区别联系
一、 微服务架构1.微服务架构微服务是一种分布式系统架构,是一种思想,是一种设计原则。通过springboot来创建服务,而Spring Cloud是关注全局的服务治理框架。2.微服务的优势(1)复杂度可控:即便再复杂的应用开发,我们把它拆分成多个小的微服务,就很简答的进行分组开发,大大的提高效率。(2)独立部署:由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。...原创 2018-12-13 20:58:45 · 3478 阅读 · 0 评论 -
springboot集成redis配置问题
一、不同版本RedisProperties的区别1.这是springboot版本为1.3.2RELEASE中的RedisProperties配置文件类,从图片中可以看得出来该本的redis配置文件属性有两个内部静态类分别是Pool和Sentinel,七个属性变量。列入我们想在配置文件中设置redis数据库host地址,则可以这样写spring.redis.host=localhost...原创 2018-12-01 12:41:04 · 1884 阅读 · 0 评论 -
详解springmvc工作原理
1.工作原理图(整理总结)2.工作流程(1)用户发出请求到dispatcherServlet;(2)dispatcherServlet接收到请求后调用HandlerMapping处理器映射器,根据xml配置和注解,映射成功后返回一个HandlerExecutionChain对象(处理器执行链),其中包括处理器(Controller)以及拦截器。(3)dispatcherServ...原创 2018-12-30 20:42:08 · 182 阅读 · 0 评论 -
Tomcat在JVM上的ClassLoader机制(基于分布式sesison问题)
1.下JVM的Classloader机制JVM的classloader加载继承关系分为BootstarpClassLoader --> ExtClassLoader --> SystemClassLoader,应用的WebAppClassLoader继承自SystemClassLoader,在加载具体某个类时,一般会先委托给父类ClassLoader,当父类ClassLoader无...原创 2018-12-08 11:10:53 · 318 阅读 · 0 评论 -
SSO单点登录常见问题
一、SSO单点登录1、对上面所有标红疑问一一解释1)、问:系统A是如何发现该请求需要登录重定向到认证中心的?答:用户通过浏览器地址栏访问系统A,系统A(也可以称为CAS客户端)去Cookie中拿JSESSION,即在Cookie中维护的当前回话session的id,如果拿到了,说明用户已经登录,如果未拿到,说明用户未登录。2)、问:系统A重定向到认证中心,发送了什么信息或者地址变成了什...转载 2018-11-02 16:21:25 · 7465 阅读 · 0 评论 -
用springmvc+fastjson如何传递枚举类型吗?
下面是测试用的枚举类:通常的做法我们只能取出A或B.... public enum TestEnum{ A(1, "1-100"), B(2,"2-200"), C(3, "3-300"), D(4, "4-400"), E(5, "5-500"); private...转载 2018-11-13 23:24:07 · 1386 阅读 · 0 评论 -
PO,VO,TO,BO,DAO,POJO的理解
1.VO: (value object)值对象:对应页面显示的数据对象2.PO:持久对象(Persisent Object):对象的属性和数据库表的字段一一对应,简单来说PO就是数据库中的一条记录。-------------------------------------------------------------------------------------------------...原创 2018-11-26 21:17:23 · 219 阅读 · 0 评论 -
Maven项目pom文件详解
1.Maven私服依赖和插件都属于构件。二、依赖、依赖的构件库、插件库、构件的发布包1.依赖2.对于依赖的构件库,通过<repositories>设置id,库的ID name,库的名称 url,库的URL layout,在Maven 2/3中都是default,只有在Maven 1.x中才是legacy releases,库中版本为releases的...原创 2018-11-28 19:49:10 · 880 阅读 · 0 评论 -
Mybatis整合redis实现分布式的二级缓存
1.mybtais缓存机制 2.Mybatis二级缓存实现原理(1)mybatis的二级缓存主要在Executor对象上进行操作,当mybatis发现在mybatis.xml配置文件中设置了cacheEnabled=true时,mybatis在创建sqlsession时创建Executor对象,同时会对Executor加上装饰者【CacheExecutor】。(2)Ca...原创 2018-12-08 15:32:02 · 729 阅读 · 0 评论 -
maven工程报错:java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.get
错误原因是 mybatis-spring 包版本问题,那么要么换mybatis或者spring包的版本,要么换整合包的版本。经过测试:我的spring包是4.3.7版本。mybatis版本是3.4.2 出错时整合包版本:1.2.2把整合包版本依次往上加,最后加到 1.3.0 就可以正常运行,那么经过测试最新版1.3.1也是可以运行的。所以说,对于已经配置好的spring和m...原创 2018-12-08 22:15:47 · 424 阅读 · 0 评论 -
springmvc扫描多级目录配置
<context:component-scan base-package="com.xxx.**.web.controller"/>、** :2级可以 3级可以*.* :2级可以 3级不可以.. :2级不可以 3级不可以原创 2018-12-17 17:46:53 · 2936 阅读 · 0 评论 -
Mybatis的一对多
1.controller//使用级联查询:查询出学生信息的同时查询出题目listList<QuestionInfo> researchWordList = null; researchWordList = researchInfoService.getExportStudentInfoList(questionInfo);if(researchWordList.s...原创 2018-12-17 19:41:36 · 131 阅读 · 0 评论 -
详解在Java中写JS代码
1.项目实战response.setCharacterEncoding("gbk"); PrintWriter out=response.getWriter();out.print("<script>top.location.reload();</script>");out.flush();2.关闭本页面,跳转到百度response.setChara...原创 2018-12-18 16:12:44 · 4636 阅读 · 0 评论 -
项目使用iframe,session失效时不能正常跳转到登录页面的问题
1.js/*解决iframe框架session失效时跳不出去*/if (window != top) { top.location.href = location.href;}2.Java中使用jsresponse.setCharacterEncoding("gbk");PrintWriter out = response.getWriter(); out.prin...原创 2018-12-24 20:06:26 · 593 阅读 · 0 评论 -
Tomcat的Session管理机制
一、Session使用原理请求过程中的session操作:(1)首先要解析请求中的sessionId信息,然后将sessionId存储到request的参数列表中。(2)然后再从 request获取session的时候,如果存在sessionId那么就根据Id从session池中获取session,如果sessionId不存在或者session失效,那么则新建session并且将ses...原创 2018-12-27 23:01:09 · 2246 阅读 · 0 评论 -
事务回滚时的异常处理机制
一、Java异常1.运行时异常和非运行时异常(1)运行时异常特点是Java编译器不会检查它;(2) 非运行时异常(编译期异常):如果不处理,程序就不能编译通过。如IOException、SQLException;二、使用事务时对异常的处理1.声明式事务只对运行期异常RuntimeException做rollback,特殊情况下需要对编译器异常转换为运行期异常。2.spri...原创 2019-05-09 16:13:28 · 1405 阅读 · 0 评论