目录

沈超琦的个人博客

Stay Foolish,Stay Hungry

标签: 待分类 (6)

Spring方法注入 @Lookup注解使用

情景分析 在Spring的诸多应用场景中bean都是单例形式,当一个单例bean需要和一个非单例bean组合使用或者一个非单例bean和另一个非单例bean组合使用时,我们通常都是将依赖以属性的方式放到bean中来引用,然后以@Autowired来标记需要注入的属性。但是这种方式在bean的生命周期不同时将会出现很明显的问题,假设单例bean A需要一个非单例bean B(原型),我们在A中注入bean B,每次调用bean A中的方法时都会用到bean B,我们知道Spring Ioc容器只在容器初始化时执行一次,也就是bean A中的依赖bean B只有一次注入的机会,但是实际上bean B我们需要的是每次调用方法时都获取一个新的对象(原型)所以问题明显就是:我们需要bean B是一个原型bean,而事实上bean B的依赖只注入了一次变成了事实上的单例bean。 代码说明 ** @Component @Scope("prototype") public class PrototypeBean { private static final Logger logger= Lo....

关于for丶foreach丶iterator 迭代器

关于for丶foreach丶iterator 迭代器 1 前言: 我们在网上或者在讨论的时候往往会有这么一种说法:foreach 也是迭代器的一类,底层实现的是迭代器。但是这种说法并不严谨,也可以说这种说法对于我们正常的理解来说并不是能够完全理解。 2 结论: for 丶 foreach 丶迭代器 这三个遍历方法中 不应该将他们三种遍历方法归在一起 而是将其分成三类)——不要将foreach 归为迭代器的一种遍历 (我们一步一步来,首先来简单介绍一下这是那种方法的区别) 3 多态差别 for和foreach都需要知道自己的集合类型,甚至要知道自己集合内的元素类型,不能实现多态。( public static void main(String[] args) { int[] ints = new int[]{1, 2, 3, 4}; int[] var2 = ints; int var3 = ints.length;for(int var4 = 0; var4 < var3; ++var4) { int i = var2[var4]; System.out.println(i); ....

有感

《 丑奴儿·书博山道中壁 》 辛弃疾 少年不识愁滋味,爱上层楼。 爱上层楼,为赋新词强说愁。 而今识尽愁滋味,欲说还休。 欲说还休,却道天凉好个秋。

springboot解决跨域问题

1、跨域起因 对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出现。针对跨域问题,我们可能第一个想到的解决方案就是jsonp,并且以前处理跨域问题我基本也是这么处理。 但是jsonp方式也同样有不足,不管是对于前端还是后端来说,写法与我们平常的ajax写法不同,同样后端也需要作出相应的更改。并且,jsonp方式只能通过get请求方式来传递参数,当然也还有其它的不足之处, jQuery ajax方式以jsonp类型发起跨域请求,其原理跟script脚本请求一样,因此使用jsonp时也只能使用GET方式发起跨域请求。跨域请求需要服务端配合,设置callback,才能完成跨域请求。 针对于此,我并没有急着使用jsonp的方式来解决跨域问题,去网上找寻其它方式,也就是本文主要所要讲的,在springboot中通过cors协议解决跨域问题。 2、Cors协议 H5中的新特性:Cross-Origin Resource Sharing(跨域资源共享)。通过它,我们的开发者(主要指后端开发者)可以决定资源是否能被跨域访问。 cors是一个w3c标准,它允....

使用注解@实现防止接口重复提交

实现逻辑 1.自定义防重复提交的注解和切面 2.在需要验证的接口上增加注解(一般是创建、修改的接口) 3.以每次调用的 用户唯一标识(userId或者sessionId或者token)+ 请求路径+参数 作为key,value任意值都可以,缓存起来(redis或本地缓存),并设置一个合适的缓存失效时间。 4.每次调用时根据key判断,缓存是否存在,存在则抛出异常或提示,不存在则执行业务逻辑 代码 防重复提交注解 ** package com.*.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; / * <p>Description: [防重复提交注解]</p > */ @Target(ElementType.METHOD) @Retention(Retention....

Netty 那点事(一)概述

Netty 和 Mina 是 Java 世界非常知名的通讯框架。它们都出自同一个作者,Mina 诞生略早,属于 Apache 基金会,而 Netty 开始在 Jboss 名下,后来出来自立门户 netty.io。关于 Mina 已有 @FrankHui 的 Mina 系列文章,我正好最近也要做一些网络方面的开发,就研究一下 Netty 的源码,顺便分享出来了。 Netty 目前有两个分支:4.x 和 3.x。4.0 分支重写了很多东西,并对项目进行了分包,规模比较庞大,入手会困难一些,而 3.x 版本则已经被广泛使用。本系列文章针对 netty 3.7.0 final。3.x 和 4.0 的区别可以参考这篇文章:http://www.oschina.net/translate/netty-4-0-new-and-noteworthy?print。 起:Netty 是什么 大概用 Netty 的,无论新手还是老手,都知道它是一个 “网络通讯框架”。所谓框架,基本上都是一个作用:基于底层 API,提供更便捷的编程模型。那么 "通讯框架" 到底做了什么事情呢?回答这个问题并不太容易,我们不妨....