09 2021 档案
摘要:项目调优 一、修改配置文件 二、Jvm调优 三、Jvm调优实战 1、未设置JVM参数的情况 2、下面我们来设置下Jvm参数 项目调优 作为一名工程师,项目调优这事,是必须得熟练掌握的事情。在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。在这边有一篇比较好的文章,推荐给
阅读全文
摘要:讲到Java并发,多线程编程,一定避免不了对关键字volatile的了解,那么如何来认识volatile,从哪些方面来了解它会比较合适呢? 个人认为,既然是多线程编程,那我们在平常的学习中,工作中,大部分都接触到的就是线程安全的概念。 而线程安全就会涉及到共享变量的概念,所以首先,我们得弄清楚共享变
阅读全文
摘要:Spring简介 Spring是开源的控制反转(Ioc)和面向切面编程(AOP)的容器框架,Spring的主要功能用于默认单例模式管理Bean对象、生产Bean、声明式事务、以及AOP开发。 Spring的Ioc类图如下所示: 在Spring中主要的核心类和接口层,也是下面文章重点讲解的核心知识,如
阅读全文
摘要:spring boot介绍 Spring Boot目前流行的java web应用开发框架,相比传统的spring开发,spring boot极大简化了配置,并且遵守约定优于配置的原则即使0配置也能正常运行,这在spring中是难以想象的。spring boot应用程序可以独立运行,框架内嵌web容器
阅读全文
摘要:如何提高代码的可读性、复用性、扩展性。我们将从以下四个方面讨论: 变量 函数 类 异步 一、变量 用有意义且常用的单词命名 // Bad: const yyyymmdstr = moment().format('YYYY/MM/DD'); // Good: const currentDate = m
阅读全文
摘要:js数组的合并在前端制作中是一个经常遇到的需求,平常用得最多的就是concat()方法了,这里作者给出了多种做法,包括将一个数组元素push或者unshift到另一个数组;使用ES5的reduce()和reduceRight()方法;或者是push.apply(a,b)和unshift.apply(
阅读全文
摘要:最近在深入研究vue源码,把学习过程中,看到的一些好玩的的函数方法收集起来做分享,希望对大家对深入学习js有所帮助。如果大家都能一眼看懂这些函数,说明技术还是不错的哦 1. 数据类型判断 Object.prototype.toString.call()返回的数据格式为 [object Object]
阅读全文
摘要:最近在写一个Node.js程序,功能是下载页面上的资源,首先拿到页面资源链接列表,如: [ 'https://xxx.com/img/logo.jpg', 'https://xxx.com/img/bg.jpg', 'https://xxx.com/css/main.css', 'https://x
阅读全文
摘要:缓存来自代理的Web和应用程序服务器的静态和动态内容,以加快向客户端的交付速度并减少服务器上的负载。 概述 启用缓存后,NGINX Plus 将响应保存在磁盘缓存中,并使用它们来响应客户端,而不必每次都代理对相同内容的请求。 要了解有关 NGINX Plus 缓存功能的更多信息,请按需观看NGINX
阅读全文
摘要:持久化消息和非持久化消息的发送策略 消息同步发送和异步发送 ActiveMQ支持同步、异步两种发送模式将消息发送到broker上。同步发送过程中,发送者发送一条消息会阻塞直到broker反馈一个确认消息,表示消息已经被broker处理。这个机制提供了消息的安全性保障,但是由于是阻塞的操作,会影响到客
阅读全文
摘要:消息事务 消息事务,是保证消息传递原子性的一个重要特征,和JDBC的事务特征类似。 一个事务性发送,其中一组消息要么能够全部保证到达服务器,要么都不到达服务器。 生产者、消费者与消息服务器直接都支持事务性; ActiveMQ的事务主要偏向在生产者的应用。 ActiveMQ消息事务流程图: 1.生产者
阅读全文
摘要:FastDFS是一个以C语言开发的开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以中小文件(建议范围:4KB < file_size <500MB),如相册网站、视频网站等等。 FastDFS为
阅读全文
摘要:文件上传成功,需要安装Nginx作为服务器以支持Http方式访问文件。同时,后面安装FastDFS的Nginx模块也需要Nginx环境。 Nginx只需要安装到StorageServer所在的服务器即可,用于访问文件。 tracker server节点启动 /usr/local/bin/fdfs_t
阅读全文
摘要:在“高并发,海量数据,分布式,NoSql,云计算......”概念满天飞的年代,相信不少朋友都听说过甚至常与人提起“集群,负载均衡”等, 但不是所有人都有机会真正接触到这些技术,也不是所有人都真正理解了这些“听起来很牛的”技术名词。下面简单解释一下吧。 要了解这些概念首先要了解一下项目架构的演进,我
阅读全文
摘要:在平时写代码时,经常会用到各种设计模式,其中一种就是代理模式,代理实现可以分为静态代理和动态代理。 静态代理 静态代理的模式在平时生活中也很常见,比如买火车票这件小事,黄牛相当于是火车站的代理,我们可以通过黄牛或者代售点进行买票行为,但只能去火车站进行改签和退票,因为只有火车站才有改签和退票的方法。
阅读全文
摘要:作为一名程序员,你几乎每天都会使用到GitHub上的那些著名Java第三方库,比如Apache Commons,Spring,Hibernate等等。除了这些,你可能还会fork或Star一些其他的开源库,但GitHub上的库实在太多了,以至于对于个人来说,你很难有时间去发现并了解那些不断加入的新库
阅读全文
摘要:公司内部提供的服务 一家对外提供服务的公司,例如百度,腾讯,阿里,京东,58 同城等,公司内部有多个事业群,事业部门,每个事业部门内部又有若干个子部门,子部门里面有多个不同的小组负责各自的业务。提供对外的服务。 公司内部,外部提供的服务不仅多,而且细分,还有交叉的情况。前面的例子是访问互联网上的服务
阅读全文
摘要:配置脱敏 实现配置的脱敏我使用了Java的一个加解密工具Jasypt,它提供了单密钥对称加密和非对称加密两种脱敏方式。 单密钥对称加密:一个密钥加密,可以同时用作内容的加密和解密依据; 非对称加密:使用公钥和私钥两个密钥,才可以对内容加密和解密; 以上两种加密方式使用都非常简单,咱们以springb
阅读全文
摘要:在我们做SpringBoot项目的时候,认证授权是必不可少的功能!我们经常会选择Shiro、Spring Security这类权限认证框架来实现,但这些框架使用起来有点繁琐,而且功能也不够强大。最近发现一款功能强大的权限认证框架Sa-Token,它使用简单、API设计优雅,推荐给大家! Sa-Tok
阅读全文
摘要:SMP(Symmetric Multi-Processor) 对称多处理器结构,它是相对非对称多处理技术而言的、应用十分广泛的并行技术。 在这种架构中,一台计算机由多个CPU组成,并共享内存和其他资源,所有的CPU都可以平等地访问内存、I/O和外部中断。 虽然同时使用多个CPU,但是从管理的角度来看
阅读全文
摘要:什么是索引? 所谓的索引,就是帮助 MySQL 高效获取数据的排好序的数据结构。因此,根据索引的定义,构建索引其实就是数据排序的过程。 平时常见的索引数据结构有: 二叉树 红黑树 哈希表 B Tree 谈谈一个潜在的误区 我们首先需要澄清一点:MySQL 跟 B+ 树其实没有直接的关系,真正与 B+
阅读全文
摘要:虽然现在微服务越来越流行,我们的系统随之也拆分出来好多的模块功能。这样做的目的其实就是为了弥补单体架构中存在的不足。随着微服务的拆分,肯定设计到分库分表,但这之中肯定设计到分布式事务。最典型的例子就是银行转账,比如银行A给银行B转账500 块钱,流程肯定是银行A-500,银行B+500,在这个过程要
阅读全文
摘要:1、介绍一下Java内存区域(运行时数据区) (1) 程序计数器 程序计数器是一块较小的空间,在虚拟机的概念模型中,字节码解释器工作时就是通过这个计数器的值来获取下一条执行字节码的指令。程序计数器绑定的是线程,即每条线程只会有一个独立的程序计数器。如果执行的是Java方法,这个计数器记录的则是正在执
阅读全文
摘要:在正式进行循环队列学习之前,我们先来看看在顺序队列中删除队首元素出现的问题: (1)设一个容量为capacity=8,size=5(a,b,c,d,e)的数组,左侧为队首、右侧为队尾。 file (2)出队一个元素后,需整体往前移动一位 出队: file 整体前移一位: file 关于该种操作方式我
阅读全文
摘要:面试官问你 SpringMVC 的工作原理,你还不知道吗?你就out了! 2020-03-24 15:24·JAVA互联搬砖工人 SpringMVC的工作原理图: SpringMVC流程 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到
阅读全文
摘要:这几年在 Java 工程师招聘时,会看到很多人的简历都写着使用了 Spring Cloud 做微服务实现,使用 Docker 做自动化部署,并且也会把这些做为自己的亮点。 而比较有趣的这其中以小公司出来的人为绝大多数,大的公司出来的人简历上倒是很少提这些东西。 对于我自己来说,从 2015 年就开始
阅读全文
摘要:谁在消耗cpu? 用户+系统+IO等待+软硬中断+空闲 祸首是谁? 用户 用户空间CPU消耗,各种逻辑运算 正在进行大量tps 函数/排序/类型转化/逻辑IO访问… 用户空间消耗大量cpu,产生的系统调用是什么?那些函数使用了cpu周期? IO等待 等待IO请求的完成 此时CPU实际上空闲 如vms
阅读全文
摘要:为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于Spring Boot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使用的物理内存竟然高达7G,确实不正常。JVM参数配置是“-XX:MetaspaceSize
阅读全文
摘要:一、数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。 1、IO瓶颈 第一种:磁盘读IO瓶颈,热点数据太多,数据库缓
阅读全文
摘要:对象分配过程 1)依据逃逸分析,判断是否能栈上分配? 如果可以,使用标量替换方式,把对象分配到VM Stack中。如果 线程销毁或方法调用结束后,自动销毁,不需要 GC 回收器 介入。否则,继续下一步。 2)判断是否大对象? 如果是,直接分配到堆上 Old Generation 老年代上。如果对象变
阅读全文
摘要:推荐系统是根据用户的行为、兴趣等特征,将用户感兴趣的信息、产品等推荐给用户的系统,它的出现主要是为了解决信息过载和用户无明确需求的问题,根据划分标准的不同,又分很多种类别: 根据目标用户的不同,可划分为基于大众行为的推荐引擎和个性化推荐引擎 根据数据之间的相关性,可划分为基于人口统计学的推荐和基于内
阅读全文
摘要:基于Redis实现的分布式锁 Spring Cloud 分布式环境下,同一个服务都是部署在不同的机器上,这种情况无法像单体架构下数据一致性问题采用加锁就实现数据一致性问题,在高并发情况下,对于分布式架构显然是不合适的,针对这种情况我们就需要用到分布式锁了。 哪些场景需要用分布式锁 场景一:比较敏感的
阅读全文
摘要:1.计算机的基础知识 位逻辑运算符: &: 位与运算符,只有两个操作数都是true,结果才是true。 |: 位或运算符,只有两个操作数都是false,结果才是false。 ~: 位非运算符:如果位为0,结果是1,如果位为1,结果是0. ^: 位异或运算:两个数转为二进制,然后从高位开始比较,如果相
阅读全文
摘要:看几个基础的注解 @AliasFor @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @Documented public @interface AliasFor { @AliasFor("attribute") Str
阅读全文
摘要:1 JAVA.IO字节流 inputstream.png LineNumberInputStream和StringBufferInputStream官方建议不再使用,推荐使用LineNumberReader和StringReader代替 ByteArrayInputStream和ByteArrayO
阅读全文
摘要:今天给大家介绍一下 Rainbond 的一个小技巧——端口别名。 端口别名,顾名思义,是给组件端口定义一个别名。 端口别名的设置 当进入到端口管理页面,点击使用别名,即可设置端口的别名,如下图所示: 端口别名的作用 定义好端口别名后,Rainbond 会为该别名生成两个对外环境变量:端口别名_HOS
阅读全文
摘要:什么是JVM JVM 全称 Java Virtual Machine,也就是我们耳熟能详的 Java 虚拟机。它能识别 .class后缀的文件,并且能够解析它的指令,最终调用操作系统上的函数,完成我们想要的操作。 可能有部分小伙伴学习过C++,C++开发出来的程序,编译成二进制文件后,就可以直接执行
阅读全文
摘要:tips: 菜品类(菜品id,菜品名,菜品类型,上架时间,单价,月销售,总数量) 管理员类(管理员id,账号,密码) 客户类(客户id,客户名,性别,密码,送餐地址,手机号,创建时间) 订单类(订单号,订单创建时间,菜品id,购买数,客户id,总价格,订单状态)说明: 菜品类型可自行设计数据类型(i
阅读全文
摘要:SAPI是一个极其精简的Restful API输出工具,诞生的背景是基于目前微服务开发接口,很多中小型项目开发人员在对接口测试时不仅需要使用JUnit等进行业务接口测试,还需要对API进行自测。所以SAPI很好的解决了开发人员需要一个一个参数的往接口测试工具填写调试的反复过程。 目前SAPI只需要开
阅读全文
摘要:以这台鲲鹏服务器为例,先查看自己操作系统的发行版本 (1)nmon:支持收集一段时间内,整机的CPU、磁盘、网络、内存等各项资源的使用情况。 (2)perf:Linux kernel自带的系统性能优化工具,获取指定进程内的调用情况、各线程调用的CPU资源消耗情况,并支持生成火焰图。 火焰图的生成过程
阅读全文
摘要:阅读目录: 性能相关的数据指标 内存使用率used_memory 命令处理总数total_commands_processed 延迟时间 内存碎片率 回收key 总结 性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息。
阅读全文
摘要:这篇文章主要介绍了Java如何利用return结束方法调用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ publ
阅读全文
摘要:在正式进行循环队列学习之前,我们先来看看在顺序队列中删除队首元素出现的问题: (1)设一个容量为capacity=8,size=5(a,b,c,d,e)的数组,左侧为队首、右侧为队尾。 file (2)出队一个元素后,需整体往前移动一位 出队: file 整体前移一位: file 关于该种操作方式我
阅读全文
摘要:在高并发、异步化等场景,线程池的运用可以说无处不在。线程池从本质上来讲,即通过空间换取时间,因为线程的创建和销毁都是要消耗资源和时间的,对于大量使用线程的场景,使用池化管理可以延迟线程的销毁,大大提高单个线程的复用能力,进一步提升整体性能。 今天遇到了一个比较典型的线上问题,刚好和线程池有关,另外涉
阅读全文
摘要:讲到Java并发,多线程编程,一定避免不了对关键字volatile的了解,那么如何来认识volatile,从哪些方面来了解它会比较合适呢? 个人认为,既然是多线程编程,那我们在平常的学习中,工作中,大部分都接触到的就是线程安全的概念。 而线程安全就会涉及到共享变量的概念,所以首先,我们得弄清楚共享变
阅读全文
摘要:JDK提供了大量优秀的集合实现供开发者使用,合格的程序员必须要能够通过功能场景和性能需求选用最合适的集合,这就要求开发者必须熟悉Java的常用集合类。本文将就Java Collections Framework中常用的集合及其特点、适用场景、实现原理进行介绍,供学习者参考。当然,要真正深入理解Jav
阅读全文
摘要:强软弱虚引用 在java中,除了基本数据类型的变量外,其他所有的变量都是引用类型,指向堆上各种不同的对象。 在jvm中,除了我们常用的强引用外,还有软引用、弱引用、虚引用,这四种引用类型的生命周期与jvm的垃圾回收过程息息相关。 那么这四种引用类型有什么区别?具体使用场景是什么? 所有引用类型,都是
阅读全文
摘要:枚举类型是Java 5中新增的特性,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。当需要定义一组常量时,强烈建议使用枚举类。 使用枚举类的条件:类的对象是有限个,确定的。例如星期类,它
阅读全文
摘要:JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。 编译器负责把Java程序转成Class文件,方便Jvm来读取它. Jvm是java虚拟机,其实它就是解释器,把Class
阅读全文
摘要:基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较
阅读全文
摘要:枚举类型是Java 5中新增的特性,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。当需要定义一组常量时,强烈建议使用枚举类。 使用枚举类的条件:类的对象是有限个,确定的。例如星期类,它
阅读全文
摘要:JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。 编译器负责把Java程序转成Class文件,方便Jvm来读取它. Jvm是java虚拟机,其实它就是解释器,把Class
阅读全文
摘要:基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较
阅读全文
摘要:Git使用教程: 最详细、最傻瓜、最浅显、真正手把手教! 导读:因为教程详细,所以行文有些长,新手边看边操作效果出乎你的预料。GitHub虽然有些许改版,但并无大碍。 一、Git是什么? Git是目前世界上最先进的分布式版本控制系统。工作原理 / 流程: Workspace:工作区 Index /
阅读全文
摘要:1.什么是垃圾?(Java中) (1)一个对象没有任何引用指向这个对象 (2)几个对象之间互相循环引用,但是没有引用指向这个循环,那这个几个对象属于一堆垃圾 总结一句话:没有任何引用指向的一个对象或者多个对象 2.如何定位垃圾? (1)reference count(引用计数): 对于对象进行一个引
阅读全文
摘要:打包 点击package 即可 打包完成后,上传到宝塔文件上 部署 java部署命令:nohup java -jar /java/jenkins.war --httpPort=666 & nohup表示挂起不退出,进行后台运行模式 我的是nohup java -jar /www/server/tom
阅读全文
摘要:Java 集合 Collection 1. 概述 Colloection 根类,是一个容器,可以装很多其他的数据。集合框架 容器 数组 StringBuffer / StringBuilder,append()insert () Collection 数组和集合的区别 长度区别:集合长度可变、数组长
阅读全文
摘要:Java开发环境搭建的学习 要编写一个Java程序,必须先安装开发环境,开发环境包括开发Java程序必须的JDK工具和一个编辑软件。JDK(Java Development Kit)是Java开发工具箱,提供了编译和运行Java程序的所有工具和常用的类库。 JDK安装目录下的子目录或文件包含的内容b
阅读全文
摘要:线程池 1. Callable接口的使用 package com.yuxue.juc.threadPool; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import ja
阅读全文
摘要:redis 数据类型与底层数据结构的关系 可以看到,String 类型的底层实现只有一种数据结构,也就是简单动态字符串。而 List、Hash、Set 和 Sorted Set 这四种数据类型,都有两种底层实现结构。通常情况下,我们会把这四种类型称为集合类型,它们的特点是一个键对应了一个集合的数据。
阅读全文
摘要:JVM的内存模型 Java虚拟机管理的内存分为五大区域,程序计数器、虚拟机栈、本地方法栈、堆以及方法区。程序计数器、虚拟机栈和本地方法栈都是线程私有的,即每个线程都有自己的程序计数器、虚拟机栈和本地方法栈;堆和方法区是线程共享的,即所有线程共享堆和方法区。JVM内存模型: 栈 1) 是为java方法
阅读全文
摘要:手把手教你Java开发环境搭建 JDK下载安装:JDK8(主流) →安装地址 ①在我的电脑属性查看电脑版本(32or64位) ②选择对应版本下载(下载需要注册Oracle账号 ③双击安装JDK(记住自己的安装路径) ④配置环境变量: 我的电脑–>右键–>属性–>高级系统设置–>环境变量 2.环境变量
阅读全文
摘要:一、什么是多态? 事物的多种表现形态。例如:猫是一种动物;猫是猫。 二、为什么使用多态? 提高代码的延展性和维护性。 三、多态使用的前提条件是什么? 1、要有继承或是接口实现的关系;2、要有方法重写;3、要有父类引用指向子类对象 四、多态的成员访问具有什么特点? 成员变量:编译依赖父类、运行依赖父类
阅读全文
摘要:为了让初学者更好地完成第一个Java程序,接下来通过几个步骤进行逐一讲解。 1.编写Java源文件 在D盘根目录下新建一个test文件夹,并在该文件夹中新建文本文档,重命名为HelloWorld.java后,用记事本方式打开,在其中编写一段Java代码,如文件1所示。 文件1 HelloWorld.
阅读全文
摘要:从Java API知道,LinkedHashMap继承于HashMap,并且通过双向链表保存各节点的位置信息,实现了顺序存储。但是如果让你自己写一个顺序存储的HashMap,将如何下手呢?从研究LinkedHashMap的源码开始入手,究竟它比HashMap多了哪些东西,让它拥有了顺序存储的能力。
阅读全文
摘要:1.HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方
阅读全文
摘要:语法 LOG(number, [base]) LOG函数语法具有下列参数: Number必需。想要计算其对数的正实数。 base可选。对数的底数。如果省略base,则假定其值为10。 示例 复制下表中的示例数据,然后将其粘贴进新的Excel工作表的A1单元格中。要使公式显示结果,请选中它们,按 F2
阅读全文
摘要:日志记录器(Logger)的行为是分等级的。分为 OFF FATAL ERROR WARN INFO DEBUG TRACE ALL Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比
阅读全文
摘要:症状:在默认语言非中文(或者说默认语言不支持中文的)的Windows、Linux、Unix上,用log4j打印日志,出现乱码,常见的就是一堆问号。 解决方法: 如果是log4j.properties为配置文件,比如: 加入一行: 如果是log4j.xml为配置文件,比如: 加入一行: 原理: log
阅读全文
摘要:EditPlus是一个很好用的文字编辑工具,用来写简单的代码程序也很方便,是很多程序员都会用到的编辑器工具,在使用的时候用editplus快捷键会提高工作效率,所以这篇文章总结了常用editplus快捷键,大家可以对照着这些快捷键,看看自己是否都知道。 1、文本类 新建普通文本:Ctrl+N 新建浏
阅读全文
摘要:鉴于目前Java IDE众多并且都有一定的拥泵,Eclipse的Java Web项目不具有可移植性。Maven既解决了项目结构的规范问题又提供了强大引用处理等强大的功能,在项目布局等方面已经是目前事实上的标准。Maven的Java web 项目基本结构是Maven 开发Java Web项目的基本条件
阅读全文
摘要:1.何为依赖? 我们在平时的项目开发中也是同理,你需要依赖一些东西才能实现相应的功能,但相应的功能或许也可以依赖其它的东西实现,比如数据库操作吧,你可以依赖hibernate,但你也可以通过mybatis来做。 这就是所谓的依赖关系咯。 以前我们需要手动的去找hibernate或者mybatis的j
阅读全文
摘要:我们知道maven不仅是构建工具和依赖管理工具以及项目信息管理工具,为全世界的java开发者提供了一个免费的中央仓库。我们今天主要来介绍的就是maven的仓库。 1.maven仓库的分类 首先maven仓库分为本地仓库和远程仓库,而远程仓库又包括私服和中央仓库。 本地仓库就是用户自己电脑上的仓库,直
阅读全文
摘要:Dubbo是一个分布式服务框架,以及阿里巴巴内部的SOA服务化治理方案的核心框架。其功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。 Dubbo核心部分包含: 远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求
阅读全文
摘要:搭建一个网站传统的方法是使用一个web服务器去解析文件入口文件,如使用Nginx,Apache解析到对应的入口文件,但是随着技术的发展,一些语言可以自己起一个web服务,如Node,PHP,使用开发语言启动一个web服务默认只能在本地访问,如http://localhost:8000/http://
阅读全文
摘要:FastDFS是一个以C语言开发的开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以中小文件(建议范围:4KB < file_size <500MB),如相册网站、视频网站等等。 FastDFS为
阅读全文
摘要:文件上传成功,需要安装Nginx作为服务器以支持Http方式访问文件。同时,后面安装FastDFS的Nginx模块也需要Nginx环境。 Nginx只需要安装到StorageServer所在的服务器即可,用于访问文件。 tracker server节点启动 /usr/local/bin/fdfs_t
阅读全文
摘要:什么是Thymeleaf? Thymeleaf是一个现代服务器端Java模板引擎,适用于Web和独立环境,能够处理HTML,XML,JavaScript,CSS甚至纯文本。 Thymeleaf的主要目标是提供一种优雅且高度可维护的模板创建方式。为实现这一目标,它以自然模板的概念为基础,将其逻辑注入模
阅读全文
摘要:mybatis也是基于JDBC的。Java与数据库操作仅能通过JDBC完成。mybatis也要通过JDBC完成数据查询、更新这些动作。 mybatis仅仅是在JDBC基础上做了,OO化、封装事务管理接口这些东西。 传统JDBC操作数据 使用JDBC编程需要连接数据库,注册驱动和数据库信息 操作Con
阅读全文
摘要:简介: mybatis提供查询缓存,用于减轻数据库压力,提高数据库性能mybatis提供一级缓存和二级缓存 一级缓存:sqlsession级别的缓存 在操作数据库时,需要构造sqlsession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据不同的sqlsession之间的缓存区域是互
阅读全文
摘要:1.什么是Mybatis? MyBatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去加载驱动、创建连接、创建Statement等繁杂过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。 Mybatis可以使用XML或
阅读全文
摘要:原理: 1.Spring 在java里面,要用类里面的方法,就需要先有类的对象,而类的对象就是new出来 Spring就是用来简化这一步操作的框架 Spring是一个容器,里面装了很多Bean即实体对象。之后要用到这些对象对应的类的方法,可以直接从容器里面拿,就不用再去new一个了 2.Spring
阅读全文