![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java开发
文章平均质量分 68
宣午刚001
一个误入Java开发歧途的建筑男
展开
-
SpringCloud架构概览
最近项目中使用SpringCloud做微服务架构,所以对微服务体系进行了系统的学习一,服务注册和发现中心Eureka1,Eurekaserver和Eurekaclienta,Eurekaserver注解 @SpringBootApplication和@EnableEurekaServer服务注册中心b,Eurekaclient注解 @SpringBootApplication和@EnableEur...原创 2018-03-22 23:35:44 · 269 阅读 · 0 评论 -
layer.open使用方法和参数
layer.open({ type: 2, //类型,解析url closeBtn: 1, //关闭按钮是否显示 1显示0不显示 title: title, //页面标题 shadeClose: true, //点击遮罩区域是否关闭页面 shade: 0.8, //遮罩透明度 area: ['900px', '500px...原创 2018-05-30 17:47:08 · 100146 阅读 · 5 评论 -
JVM -XX: 参数介绍
参数默认值或限制说明参数默认值功能-XX:-AllowUserSignalHandlers限于Linux和Solaris,默认不启用允许为java进程安装信号处理器,信号处理参见类:sun.misc.Signal, sun.misc.SignalHandler-XX:+DisableExplicitGC默认启用禁止在运行期显式地调用System.gc()-XX:+FailOverToOldVeri...转载 2018-05-31 09:20:40 · 1757 阅读 · 0 评论 -
IntelliJ Idea 集成svn 和使用
最近公司的很多同事开始使用IntelliJ Idea,便尝试了一下,虽然快捷键与eclipse 有些不同,但是强大的搜索功能与“漂亮的界面”(个人认为没有eclipse好看 ),还是值得我们去使用的。刚开始使用的 idea要去集成svn,下载公司的项目 。既然要使用svn,那么首先我们需要下载一个 svn的客户端,可以到这里下载对应的安装程序:http://subversion.apache.or...转载 2018-05-31 10:38:38 · 659 阅读 · 0 评论 -
nginx与tomcat动静分离
本文设计的动静分离结构 在本文中,我们将静态资源放在 A 主机的一个目录上,将动态程序放在 B 主机上,同时在 A 上安装 Nginx 并且在 B 上安装 Tomcat。配置 Nginx,当请求的是 html、jpg 等静态资源时,就访问 A 主机上的静态资源目录;当用户提出动态资源的请求时,则将请求转发到后端的 B 服务器上,交由 Tomcat 处理,再由 Nginx 将结果返回给请求端。 提到...转载 2018-06-17 21:14:33 · 306 阅读 · 0 评论 -
事务传播特性,一个事务方法调用另一个事务方法
转载:https://blog.csdn.net/dapinxiaohuo/article/details/52092447前些日子一朋友在需要在目标对象中进行自我调用,且需要实施相应的事务定义,且网上的一种通过BeanPostProcessor的解决方案是存在问题的。因此专门写此篇帖子分析why。1、预备知识aop概念请参考【http://www.iteye.com/topic/11...转载 2018-07-24 12:26:13 · 10506 阅读 · 2 评论 -
bean通过注解实现字段校验
参数校验是我们程序开发中必不可少的过程。用户在前端页面上填写表单时,前端js程序会校验参数的合法性,当数据到了后端,为了防止恶意操作,保持程序的健壮性,后端同样需要对数据进行校验。后端参数校验最简单的做法是直接在业务方法里面进行判断,当判断成功之后再继续往下执行。但这样带给我们的是代码的耦合,冗余。当我们多个地方需要校验时,我们就需要在每一个地方调用校验程序,导致代码很冗余,且不美观。那么如何...原创 2018-07-18 22:49:41 · 10446 阅读 · 1 评论 -
JAVA常量类的实现方式_枚举类_项目实践
转载https://www.cnblogs.com/lihaoyang/p/6913295.html前言众所周知,系统里有很多比如订单状态、审核状态;性别、结算方式、交易类型等属性,这些属性只有几个值,一般用0、1、2、3等的数字标识存入数据库,每次对这些属性所属对象的增删改操作,都会在代码里给状态设置值,由于项目是多人开发的,如果每次设置值的时候都直接set 0、1、2,容易出错,而且状...转载 2018-07-19 00:31:14 · 350 阅读 · 0 评论 -
Java Executor并发框架 创建线程池的核心参数的解释
https://blog.csdn.net/pfnie/article/details/52757002一、ThreadPoolExecutor的相关属性 private final BlockingQueue<Runnable> workQueue; // 任务阻塞队列 private final ReentrantLock mainLock = ...转载 2018-07-24 23:48:50 · 774 阅读 · 0 评论 -
Spring的7种事务传播行为类型
1、PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。2、PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。‘3、PROPAGATION_MANDATORY:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就抛出异常。...转载 2018-07-25 00:26:26 · 3079 阅读 · 0 评论 -
springboot配置多数据源
摘要: 目前项目中持久化框架使用是mybatis,经过分析后不难发现,多数据源配置需要解决两个问题,一个是由原先的spring经典方式切换到了springboot方式下,多数据源如何配置?有无太大变化?另一个是怎样将多数据源与mybatis的配置关联起来?前言最近迫于项目需要,笔者踏上了springboot多数据源的配置之旅。之前笔者配置过spring的动态多数据源切换,当时使用的是JDB...转载 2018-07-20 10:24:33 · 7013 阅读 · 0 评论 -
spring容器和spring mvc容器的父子容器关系
Spring和SpringMVC作为Bean管理容器和MVC层的默认框架,已被众多WEB应用采用,而实际使用时,由于有了强大的注解功能,很多基于XML的配置方式已经被替代,但是在实际项目中,同时配置Spring和SpringMVC时会出现一些奇怪的异常,比如Bean被多次加载,多次实例化,或者依赖注入时,Bean不能被自动注入,但是明明你已经将该Bean注册了的。找原因还是要看问题的根源,我们从容...原创 2018-08-03 16:37:25 · 503 阅读 · 0 评论 -
logstash+Elasticsearch+kibana日志可视化分析
参考文章:https://www.cnblogs.com/yincheng/p/logstash.html logstash是一个数据分析软件,主要目的是分析log日志。整一套软件可以当作一个MVC模型,logstash是controller层,Elasticsearch是一个model层,kibana是view层。 首先将数据传给logstash,它将数据进行过滤和格式化(转成...转载 2018-08-03 21:51:10 · 1579 阅读 · 0 评论 -
springboot定义aop类
aop在业务方法的前后增加一些额外操作,不适合做安全过滤。想象你有一个夹层的汉堡包,中间的那层馅是业务方法,切面就是外面的2层面包,如果你不喜欢,你还可以把这2片面包拿掉,换成其他的食物,但他还是切面。我意思是切面是灵活的组件,随意放在业务方法的上面或者下面。先写一个你们熟悉的controller (里面是业务方法)。@RestControllerpublic class MyWebC...原创 2018-08-01 00:36:43 · 499 阅读 · 0 评论 -
map中get不存在的key和containsKey方法
在Map集合中,get一个不存在的值,不会抛出异常,获得的返回值为null。public static void main(String[] args){ Map<String, String> a = new HashMap<String, String>(); String string = a.get("a111"); System.out.pri...原创 2018-08-02 00:15:05 · 14559 阅读 · 0 评论 -
SimpleDateFormat的线程安全问题与解决方案
1. 原因SimpleDateFormat(下面简称sdf)类内部有一个Calendar对象引用,它用来储存和这个sdf相关的日期信息,例如sdf.parse(dateStr), sdf.format(date) 诸如此类的方法参数传入的日期相关String, Date等等, 都是交友Calendar引用来储存的.这样就会导致一个问题,如果你的sdf是个static的, 那么多个thread ...转载 2018-08-02 00:26:44 · 220 阅读 · 0 评论 -
tomcat原理
转载地址:https://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/本文以 Tomcat 5 为基础,也兼顾最新的 Tomcat 6 和 Tomcat 4。Tomcat 的基本设计思路和架构是具有一定连续性的。Tomcat 总体结构Tomcat 的结构很复杂,但是 Tomcat 也非常的模块化,找到了 Tomcat 最核心的模块,您就抓住了 T...转载 2018-06-05 12:56:22 · 141 阅读 · 0 评论 -
基于Token的WEB后台认证机制
转载地址:http://www.cnblogs.com/xiekeli/p/5607107.html几种常用的认证机制HTTP Basic AuthHTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端...转载 2018-06-12 13:49:00 · 143 阅读 · 0 评论 -
前台页面long类型数字被四舍五入的解决办法
最近页面总是碰到long类型的id最后一位被四舍五入的情况究其原因有以下几条:1,实体类的id字段没有加@JsonSerialize(using = LongJsonSerializer.class)和 @JsonDeserialize(using = LongJsonDeserializer.class)注解,导致传入后台后精度丧失2,在前台js方法中传递long类型的数值时未加引号,导致在前台...原创 2018-05-28 11:02:38 · 11064 阅读 · 1 评论 -
Spring 注解详解
Spring 注解学习笔记声明Bean的注解:@Component : 组件,没有明确的角色@Service : 在业务逻辑层(service层)使用@Repository : 在数据访问层(dao层)使用.@Controller : 在展现层(MVC--SpringMVC)使用注入Bean的注解:@Aautowired : Spring提供的注解.@Inject : JSR-330提供的注解@R...原创 2018-03-22 23:36:40 · 178 阅读 · 0 评论 -
Springboot配置详解
bootstrap.properties配置在application.properties之前加载,配置核心的配置信息 1,日志logging的配置 日志配置文件的位置logging.config= classpath:logback.xml 日志文件名logging.file= myapp.log 日志级别严重性映射logging.level.*= DEBUG 日志文件的位置loggin...原创 2018-03-22 23:37:20 · 385 阅读 · 0 评论 -
@RequestBody和@RequestParam区别
HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。不过,当前的大多数浏览器只支持GET和POST,Spring 3.0提供了一个HiddenHttpMethodFilter,允许你通过“_method”的表单参数...原创 2018-03-22 23:37:53 · 17261 阅读 · 1 评论 -
swagger annotation
一、基于类的注解@Api(tags={"用户操作接口"})1.tags:对controller的描述。数组类型,可填写多个值,即生成多个相同的列表,只是描述有区别;二、基于方法的注解@ApiOperation(value="根据订单信息获取下户专员信息", notes="根据订单的Id获取下户专员的详细信息", httpMethod = "POST")1.value:对action的简述;2.no...原创 2018-03-22 23:38:25 · 326 阅读 · 0 评论 -
Java三种简单排序算法:冒泡,选择,插入
最近公司项目比较闲,特意回去读了读java数据结构和算法,重温了下几个基本算法,冒泡,选择和插入,并测试了各个排序的速度,测试样本为20000大小的数组,测试结果和代码如下,可以看到冒泡速度最慢,插入最快,选择其次:/** * * 项目名称:TestStringUtils * 类名称:TestSort * 类描述: 测试排序算法* 冒泡最慢,插入最快,选择...原创 2018-03-23 14:28:45 · 203 阅读 · 0 评论 -
java的非阻塞IO-NIO(待修改)
NIO与IO区别nio即非阻塞io,传统io为阻塞式io。传统io当一个线程调用read() 或 write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入,该线程在此期间不能再干任何事情了。 Java NIO的非阻塞模式,使一个线程从某通道发送请求读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取。而不是保持线程阻塞,所以直至数据变的可以读取之前,该线程可...原创 2018-03-26 09:16:17 · 137 阅读 · 0 评论 -
java多线程(待修改)
线程的创建reentrantlock的使用线程池原创 2018-03-26 09:17:29 · 116 阅读 · 0 评论 -
几种基本的数据结构(待修改)
链表一,单链表在链表中维护对头部节点的引用,增删头部的时间复杂度为O(1),增删查其他位置时间复杂度为O(n),需要从头部依次做比较,直到找到对应元素,但是比数组的O(n)要快,因为只比较不复制,数组需要复制单链表可以实现栈功能,后进先出,进则insertfirst,出则deletefirst二,双端链表在链表中维护对头部和尾部节点的引用,增删头部和增加尾部的时间复杂度为O(1),但是无法实现删除...原创 2018-03-26 22:44:49 · 221 阅读 · 0 评论 -
toArray(T[] a)方法
对collection使用toArray(T[] a)方法时需注意,根据jdk源码,若a的length小于collection的size时,会自动创建一个新长度的数组接受元素,因此,最好在创建a时保证a的length不小于collection的sizepackage com.fulan.application.controller.iris;import java.util.ArrayList...原创 2018-04-19 09:58:01 · 2064 阅读 · 0 评论 -
ArrayList构造函数源码
/** * Shared empty array instance used for empty instances. */ private static final Object[] EMPTY_ELEMENTDATA = {}; /** * Shared empty array instance used for default sized e...原创 2018-04-19 13:44:00 · 421 阅读 · 0 评论 -
记一次ajax的404解决经历
前台ajax一直报404,后台方法断点根本进不去,搞了好久,百思不得其解。参数的console.log和报错信息如下:ajax方法如下:$.ajax({ type: 'POST', url: "${ctx }/manage/submitPublicClass", /* dataType: "json", */ data :$...原创 2018-05-09 10:28:06 · 19019 阅读 · 2 评论 -
Java8 如何正确使用 Optional
Optional是Java8提供的为了解决null安全问题的一个API。善用Optional可以使我们代码中很多繁琐、丑陋的设计变得十分优雅。这篇文章是建立在你对Optional的用法有一定了解的基础上的,如果你还不太了解Optional,可以先去看看相关教程,或者查阅Java文档。使用Optional,我们就可以把下面这样的代码进行改写。12345public static String get...原创 2018-04-27 14:55:50 · 208 阅读 · 0 评论 -
Eclipse中输入系统变量和运行参数
在开发时,有时候可能需要根据不同的环境设置不同的系统参数,我们都知道,在使用java -jar命令时可以使用-D参数来设置运行时的系统变量,同样,在Eclipse中运行java程序时,我们怎么设置该系统变量呢? 另外,如果我们的程序需要输入运行参数,在Eclipse中如何配置?答案很简单,具体步骤为:在要运行的类上右键点击Run As-->Run Configurations...在弹出界面...转载 2018-05-18 11:25:59 · 431 阅读 · 0 评论 -
webApplicationContext 与servletContext
原文链接:http://blog.sina.com.cn/s/blog_534f69a001011lkj.html1.WebApplicationContext的研究 ApplicationContext是spring的核心,Context通常解释为上下文环境,用“容器”来表述更容易理解一些,ApplicationContext则是“应用的容器了”了。 spring把bean...转载 2018-04-28 15:44:44 · 158 阅读 · 0 评论 -
java开发常见错误原因与解决方法
0、 需要标识符 a) 不在函数内 1、 非法表达式开始 b) 可能:丢失括号 . 2. no data found a) 可能:setInt(1,100)中,没有100这个值 3. 找不到符号 a) 可能:没导入包 4. 指定了无效URL a) 可能:数据库名或IP错误,即连接出错 5. 类路径没有找到 a) 可能: ClassNotFoundException: oracle.jdbc.dri...原创 2018-05-14 14:48:51 · 10759 阅读 · 0 评论 -
mybatis一级缓存二级缓存
一级缓存 Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一样的情况下,我们使用同一个SqlSession对象调用一个Mapper方法,往往只执行一次SQL,因为使用SelSession第一次查询后,MyBatis会将其放在缓存中,以后再查询的时候,如果没有声明需要刷新,并且缓存没有超时的情况下,...转载 2018-05-22 11:03:21 · 131 阅读 · 0 评论 -
[Elasticsearch] 全文搜索 (三) - match查询和bool查询的关系,提升查询子句
match查询是如何使用bool查询的现在,你也许意识到了使用了match查询的多词查询只是简单地将生成的term查询包含在了一个bool查询中。通过默认的or操作符,每个term查询都以一个语句被添加,所以至少一个should语句需要被匹配。以下两个查询是等价的:{ "match": { "title": "brown fox"}}{ "bool": { "s...转载 2018-09-16 13:14:55 · 1217 阅读 · 0 评论